c로 프로그램을 하다 보면 항상 만나는 문제가 sementation fault이다.
seg fault의 경우 시스템 환경에 따라서 남을수도 있고 남지 않을수도 있다
아래 명령어를 입력해보면
ulimit -a
core file size (blocks, -c) 0
0으로 돼 있는 경우는 core 파일이 남지 않게 되는데
이럴 경우 대개는 ulimit -c unlimited로 설정해서 남도록 시스템 환경을 변경할수 있다.
이 방법이외에 해당 프로그램은 프로그램이 죽으면 안되는 경우 예를 들면 daemon 같은 경우
아래의 코드를 삽입함으로써 ulimit를 설정하지 않고 core 파일을 남기도록 할수가 있다.
*********************************************************************
#include <sys/resource.h>
.....................................
struct rlimit rl;
......................................
getrlimit(RLIMIT_CORE, &rl );
rl.rlim_cur = RLIM_INFINITY;
setrlimit( RLIMIT_CORE, &rl );
*********************************************************************
시스템안에서 ulimit와 동일한 설정을 한다고 보면 이해하기 쉬울것이다.
'프로그램' 카테고리의 다른 글
hadoop to local-server (0) | 2014.01.03 |
---|---|
malloc 2G 이상 메모리 할당 (0) | 2013.11.15 |
시스템 명령어 df -h dmesg (0) | 2013.04.08 |
ssh 권한 관련 StrictModes (0) | 2012.12.12 |
수정된 ab를 활용한 동적 페이지 성능테스트 (0) | 2012.09.26 |