0

我尝试使用gdbstep功能调试我的程序。只要函数在同一个文件中,一切都可以正常工作。

但是如果函数在外面,gdb 会跳过它。

我该如何解决?

笔记:

  • -ggdb我用选项编译
  • 我正在使用GNU gdb Red Hat Linux (6.7-1rh)
    (如果可能,出现在 gdb 的 startfrequence 中)

例子:

#include "foo2.h"  // contains function foo2

void foo(void){ printf("hello"); }


void main (void){

  foo();    // debuggable -> jump into possible
  foo2();   // not debuggable 


}
4

1 回答 1

1

使用 gdb 调试应用程序时,请使用 si (stepi) 而不是 ni (nexti)。si 将进入其他函数,ni 停留在当前函数内。查看http://sourceware.org/gdb/current/onlinedocs/gdb/Continuing-and-Stepping.html#Continuing-and-Stepping的文档了解更多信息(^F 表示 nexti 或 stepi)。

于 2012-10-18T14:25:11.843 回答