从附加到 ddd/dbx 的崩溃进程生成核心转储

Posted

技术标签:

【中文标题】从附加到 ddd/dbx 的崩溃进程生成核心转储【英文标题】:Generate a coredump from crashed process attached to ddd/dbx 【发布时间】:2011-09-16 15:27:40 【问题描述】:

我在 Solaris 上的 ddd 中运行 dbx。附加的进程已经崩溃,我可以在调试器中检查堆栈。

我想将此核心转储保存到磁盘以供以后使用。

Google 向我展示了几种创建核心转储的方法,但它们都不是 ddd/dbx 命令。 gcore 无法抓取该进程,因为 dbx 已经在持有它。

那么我该怎么做呢?谢谢。

【问题讨论】:

gcore -F 有什么问题(即使进程附加到调试器也强制执行)? 【参考方案1】:

这是个好问题。我唯一能想到的就是使用 dbx 与进程分离,然后使用 gcore 创建核心转储。但是如果进程是由 dbx 启动的,它可能会拒绝与它分离。此外,从故障进程中分离可能无法正常工作,并且该进程可能会消失。

【讨论】:

以上是关于从附加到 ddd/dbx 的崩溃进程生成核心转储的主要内容,如果未能解决你的问题,请参考以下文章

生成子进程的核心转储文件

如何获取详细的 valgrind 核心或使用 gdb 将调试附加到核心在启动时转储的进程?

崩溃后未创建进程核心转储

在 macOS Sierra 中为崩溃的进程启用核心转储

Sun JDK 能否在 JVM 崩溃时生成核心/堆转储文件?

即使进程正常运行,如何创建核心转储? [复制]