在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();
這可能不是最好的解決方案,但男孩很聰明:) –