2014-12-21 4 views
19

Linux에서 프로세스가 충돌하면 코어 덤프가 생성됩니다.프로세스가 정상적으로 실행중인 경우에도 코어 덤프를 만드는 방법은 무엇입니까?

그러나 프로세스가 중단되지는 않지만 버그가있는 것처럼 코어 덤프를 만들고 싶습니다. 원격 전문가가 분석하려면 코어 덤프가 필요합니다.

Windows에서는 작업 관리자를 통해 프로세스의 덤프 파일을 만들 수 있으며 그 이후에도 프로세스가 계속 실행됩니다.

Linux에서는 가능합니까? pid 문제의 프로세스의 프로세스 ID입니다 다음

attach pid 
gcore 

답변

9

프로그래밍 방식으로이 작업을 수행하려면 google-coredumper을 사용해보십시오. 그들의 예 : 당신이 원하는 경우에, 그런데

gcore [-o filename] pid 

: 당신이 바로 명령 줄에서 gcore 유틸리티를 사용할 수 있습니다

if (fork() == 0) abort(); 
14

당신은 귀하의 코드 내에서 그것을 할 수 있습니다 프로세스의 스택 추적 만 보려면 gstack 유틸리티가 작업을 수행합니다.

두 유틸리티 모두 gdb과 함께 제공됩니다.

+5

가능성이 가장 좋은 해결책은 아니지만 소년은 똑똑합니다. :) –

17

:

#include <google/coredumper.h> 
... 
WriteCoreDump('core.myprogram'); 
/* Keep going, we generated a core file, 
* but we didn't crash. 
*/