Linux GDB不';t在一个文件外插入函数

Linux GDB不';t在一个文件外插入函数,linux,debugging,gdb,Linux,Debugging,Gdb,我尝试用gdb和step函数调试我的程序。 只要函数在同一个文件中,一切都可以正常工作 但是如果函数在外部,gdb将跳过它 我怎样才能解决这个问题 注: 我使用-ggdb选项编译 我正在使用GNU gdb Red Hat Linux(6.7-1rh) (如果可能的话,出现在gdb的startfrequence中) 例如: #include "foo2.h" // contains function foo2 void foo(void){ printf("hello"); } voi

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

但是如果函数在外部,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 


}

使用gdb调试应用程序时,请使用si(stepi)而不是ni(nexti)。si将进入其他功能,ni保持在当前功能内。有关更多信息,请查看位于的文档(^F用于nexti或stepi)。

您使用的是哪个版本的
gcc
编译器(当前版本为4.7)?你有什么具体的选择?您可以使用
gcc-Wall-g3
,或者使用
-fno-inline
您有一个非常旧版本的
gdb
;最新的是7。5@BasileStarynkevitchlinux powerpc gcc版本4.2.2 gcc 4.2和gdb 6.7都是非常旧的版本。你真的应该升级你的Linux系统。请注意,内核人员、编译器人员、binutils人员、libc人员自系统安装以来(发生在几年前)取得了重大进展。