우분투(Ubuntu) 로 C언어 공부 시
세그멘테이션오류 (core dumped) [Segmentation fault]
라는 메시지와 함께 프로그램이 종료 시 gdb 를 통해서 디버깅을 하라고 하는데 위와 같이 오류가 발생했음에도 core 파일이 생성되지 않아서 좀 찾아봤다.
해결방법
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 30938
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) 30938
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
lucifer@lucifer-Vostro-V13:~/test/C$
lucifer@lucifer-Vostro-V13:~/test/C$ ulimit -c unlimited
lucifer@lucifer-Vostro-V13:~/test/C$
lucifer@lucifer-Vostro-V13:~/test/C$ 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) 30938
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) 30938
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
lucifer@lucifer-Vostro-V13:~/test/C$
위와같이 작업 후 프로그램 실행 후
세그멘테이션오류 (core dumped) [Segmentation fault]
메시지가 발생한다면 기본적으로 프로그램이 있는 디렉토리에 core 파일이 생성된 것을 확인할 수 있다.
위의 설정만으로는 다른 쉘에서는 적용되지 않는다.
컴퓨터 기동 시 모든 쉘에서 위의 설정이 적용되도록 하려면 다음과 같이 작업하면 된다.
$ vi ~/.bashrc
=================================
# 파일내용의 제일 처음이나 제일 마지막에 아래의 문자열을 입력한다.
ulimit -c unlimited정상적으로 적용이 된다면 다음과 같이 나오게 된다.
lucifer@lucifer-Vostro-V13:~/test/C/testCore$ ls -l
합계 16
-rw-r--r-- 1 lucifer lucifer 13 4월 15 01:33 numbers.dat
-rwxr-xr-x 1 lucifer lucifer 11793 4월 15 01:32 search1
lucifer@lucifer-Vostro-V13:~/test/C/testCore$
lucifer@lucifer-Vostro-V13:~/test/C/testCore$ ./search1
세그멘테이션 오류 (core dumped)
lucifer@lucifer-Vostro-V13:~/test/C/testCore$
lucifer@lucifer-Vostro-V13:~/test/C/testCore$ ls -l
합계 404
-rw------- 1 lucifer lucifer 397312 4월 15 01:33 core
-rw-r--r-- 1 lucifer lucifer 13 4월 15 01:33 numbers.dat
-rwxr-xr-x 1 lucifer lucifer 11793 4월 15 01:32 search1
lucifer@lucifer-Vostro-V13:~/test/C/testCore$
댓글
댓글 쓰기