代码之家  ›  专栏  ›  技术社区  ›  Steven Oxley

为什么我会收到“单步走到出口”的信息?…哪个在gdb中没有行号信息?

  •  38
  • Steven Oxley  · 技术社区  · 15 年前

    我已经用编译了我的C程序 GCC 4.4.1 使用旗 -g ,但当我尝试在 GDB 7.0版 我收到消息:

    "Single stepping until exit from function _DictionaryTree_getNodeList, 
    which has no line number information."
    

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

    7 回复  |  直到 7 年前
        1
  •  30
  •   Arthur Kalliokoski    15 年前

    只是猜测一下,但是字典树getnodelist是否在另一个没有用-g编译的文件中?

        2
  •  9
  •   Arild    12 年前

    我也有同样的问题,但在我的案例中 -g 对编译器来说还不够,所以我用 -ggdb 按照玛纳夫的建议。

        3
  •  6
  •   hoc_age    9 年前

    在我的例子中,问题在于 gcc gdb .

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

        4
  •  1
  •   Uyghur Lives Matter    10 年前

    我也收到了这个错误消息,但问题的根源不同。如果有人仍然有任何问题,请确保 #include <stdio.h> 在您的文件中,用适当的括号括起来 stdio.h (如果我有短信,它就不会出现了 音高 )

        5
  •  0
  •   ravi.zombie    11 年前

    当我使用-g选项而不使用-g选项编译文件时,我也遇到了同样的问题。 对于其中一个文件,gdb显示的行号没有任何问题(即使编译时没有-g选项)。 对于另一个文件,我必须明确地提到-g标志…

    关于源文件是否可以在运行时加载到 交叉引用的GDB是一个很好的解决方案…通过映射 地址行:d.

        6
  •  0
  •   Hans    7 年前

    我遇到这个问题是因为我在调试共享库时没有用调试结束状态将ld_library_路径指向正确的位置。

    你可以使用

    export LD_LIBRARY_PATH=<location of the debug build of the .so file>:$LD_LIBRARY_PATH
    

    希望这对某人有帮助

        7
  •  0
  •   richar8086    7 年前

    尽管我已经在编译 -g2 . 将其更改为 -g3 做了这个把戏。