在Linux下,当进程崩溃时,将创build一个核心转储。
但是,我想创build一个核心转储过程不会崩溃,但看起来越野车。 远程专家需要核心转储来分析。
在Windows下,我们可以通过任务pipe理器创build一个进程的转储文件,之后进程仍在运行。
在Linux下可以吗?
然后调用gdb
attach pid gcore
其中pid
是相关进程的进程标识。
您可以从命令行使用gcore工具:
gcore [-o filename] pid
顺便说一句,如果你只想看到进程的堆栈跟踪, gstack
工具将会完成这个工作。
这两个实用程序都带有gdb
。
你可以在你的代码中使用:
if (fork() == 0) abort();
如果您想以编程方式执行此操作,请尝试使用google-coredumper 。 他们的例子:
#include <google/coredumper.h> ... WriteCoreDump('core.myprogram'); /* Keep going, we generated a core file, * but we didn't crash. */