core 파일이 안 생깁니다.

kmhh0021의 이미지

.c 파일을 컴파일 하고 실행했습니다.

세그멘테이션 오류라고 에러가 났는데,

core 파일이 생기지 않습니다.

linux에서/커널컴파일에서 core 파일이 생기게 하는 옵션이 있다고 들은것 같습니다.

고수님들 debugging을 위해 core를 확인하고 싶은데 부탁 드립니다..

도와 주세요.

jundotcom의 이미지

보통 리눅스 부팅시에 코어 화일을 만들지 않도록 세팅되어 있다. 하지만 코어화일 생성을 가능케 하려고 한다면 그것을 다시 가능케 하는 셸의 내장 명령을 사용한다.

셸 호환 셸(예. tcsh)을 쓰고 있다면 다음과 같이 명령을 내린다.

% limit core unlimited

만약 본셸류(sh, bash, zsh, pdksh)를 사용하고 있다면,

$ ulimit -c unlimited

만약 코어 화일의 이름에 대하여 융통성을 가지고 싶다면, 커널 소스를 약간만 변경해주면 된다. 자, fs/binfmt_aout.c와 fs/binfmt_elf.c와 같은 화일을 찾아보자.

memcpy(corefile,"core.",5);
#if 0
memcpy(corefile+5,current->comm,sizeof(current->comm));
#else
corefile[4] = '\0';
#endif

grep 같은 것을 가지고 이런 부분을 모두 찾은 후에 0이라고 되어 있는 것을 1이라고 모두 고쳐준다.

============

kldp 검색 결과

white color에서 gold color로 가는길..