GDB:看到源代码行?

时间:2013-12-22 04:07:10

标签: debugging gdb fortran gfortran

使用-g命令编译的程序是否有源代码可供gbd列出,即使源代码文件不可用?另外,当您在具有复杂多源文件结构的程序中的某一行设置断点时,您是否需要源代码文件的名称?

1 个答案:

答案 0 :(得分:5)

OP的1 st 问题:

  

使用-g命令编译的程序是否有源代码可供gbd列出,即使源代码文件不可用?

没有。如果没有到源的路径,那么您将看不到源。

OP的2 nd 问题:

  

[...]当您在具有复杂多源文件结构的程序中的某一行设置断点时,您是否需要源代码文件的名称?

并非总是如此。有几种设置断点的方法。我记得的唯一两个是打破一条线或打破一个功能。如果你想在函数的第一行中断,请使用

break functionname

如果该功能存在于模块中

break __modulename_MOD_functionname

无论你如何在代码中声明它们,modulename和functionname都应该是小写的。请注意模块名称前面的两个下划线。如果您不确定,请在可执行文件上使用nm来查找符号是什么。

如果您有可用的源代码并且使用的是图形环境,请尝试使用ddd。它阻止了我的咒骂,并从gdb中消除了很多猜测。如果源可用,它将立即显示。