在Linux下,当进程崩溃时,将创建核心转储。
但是,我想在进程没有崩溃的情况下创建核心转储,但看起来有些错误。远程专家需要核心转储进行分析。
在Windows下,我们可以通过任务管理器创建进程的转储文件,之后,该进程仍在运行。
在Linux下可以吗?
答案 0 :(得分:20)
致电gdb
,然后
attach pid
gcore
其中pid
是相关流程的流程ID。
答案 1 :(得分:17)
答案 2 :(得分:14)
您可以使用以下代码在代码中执行此操作:
if (fork() == 0) abort();
答案 3 :(得分:9)
如果您想以编程方式执行此操作,请尝试使用google-coredumper。他们的例子:
#include <google/coredumper.h>
...
WriteCoreDump('core.myprogram');
/* Keep going, we generated a core file,
* but we didn't crash.
*/