이런 경우 프로그램 코드가 간단하다면 해당 문제점을 쉽게(?) 해결할 수 있겠지만, 프로그램 규모가 방대한 경우 어디에서 문제가 발생했는지 찾아내는건 간단하지가 않다.
이럴때 해당 문제를 손쉽게 해결할 수 있도록 도와주는 것이 바로 core파일이다.
Core파일을 생성하기 위해서는 어떻게 해야되는지 알아보자.
ulimit -c 해서 core file size가 0으로 되어 있다면 core file 이 생성되지 않음. (linux 최초 기본값)
방법1: ulimit -c unlimited <-- 한시적인 적용 (rebooting 후 해제 됨)
방법2: /etc/profile 파일 변경 <-- rebooting 후에도 설정 유지 됨
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1 부분을 아래와 같이 수정
ulimit -S -c 0 > /dev/null 2>&1 부분을 아래와 같이 수정
ulimit -S -c unlimited > /dev/null 2>&1
# source /etc/profile <-- /etc/profile을 수정 하였으므로 설정 값 적용.
/etc/security/limits.conf 파일 변경
* soft core -1 추가* hard core -1 추가 ( -1은 무한 의미 )
ulimit -a 또는 ulimit -c 로 확인 <-- core file 생성 적용 여부 확인 (unlimited 또는 설정파일 크기)
※ core file 생성시에 디렉토리를 따로 지정하지 않으며, 해당 프로세스와 같은 폴더에 core.PID 의 이름으로 생성 됨.