인프런 커뮤니티 질문&답변
core 생성
작성
·
1.1K
3
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
퀴즈
프로그램과 프로세스의 가장 큰 차이점은 무엇일까요?
프로그램은 메모리에 있고 프로세스는 하드디스크에 있습니다.
프로그램은 PID를 갖고 프로세스는 갖지 않습니다.
프로그램은 저장된 파일이고 프로세스는 실행 중인 것입니다.
프로그램은 OS가 관리하고 프로세스는 사용자가 관리합니다.
답변 2
9
안녕하세요 윤동욱님
먼저 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





