Core Dump

김재현·2023년 10월 24일
post-thumbnail

리눅스 코어 덤프는 프로그램이 비정상적으로 종료되거나 오류가 발생했을 때, 프로세스의 현재 상태와 메모리 내용을 저장하는 디버깅 도구이다.
프로그램에서 충돌이 일어나거나 시그널이 발생할 경우 자동으로 생성된다.
이 파일을 통하여 프로그램의 실패 원인과 메모리에 저장된 데이터를 분석할 수 있다.

  1. ulimit core file size 값 확인
# ulimit -c 
0
  1. ulimit core file size 값 설정
# ulimit -c unlimited

# ulimit -c
unlimited
  1. 파일 생성 위치 변경
# 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 값은 시스템 재시작에도 유지된다.

  1. 테스트
# 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

0개의 댓글