为什么我在GDB中收到消息"单步执行直到退出......没有行号信息"?

Ste*_*ley 40 c gcc gdb

我使用gcc 4.4.1使用标志编译了我的C程序-g,但是当我尝试在gdb 7.0版中逐步执行我的一个函数时,我收到了消息:

"Single stepping until exit from function _DictionaryTree_getNodeList, 
which has no line number information."
Run Code Online (Sandbox Code Playgroud)

有人能告诉我为什么会这样吗?

Art*_*ski 33

只是猜测,但在另一个未使用-g编译的文件中是_DictionaryTree_getNodeList?

  • 如果要编译多个文件,最好使用Makefile并在gcc选项标志中添加-ggdb. (10认同)

Ari*_*ild 10

我有同样的问题,但在我的情况下添加-g到编译器是不够的,所以我-ggdb按照Manav的建议使用.


hoc*_*age 6

就我而言,问题是gcc和之间的版本偏差gdb.

从搜索到这里后,这些答案都不适合我的情况,我发现(因为别名/符号链接/ Makefile/环境变量)我不小心使用了较新的GCC(4.8.x)和较旧的GDB(7.2).升级到更新版本的GDB(7.8)可以解决问题.出于某种原因,使用较新的GCC和较旧的GDB不起作用.

  • ...但是(仅)现在我看到以前对其他几乎完全相同的问题的答案都有这个答案 - 例如,[this](http://stackoverflow.com/a/20493816/3562032)和[this](http) ://stackoverflow.com/a/18408197/3562032).后者包括*为什么*(DWARF不兼容)的信息.热烈欢迎! (3认同)