为什么我得到消息“单步直到退出。 。 。 GDB中没有行号信息“?
我使用gcc 4.4.1编译了我的C程序,但是当我尝试通过gdb版本7.0中的一个函数时,我得到以下消息:
"Single stepping until exit from function _DictionaryTree_getNodeList, which has no line number information."
有人可以告诉我为什么发生这种情况?
只是猜测,但是_DictionaryTree_getNodeList在另一个文件,而不是用-g编译?
我有同样的问题,但在我的情况下,添加-g
到编译器是不够的,所以我用Manav所build议的-ggdb
。
在我的情况下,问题是gcc
和gdb
之间的版本歪斜 。
从search着陆到这里,没有一个答案符合我的情况,我发现(因为别名/符号链接/ Makefile
/环境variables),我意外地使用了一个更新的GCC(4.8.x)和一个较旧的GDB(7.2)。 加强到更新版本的GDB(7.8)解决了这个问题。 出于某种原因,使用较新的GCC和较旧的GDB不起作用。
我也有这个错误信息,但我的问题的来源是不同的。 如果任何人仍然有任何问题,请确保您的文件中有#include <stdio.h>
,并在stdio.h
周围加上适当的括号(如果我在stdio.h
有文本消息,则不会显示)。
当我使用-g选项编译文件并且没有-g选项时,我遇到了同样的问题。 对于其中一个文件,gdb显示行号没有任何问题(即使编译时没有-g选项)。而对于其他文件,我不得不明确提到-g标志…
任何关于源文件是否可以在运行时在GDB中加载的交叉引用都是很好的解决scheme…通过将行映射到地址:D。
我有这个问题,因为我正在debugging一个共享库,没有指出LD_LIBRARY_PATH正确的位置与debugging结束状态。
您可以使用
export LD_LIBRARY_PATH=<location of the debug build of the .so file>:$LD_LIBRARY_PATH
希望这对某人有帮助
尽pipe我已经用-g2
编译了,但还是有同样的麻烦。 把它-g3
就行了。