-
카테고리
-
세부 분야
시스템
-
해결 여부
미해결
core 생성
22.03.27 16:24 작성 조회수 474
3
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
음 선생님 실습과정을 따라하다가 코어 파일이 남지않아서 ulimit -c를 이용해서 파일크기를 늘리고 그다음 다시 kill -TERM을 해서 코어 덤프를 남겨도 ls로 조회를 해도 core 파일이 남지 않네요
그렇게 중요하게 다루지 않았지만 그래도 파일이 남지 않으니 남지 않는 이유가 뭐가 있을지 궁금합니다.
답변을 작성해보세요.
7
ProgCoach4U
지식공유자2022.03.27
안녕하세요 윤동욱님
먼저 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
답변 2