为什么我得到消息“单步直到退出。 。 。 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

在我的情况下,问题是gccgdb之间的版本歪斜

从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就行了。