2003년 10월 10일 금요일

thread가 segmentation fault signal을 받았을 때 제대로 core 덤프하기.

core 파일 남기기

ulimit -c unlimited

----------------

Linux는 thread를 쓰게 되면
main thread와 manager thread 그 외 자식 thread들이 생긴다.

SIGSEGV를 받으면 일단 main과 자신을 제외한 thread를 죽인다.
자신의 thread를 fork하고 이 때 생긴 자식 process는 abort() 시키고 부모 process는 자식이 죽기를 기다렸다가 종료한다.

linux는 한 thread가 fork를 하면 자기 thread만 자식 process에 복사되고 나머지 thread의 내용은 무시된다.
이렇게 죽으면 깨끗하게 덤프된 core파일을 얻을 수 있고
gdb로 디버깅하면 된다.

댓글 없음:

댓글 쓰기