Ubuntu coredump 설정

coredump는 프로그램이 비정상적으로 종료될 때 메모리 덤프를 생성하는 것을 말한다. 이를 통한다면 프로그램에 어떤 문제가 있었는지 디버깅 하는데 도움이 된다. 이 글에서는 Ubuntu 환경에서 coredump를 생성하기 위한 설정방법에 대해 알아본다.

1. 리소스 제한 확인

coredump 파일의 크기를 제한하는 리소스 제한 설정을 확인한다.

/etc/security/limits.conf 파일을 편집하여 다음과 같이 설정한다.

*               soft    core            unlimited
*               hard    core            unlimited

이 설정은 모든 사용자에 대해 coredump 파일의 크기를 “unlimited”, 즉 제한하지 않도록 설정한다.

2. coredump 위치 설정

coredump 파일을 저장할 디렉토리를 지정한다.

/etc/sysctl.conf 파일을 편집하여 다음과 같이 설정한다.

kernel.core_pattern = core.%e.%p.%t

coredump 파일명을 원하는 형태로 지정할 수 있다. 아래를 참고하여 원하는 형태로 바꾸도록 한다.

%p: pid
%: ‘%’ is dropped
%%: output one ‘%’
%u: uid
%g: gid
%s: signal number
%t: UNIX time of dump
%h: hostname
%e: executable filename
%: both are dropped

3. 설정 적용

coredump 리소스 제한과 위치 및 파일명을 설정했으면 변경한 설정이 적용되도록 아래와 같이 입력한다.

$ sudo sysctl -p
kernel.core_pattern = core.%e.%p.%t

4. 동작 확인

현재 터미널 창에 SIGSEGV 시그널을 전달하여 종료하도록 아래오 같이 입력한다.

$ kill -s SIGSEGV $$

새로운 터미널을 실행하여 coredump 파일이 생성됐는지 확인한다.

$ ls
core.bash.2121.1710422979 

참고

답글 남기기