7

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

(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 选项构建的。

对我来说,似乎没有加载所需的库。我尝试使用“符号文件”手动加载库,但这无济于事。

可能的问题是什么?

4

3 回答 3

9

没有可用的符号表信息。

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

gdb core
gdb -c core

改为这样做:

gdb exename core

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

于 2012-08-14T05:55:56.523 回答
1

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

于 2021-11-30T09:36:28.220 回答
0

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

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

<put an example of correct code or commands here>
于 2015-06-13T10:44:08.027 回答