如何获取gdb调用堆栈跟踪?

时间:2020-08-19 13:49:20

标签: linux debugging gdb coredump

我有一个核心转储文件和一个存储调试信息的文件,我可以在不使用可执行文件的情况下使用gdb来获取具有函数和行名称的调用堆栈吗?

1 个答案:

答案 0 :(得分:1)

我可以在不使用可执行文件的情况下使用gdb来获取具有函数和行名称的调用堆栈吗?

至少在Linux / x86_64上,答案是否定的:objcopy --only-keep-debug之后保存的信息还不够;您还需要可执行文件。

之所以会发生这种情况(至少部分是因为)debug_file没有.eh_frame部分,这对于在x86_64上展开是必不可少的。

如果您要自行调试核心转储,则没有理由创建debug_file -仅保留原始可执行文件以及完整的调试信息以进行调试(您仍然可以将较小的剥离文件发送到执行机)。