리눅스 코어 덤프는 프로그램이 비정상적으로 종료되거나 오류가 발생했을 때, 프로세스의 현재 상태와 메모리 내용을 저장하는 디버깅 도구이다.
프로그램에서 충돌이 일어나거나 시그널이 발생할 경우 자동으로 생성된다.
이 파일을 통하여 프로그램의 실패 원인과 메모리에 저장된 데이터를 분석할 수 있다.
# ulimit -c
0
# ulimit -c unlimited
# ulimit -c
unlimited
# cat /proc/sys/kernel/core_pattern
core
# echo "/var/coredumps/core.%e.%p" > /proc/sys/kernel/core_pattern
# cat /proc/sys/kernel/core_pattern
/var/coredumps/core.%e.%p
%e: 실행 파일의 이름
%p: 프로세스 ID
또한 /proc/sys/kernel/core_pattern 값은 시스템 재시작에도 유지된다.
# sleep 500 &
# ps -ef | grep sleep
root 10295 10275 0 11:27 pts/0 00:00:00 sleep 500
# kill -SIGTRAP 10295 -> sleep PID 값
# ls -l /var/coredumps/
core.sleep.10295
코어 덤프 생성 설정을 유지하기 위해서는 /etc/security/limits.conf 파일을 수정한다.
# cat /etc/security/limits.conf | grep core | grep -v ^# * soft core unlimited