标签: debugging

观察一个固定的地址

对于我当前的嵌入式应用程序,我试图将GDB观察点放在固定的内存地址上.

例如,我的应用程序更新以下地址:0x10793ad0.为了确保代码的哪一部分破坏了价值,我试过了

watch 0x10793ad0
Run Code Online (Sandbox Code Playgroud)

即使GDB在此之后没有打印任何错误,但即使我验证了值在执行的开始和结束之间被修改,它也无法在执行期间中断.

问题:

  1. 我真的可以把手表放在固定的地址吗?我没有在网上遇到任何这样的例子.
  2. 这是正确的方式还是我错过了什么?

debugging gdb watchpoint

59
推荐指数
1
解决办法
4万
查看次数

查看Android数据库游标

有谁知道如何在调试期间查看游标中的内容,以便我可以确定数据库帮助程序的功能?

它一直表现得像是在返回数据,但是当我尝试使用该cursor.isNull(0)方法时,我不断被NullPointerException抛出而无法看到光标在其中的内容,而单步执行则让我非常沮丧.

任何帮助将非常感激.

谢谢.

debugging android cursor

59
推荐指数
2
解决办法
2万
查看次数

在Linux中跟踪本地函数调用的工具

我正在寻找像ltracestrace这样的工具,它可以跟踪可执行文件中的本地定义函数.ltrace仅跟踪动态库调用,而strace仅跟踪系统调用.例如,给定以下C程序:

#include <stdio.h>

int triple ( int x )
{
  return 3 * x;
}

int main (void)
{
  printf("%d\n", triple(10));
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

运行程序ltrace将显示调用,printf因为这是一个标准库函数(我的系统上是一个动态库),strace并将显示启动代码,用于实现printf的系统调用和关闭代码的所有系统调用,但我想要一些能告诉我函数triple被调用的东西.假设优化编译器没有内联本地函数,并且二进制文件没有被剥离(符号被删除),是否有工具可以做到这一点?

编辑

几点澄清:

  • 如果该工具还提供非本地功能的跟踪信息,那也没关系.
  • 我不想重新编译支持特定工具的程序,可执行文件中的符号信息应该足够了.
  • 如果我可以使用该工具附加到现有的进程,就像我可以使用ltrace/strace一样,我会非常高兴.

linux debugging trace

58
推荐指数
5
解决办法
6万
查看次数

PHP - 打印对象的所有属性

我在php页面中有一个未知对象.

如何打印/回显它,以便我可以看到它具有哪些属性/值?

功能怎么样?有没有办法知道对象有什么功能?

php debugging

58
推荐指数
4
解决办法
11万
查看次数

为什么断言没有被大量使用?

我发现Python的断言语句是捕获永远不会发生的情况的好方法.当代码被认为是正确的时,可以通过Python优化删除它.

它似乎是在调试模式下运行Python应用程序的完美机制.但是看看django,twisted和zope等几个Python项目,assert几乎从未使用过.那么,为什么会这样呢?

为什么在Python社区中不经常使用断言语句?

python debugging assert

58
推荐指数
3
解决办法
1万
查看次数

使用XE2进行远程调试 - 显示字符串

我正在远程调试DElphi XE2(更新#4)和Windows XP目标之间的大型应用程序.PAServer正在目标上运行,应用程序正常工作并在断点处停止(您不会相信这个成就有多么难 - 提示 - 删除您的DPROJ并在XE之前通过任何IDE时再次启动).

我注意到局部变量和监视器的显示以一种奇怪的格式显示我的字符串,而在本地调试时通常会显示"某些字符串"格式.我知道了:

在此输入图像描述

任何人都可以告诉我为什么字符串以这种方式显示?我还得到{NULL}和{}之间的垃圾和未分配的输出变量之间的垃圾.谢谢.

.我看到这种格式表示宽字符串.我在Windows 7上尝试了一个简单的应用程序并获得了以下结果.我的应用程序在一个断点:

在此输入图像描述

显示的本地字符串变量:

在此输入图像描述

注意截断的'Hello'.似乎XE2有时会遇到远程unicode字符串的问题.我的PaServer是版本1.0.2.任何人都可以检查这是最新的吗?'来自更新#4的Twas ......

delphi string debugging remote-debugging delphi-xe2

58
推荐指数
1
解决办法
1786
查看次数

如何跳转到IntelliJ中的下一个断点?

如何在IntelliJ中跳转到下一个断点,就像在Visual Studio中按下F5

ide debugging intellij-idea

58
推荐指数
2
解决办法
5万
查看次数

调试器不会在异步方法中中断/停止异常

当调试器附加到.NET进程时,它(通常)在抛出未处理的异常时停止.

但是,当您使用某种async方法时,这似乎不起作用.

我之前尝试的方案列在以下代码中:

class Program
{
    static void Main()
    {
        // Debugger stopps correctly
        Task.Run(() => SyncOp());

        // Debugger doesn't stop
        Task.Run(async () => SyncOp());

        // Debugger doesn't stop
        Task.Run((Func<Task>)AsyncTaskOp);

        // Debugger stops on "Wait()" with "AggregateException"
        Task.Run(() => AsyncTaskOp().Wait());

        // Throws "Exceptions was unhandled by user code" on "await"
        Task.Run(() => AsyncVoidOp());

        Thread.Sleep(2000);
    }

    static void SyncOp()
    {
        throw new Exception("Exception in sync method");
    }

    async static void AsyncVoidOp()
    {
        await AsyncTaskOp();
    }

    async static Task AsyncTaskOp() …
Run Code Online (Sandbox Code Playgroud)

c# debugging exception visual-studio-debugging async-await

58
推荐指数
1
解决办法
1万
查看次数

Xcode在调试时评估表达式

我正在开发一款iPhone应用程序.我是一名全职Java开发人员,我习惯使用Eclipse,我可以在其中放置一个断点并停止该过程.然后,我可以输入我想要的任何表达式,Eclipse将使用该过程中该点的值对其进行评估.

有没有办法在Xcode中做到这一点?我希望能够在断点处停下来,然后输入一些代码来评估它.gdb控制台让我这样做po(print-object),但它确实有限.有帮助吗?

debugging xcode gdb objective-c

57
推荐指数
4
解决办法
3万
查看次数

即使不在调试模式下运行,也会显示"正在等待调试器附加"

我的问题:

在开发我的应用程序时,我遇到了一个尴尬的问题.正如标题中所提到的,每次我在启动时安装我的应用程序(在运行模式下,而不是调试!)等待调试器连接..消息出现1-2-3秒,应用程序启动.

我想要的:

我想要的是能够在没有出现该消息的情况下启动应用程序(它只在最近几天出现,我不记得更改与调试有关的任何内容).

我尝试过的:

  • 我试过设置android:debuggable="false"但如果我这样做,调试器永远不会附加,消息永远不会消失.
  • 我也在安装后尝试禁用USB Debugging,但仍然没有结果.
  • 即使我通过外部源(它使用谷歌的C2D消息传递框架)杀死应用程序并将其唤醒,它仍会尝试在唤醒时以调试模式运行.

我已经开发了几个Android应用程序,从来没有偶然发现这个.为什么我无法在RUN模式下启动应用程序?有没有其他方法可以在设备上安装应用程序,而无需点击Eclipse中的运行按钮?

如果有必要,我可以从AndroidManifest或代码的其他部分发布代码片段,但正如我已经提到的,我几天前没有得到这种奇怪的行为.

debugging android

57
推荐指数
6
解决办法
5万
查看次数