linux - 在退出 linux 时转储进程内存

标签 linux ulimit procdump gcore

我想在进程退出时转储它的内存。我见过的所有使用 gcoregdb 甚至 procdump for linux 的解决方案在执行中间转储核心,而不是在它终止时转储

Procdump for windows 对此有一个非常优雅的解决方案,即 -t 将允许 procdump 在进程退出时创建转储。

我偶然发现了 ulimit -c unlimited 但这同样只会为非正常退出生成转储。

我想要转储的进程可以是任何进程,而不是我的应用程序。

最佳答案

如果你想用 gdb 模仿这个行为:

Procdump for windows has a very elegant solution for this, i.e. -t will allow procdump to create a dump when the process exits.

首先你创建一个文件“mycommand.txt”:

b exit
r
generate-core-file ./core.1
q

然后你开始你的程序:

 gdb --command mycommand.txt yourprogram 

您的工作目录中将有一个名为 core.1 的文件。检查:

gdb yourprogram core.1

关于linux - 在退出 linux 时转储进程内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49171105/

相关文章:

python - 在当前目录和子目录中的每个 Python 文件顶部添加一行

linux - 运行此 sh 脚本后无法生成 *.deb 文件

linux - 从网络外部进行 SSH 访问

ruby - 为什么堆栈内存限制系统之间的差异很大?

c++ - 如何通过具有命令行参数的 procdump 启动 Windows 应用程序?

linux - ASP Net Core Linux ERR_CONNECTION_REFUSED

limit - 如何在 Centos 6.4 x64 上更改 root 用户的限制打开文件

linux - Netbeans 8.0.2 上的 ulimit -s

iis - Procdump 写入转储文件时出错 : 0x80070005 Error 0x80070005 (-2147024891): Access is denied

windows - Procdump:将挂起触发时间增加到 5 秒以上