在Linux下,当一个进程崩溃,核心转储将被创建。即使进程正常运行,如何创建核心转储?
但是,我想创建一个核心转储过程不会崩溃,但看起来越野车。远程专家需要核心转储来分析。
在Windows下,我们可以通过任务管理器创建进程的转储文件,之后进程仍在运行。
在Linux下可以吗?
在Linux下,当一个进程崩溃,核心转储将被创建。即使进程正常运行,如何创建核心转储?
但是,我想创建一个核心转储过程不会崩溃,但看起来越野车。远程专家需要核心转储来分析。
在Windows下,我们可以通过任务管理器创建进程的转储文件,之后进程仍在运行。
在Linux下可以吗?
呼叫gdb
,然后
attach pid
gcore
其中pid
是有问题的进程的进程ID。
如果要以编程方式执行此操作,请尝试使用google-coredumper。他们的例子:
#include <google/coredumper.h>
...
WriteCoreDump('core.myprogram');
/* Keep going, we generated a core file,
* but we didn't crash.
*/
你可以用你的代码中做到这一点:
if (fork() == 0) abort();
这可能不是最好的解决方案,但男孩很聪明:) –