C 为什么我会得到这个信息;单步执行直到退出。没有行号信息”的;在GDB中?
我已经使用GCC4.4.1和C 为什么我会得到这个信息;单步执行直到退出。没有行号信息”的;在GDB中?,c,gcc,gdb,C,Gcc,Gdb,我已经使用GCC4.4.1和-g标记编译了我的C程序,但是当我尝试在gdb 7.0版中单步执行我的一个函数时,我得到了以下消息: "Single stepping until exit from function _DictionaryTree_getNodeList, which has no line number information." 有人能告诉我为什么会发生这种情况吗?只是猜测,但是另一个文件中的“DictionaryTree”getNodeList不是用-g编译的吗?我也有同
-g
标记编译了我的C程序,但是当我尝试在gdb 7.0版中单步执行我的一个函数时,我得到了以下消息:
"Single stepping until exit from function _DictionaryTree_getNodeList,
which has no line number information."
有人能告诉我为什么会发生这种情况吗?只是猜测,但是另一个文件中的“DictionaryTree”getNodeList不是用-g编译的吗?我也有同样的问题,但在我的例子中,向编译器添加
-g
是不够的,所以我使用了Manav建议的-ggdb
。我也有同样的问题,当我使用-g选项编译文件时,没有使用-g选项。
对于其中一个文件,gdb显示的行号没有任何问题(即使在编译时没有-g选项)。。
对于另一个文件,我必须明确提到-g标志
关于是否可以在中的运行时加载源文件有什么想法吗
GDB与交叉引用将是一个很好的解决方案。。。通过映射
地址的行:D.我也有此错误消息,但问题的来源不同。若有人仍然有任何问题,请确保您的文件中有
#包含,并在stdio.h
周围加上适当的括号(若我有stdio.h
,文本消息将不会显示),问题是gcc
和gdb
之间的版本偏差
在通过搜索登陆这里后,这些答案都不符合我的情况,我发现(由于别名/symlinks/
Makefile
/environment变量),我无意中使用了一个较新的GCC(4.8.x)和一个较旧的GDB(7.2)升级到较新版本的GDB(7.8)修复了该问题。出于某种原因,使用较新的GCC和较旧的GDB不起作用。我遇到了这个问题,因为我在调试共享库时,没有将LD_library_路径指向具有调试结束状态的正确位置
你可以用
export LD_LIBRARY_PATH=<location of the debug build of the .so file>:$LD_LIBRARY_PATH
export LD\u LIBRARY\u PATH=:$LD\u LIBRARY\u PATH
希望这对某人有所帮助尽管我已经在使用
-g2
编译,但我还是遇到了同样的问题。把它改成-g3
就成功了。是的,我在读你的答案之前就猜出来了。猜得好;)如果您要编译多个文件,最好在gcc选项标志中使用Makefile和add-ggdb。@Manav MN是的,这就是我的命令,但我有两个不同的命令-一个用于编译,一个用于链接,我忘了将标志添加到用于编译的命令中(我想这实际上是我唯一需要它的命令)。。。。但是(只是)现在我看到以前对其他几乎相同的问题的回答有这个答案——例如,和。后者包括关于原因的信息(矮星不兼容性)。到处都是选票!我注释掉了我的主目录中几乎所有的代码。在main的最后一行之后,gdb转到main的第一行,然后收到了这个奇怪的消息。我尝试使用这个CXXFLAG=“-ggdb-O0”,仍然收到相同的错误消息。尝试过的gdb gcc 7.3和8.2都遇到了相同的问题。