从核心转储中获取堆栈跟踪

Posted

技术标签:

【中文标题】从核心转储中获取堆栈跟踪【英文标题】:getting stacktrace from core dump 【发布时间】:2011-04-21 14:06:34 【问题描述】:

如何从核心转储文件中获取堆栈跟踪?该文件大约 14 mb,是在我的应用程序退出时生成“分段错误”

我使用的是 Red Hat 5.5

【问题讨论】:

顺便问一下,您的应用程序是用 C++ 编写的吗? 【参考方案1】:
gdb /usr/bin/myapp.binary corefile

然后,使用以下之一:

(gdb) bt
(gdb) bt full
(gdb) info threads
(gdb) thread apply all bt
(gdb) thread apply all bt full

请注意,为相关库安装调试符号会有所帮助

【讨论】:

如何找到我的核心文件?我在 Ubuntu 20.04 上。 如果您使用的是基于 systemd 的系统,那么您可以运行 coredumpctl gdb -1 在最后一个核心转储上运行 gdb。

以上是关于从核心转储中获取堆栈跟踪的主要内容,如果未能解决你的问题,请参考以下文章

如何让android打印掉崩溃系统应用程序的核心转储?

使用 gdb 分析核心转储帧

如何转储 goroutine 堆栈跟踪?

有没有办法在不抛出异常的情况下转储堆栈跟踪?

C++ 将堆栈跟踪转储到 *.exe.stackdump

在 App::abort(403) 之后抑制 Laravel 日志中的堆栈跟踪转储