GDB不会在一个文件外部执行功能

时间:2012-10-18 14:00:56

标签: linux debugging gdb

我尝试使用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 


}

1 个答案:

答案 0 :(得分: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)。