gdb coredump分析失败

时间:2015-03-27 10:39:54

标签: gdb coredump

(gdb)分享信息 - >这表明已经读取了所有共享的lib syms 但仍然返回跟踪bt显示任何功能的'没有符号表信息'。

有人可以对这个问题有所了解吗?我该如何解决这个问题并获得有意义的追溯?

1 个答案:

答案 0 :(得分:2)

info shared输出中的该列常常令人困惑。这并不意味着实际上存在调试信息 - 它只是意味着gdb试图读取它。这些信息对普通用户来说实际上并不是那么有用。

很难确定你是否真的有调试信息。一种方法是在各种文件上使用readelf -WS并查找相关的调试部分。这将告诉您它是否存在。

然而!即使这还不够。也许缺少一个部分(除非你一直在使用文件,否则不太可能)。或者gdb拒绝调试信息的某些部分(也非常不可能)。

另一种可能性是您已将调试信息与库分开。这在发行版中是典型的。在这种情况下,您必须确保安装调试信息包 - 在Fedora中,您可以使用debuginfo-install执行此操作;据推测,其他发行版也有类似的方法。

在单独的调试信息案例中,您必须确保安装与构成核心的进程所使用的文件完全相同的版本。这可能很困难。有时它可以通过检查构建ID来完成,但这并不总是可行的,因为发行版经常清除文件的过时版本。

如果有问题的库是您的库,那么您必须使用-g重新编译它们,然后尝试重新创建核心。实际上,实际上没有可靠的方法来生成必要的调试信息。

如果核心是在其他计算机上创建的,您可以尝试查找这些文件并在本地安装它们。您可以在任何地方安装它们,并使用set sysroot功能告诉gdb如何找到它们。