2013-05-21 123 views
1

我想在我的本地计算机(windows x86)上使用gdb和远程目标(arm-linux)上的gdbserver提取我的程序(类似于程序计数器)的执行顺序。我的想法是在我的源文件的“重要”行处插入断点(即:在特定函数的开始处,以及在条件语句之前和之后的一般情况下),并为每个断点设置高忽略计数,然后检查断点是否被触发。我实际上能够使用这种方法接收信息,但是存在一个问题:我正在调试的应用程序行为取决于实时,而这种特定的方法会太慢地减慢程序执行的速度。你认为我可以用gdb使用其他方法吗?我偶然发现了跟踪点,这似乎是我正在寻找的确切的事情,但我无法找到像他们的“反击”那样的财产。我目前使用的gdb版本是7.5。gdb -gdbserver跟踪远程程序执行

非常感谢。

+0

对于内核代码,可以考虑使用Kprobe还有JProbe你的目标。您可以使用这些来将这些计数器保留在代码的有趣部分。不知道用户代码是否存在类似的机制,但我认为这是可能的。 http://www.linuxforu.com/2011/04/kernel-debugging-using-kprobe-and-jprobe/ –

回答