【问题标题】:gdb no symbol table loaded for core filegdb 没有为核心文件加载符号表
【发布时间】:2012-08-09 17:28:10
【问题描述】:

在客户端为我的应用程序生成了一个核心转储,在查看回溯时我没有加载符号...

(gdb) where
#0  0x000000364c032885 in ?? ()
#1  0x000000364c034065 in ?? ()
#2  0x0000000000000000 in ?? ()
(gdb) bt full
#0  0x000000364c032885 in ?? ()
No symbol table info available.
#1  0x000000364c034065 in ?? ()
No symbol table info available.
#2  0x0000000000000000 in ?? ()
No symbol table info available.

我想在这里提到的是,正在使用的应用程序是使用 -g 选项构建的。

在我看来,所需的库似乎没有被加载。我尝试使用“符号文件”手动加载库,但这没有帮助。

可能的问题是什么?

【问题讨论】:

  • 这是在 HPUX 或 Linux 或其他一些操作系统上吗?在 HPUX 和 AIX 上,您需要更多的选项来获取符号表。

标签: gdb symbol-table


【解决方案1】:

我遇到了类似的问题,后来发现我缺少 -g 选项,请确保您已使用 -g 编译了二进制文件。

【讨论】:

    【解决方案2】:

    当您运行 gdb 的可执行文件路径与生成核心转储的路径不对应时,就会发生这种情况。

    确保为 gdb 提供正确的路径。

    <put an example of correct code or commands here>
    

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post。
    • JamesZ:你的评论毫无意义。问题是:“可能的问题是什么?”我提供了一种可能的解释。我并不是说我的答案应该是最受欢迎的答案。但是当我在网上搜索完全相同的错误消息时,我偶然发现了这个线程。最初它没有包含对我的问题的正确答案,但它应该包含,因为错误消息完全相同。编辑:我输入太快了:)
    • @BostjanSkufca 确实,他们的评论是相关的。你的帖子没有给出解决方案,所以最好是对问题的评论。或者至少看起来没有给出解决方案,因为它以“这发生在我身上”开头。经验丰富的 SO 用户会在看到此类短语时立即删除。 =) SO的想法是收集知识和解决方案,如果以一些指导的形式,所以最好从你的个人经验中清除你的帖子)How to Answer
    • @NickVolynkin 感谢您的风格编辑+评论,非常感谢。
    • @NickVolynkin 是的,我注意到这里需要以婴儿步的形式进行说明,但除此之外它被认为是跨专业的消息板:)
    【解决方案3】:

    没有可用的符号表信息。

    您可能错误地调用了 GDB。不要这样做:

    gdb core
    gdb -c core
    

    改为这样做:

    gdb exename core
    

    另请参阅this answer,了解您可能需要做什么才能从客户的机器上获取内核的有意义的崩溃堆栈跟踪。

    【讨论】:

    • 嘿,感谢您的 rply,我已经按照前面的建议使用了 gdb。
    • 不,这不是我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多