프로그램

core dump 남기기

고요한하늘... 2013. 4. 29. 18:48

 

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