linux coredump, core 파일 생성 방법
리눅스 상에서 프로그래밍 작업 시 core 파일이 필요한 순간이 있다.
C/C++ 프로그램 실행 중 segmentation fault 발생 시 core 파일을 만들어 디버그 작업을 해야 한다던가..
ulimit 명령어는 시스템 정보(pipe, memory, file size, core size, stack size, descriptor open 개수 등)를 보여주고 설정할 수 있는 명령어이다.
그럼 ulimit -a를 통해 시스템 정보를 살펴보자.
muabow@muabow:~$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31012
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 31012
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
저 중 첫 줄에 core file size가 0이란 것은 리눅스 기본값이 core 파일 생성하지 않는다를 의미한다.
이제 core 파일을 생성하는 방법을 설명한다.
1. ulimit -c unlimited
muabow@muabow:~$ ulimit -c unlimited
muabow@muabow:~$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31012
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 31012
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
위의 명령을 사용하는 것은 해당 로그인이 유지되는 동안 한시 적용하는 방법이다.
하지만 root 권한이 없는 환경이라면(e.g. 상용서버, 테스트베드, 내 거가 아닌 서버 등) 한시 적용 방식을 사용하는 게 옳다.
2. /etc/security/limits.conf 수정
영구 반영을 위해선 시스템 환경설정 파일을 수정하면 된다.
위 /etc/security/limits.conf를 수정하는데 위 화면의 56/57 라인을 참고하면 된다.
그럼 가시밭 디버깅 길에 축복이 함께 하길..
끝.
'IT > linux' 카테고리의 다른 글
출력에 색깔 입히기 정리 및 결과, ansi color (2) | 2022.01.17 |
---|---|
임베디드 리눅스 보안 이슈 정리 (0) | 2022.01.17 |
kernel panic, 커널패닉 시 재부팅 설정 (4) | 2022.01.15 |
linux aplay PCM 파일 재생 예제 (0) | 2022.01.15 |
grub installer, 부트로더 스크립트 예제 (0) | 2022.01.15 |
댓글