Core 덤프가 무엇인가요?
글쓴이: parrier / 작성시간: 목, 2009/07/23 - 11:27오전
레드햇 리눅스를 사용하고 있습니다.
조금 시간이 지나면 Home 폴더에 core.1164 등의 파일이 생기는데, 이게 용량이 만만치 않습니다.
어느새 Gbyte 단위대로 올라가 있고 컴퓨터가 버벅이기 시작하는데요.
이것이 무엇이고 왜 생성되는 것인지요? 굳이 필요한 것이 아니라면 생성하고 싶지 않은데
그 방법은 어떻게 되는지 궁금합니다.
참고로 /etc/sysprofile 이던가요? 검색해서 거기에 있는 limit size는 0으로 해두었는데도
ulimit -a를 해보면 core size가 0으로 안되어있고 꼭 껐다 켜면 limited로 되어 있습니다.
Forums:
세그멘테이션펄트
어플리케이션이 돌다가 세그멘테이션 오류 뜨면서 종료 되면 생기는 파일입니다
gdb로 그 파일 볼 수도 있습니다
지워도 상관 없습니다
유닉스 계열의
유닉스 계열의 프로그램이 비정상적으로 종료되는 경우 프로그램이
종료될 당시의 메모리 상태를 기록으로 남기면서 죽게 되는데 이걸
core dump 라고 부릅니다. 디버깅을 할때 유용하게 사용됩니다.
메모리 덤프라고 부르지 않고 core dump 라고 부르는 이유는
컴퓨터의 초창기 시절엔 DRAM 반도체와 같은 장치가 없어서
Magnetic Core 라는 기억장치를 사용했기 때문에 그 이름이
아직도 남아 있어서 그렇게 부릅니다.
보통 프로그램을 디버깅할때 ulimit -c unlimited 과 같은
명령을 내려서 core dump 가 생기도록 하며 평상시에는
core dump 가 생기지 않도록 막는게 보통입니다.
core dump 파일은 크기가 매우 커서 계속 생겨나도록 놔두면
하드디스크를 꽉 채우게 됩니다.
일단 core dump 파일을 지우고 난 다음, 어느 스크립트에서
core dump 파일이 생기도록 바뀌었는지 찾아내야 하겠죠.
아마도 잘 보이지 않는 프로파일 스크립트나 혹은 자기 계정의
bash 스크립트 파일 어딘가에 디버깅하느라 core dump 파일이
생성되도록 풀어놓은 부분이 있을겁니다. 잘 찾아보시기 바랍니다.
core dump 파일이 생성되도록 하는 명령은 콘솔에서 한번만
적어주는게 좋습니다. 자동 스크립트에 적어놓고 잊어버리면
이미 경험하신 바와 같은 사태가 발생합니다.
댓글 달기