세그멘테이션 오류시 코어덤프 파일

vicolee의 이미지

버그가 있는 프로그램소스를 gcc -g 옵션으로 컴파일을 하고
실행시켜 세그멘테이션 오류가 났습니다.

이때 생성된 코어 덤프 파일은 어디에 생기는 것이죠?
제 리눅스에서는 core dumped 라는 메시지가 않뜨는데...
코어 덤프 파일이 생성이 않되는 것입니까?

코어 덤프 파일좀 구경해 봤으면 합니다. ㅠㅠ
어떻게 해야 하죠?

김정균의 이미지

redhat 기반이라면 http://my.oops.org/77 를 참고 하십시오.

coredump 는 따로 지정하지 않는다면 실행한 디렉토리에 남게 됩니다.

vicolee의 이미지

코어 파일이 보이는 군요...하하

감사합니다.

superkkt의 이미지

저는 모든 시스템마다 다 설정을 해줄 수 없어서 프로그램 실행시 코어 관련 설정을 바꾸도록 했습니다.

#include <sys/resource.h>
 
static void
set_limit(void)
{
    struct rlimit rlp;
 
    rlp.rlim_cur = RLIM_INFINITY;
    rlp.rlim_max = RLIM_INFINITY;
 
    /* Core file size를 시스템 최대치로 설정 */
    if (setrlimit(RLIMIT_CORE, &rlp))
        Log(ERROR, "Failed to set rlimit core file size: %s",
                strerror(errno));
}

======================
BLOG : http://superkkt.com

======================
BLOG : http://superkkt.com