OP的第一个问题:
使用-g命令编译的任何程序是否都有可供gbd列出的源代码,即使源代码文件不可用?
不会.如果没有来源的路径,那么您将看不到来源.
OP的第二个问题:
[...]当您在具有复杂多源文件结构的程序中的某一行设置断点时,您是否需要源代码文件的名称?
不总是.有几种设置断点的方法.我记得的唯一两个是打破一条线或打破一个功能.如果你想在函数的第一行中断,请使用
break functionname
Run Code Online (Sandbox Code Playgroud)
如果该功能存在于模块中
break __modulename_MOD_functionname
Run Code Online (Sandbox Code Playgroud)
无论你如何在代码中声明它们,modulename和functionname都应该是小写的.请注意模块名称前面的两个下划线.如果您不确定,请在可执行文件上使用nm来查找符号是什么.
如果您有可用的源代码并且您正在使用图形环境,请尝试使用ddd.它阻止了我的咒骂,并从gdb中消除了很多猜测.如果源可用,它将立即显示.
归档时间: |
|
查看次数: |
167 次 |
最近记录: |