작성
·
848
3
답변 2
8
안녕하세요 윤동욱님
먼저 kill -TERM 대신 kill -SEGV를 이용해보세요. SIGTERM의 기본 액션은 core를 남기지 않고 종료하는 것입니다. 기본 액션이 coredump인 SIGSEGV를 보내보세요. 그리고 core가 dump됐다는 메시지가 창에 표시되는지도 확인해보시구요.
그리고 sysctl -a | grep kernel.core_pattern 을 입력해서 어떤 값이 나오는지 확인해보세요. 만약 아래와 같이 출력된다면 coredump 내용이 apport라는 툴로 넘어가고 있는 것입니다. 이건 우분투의 경우인데 우분투의 crash report system이라고 하네요.
kernel.core_pattern = |/usr/share/apport/apport %p %s %c %d %P %E
이렇게 설정되어 있으면 파일로 남겨야할 내용을 다른 프로그램으로 넘기고 있는 것입니다. 다음과 같이 변경하면 coredump를 "core" 라는 파일에 저장할 수 있습니다.
sudo sysctl kernel.core_pattern=core
이렇게 설정하시고 다시 한번 kill -SEGV로 애플리케이션을 종료시켜보세요. core 파일을 확인하실 수 있을 것입니다.
다시 한번 해보시고 댓글로 피드백 주세요~ 감사합니다!
0