인프런 커뮤니티 질문&답변

윤동욱님의 프로필 이미지
윤동욱

작성한 질문수

리눅스 입문 - 개념으로 탄탄히!!

[실습] 시그널 전송

core 생성

작성

·

848

3

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
음 선생님 실습과정을 따라하다가 코어 파일이 남지않아서 ulimit -c를 이용해서 파일크기를 늘리고 그다음 다시 kill -TERM을 해서 코어 덤프를 남겨도 ls로 조회를 해도 core 파일이 남지 않네요
 
그렇게 중요하게 다루지 않았지만 그래도 파일이 남지 않으니 남지 않는 이유가 뭐가 있을지 궁금합니다.

답변 2

8

런잇(ProgCoach4U)님의 프로필 이미지
런잇(ProgCoach4U)
지식공유자

안녕하세요 윤동욱님

먼저 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

질문자는 아니지만 같은 상황에서 답변대로 하니 core 파일이 생성됐습니다~ 감사합니다!

윤동욱님의 프로필 이미지
윤동욱

작성한 질문수

질문하기