검색해보고 질문 올립니다. 지금 코딩하는 프로그램이 전혀 이해할 수 없는 부분에서 계속 죽고 있는데 찍어보기로는 도저히 모르겠어서.. 코어 덤프해서 보려고 합니다. 세그폴트 내면서 죽을때 코어를 강제로 덤프하고 싶은데 어떻게 해야 하나요?
default로 Segmentation fault는 core를 떨어뜨립니다. 하지만 shell의 옵션에 따라 생성을 시키지 않을 수 있습니다. $ ulimit -a core file size (blocks) 1048576
와 같을 경우에는 core를 떨어뜨릴 것입니다.
$ulimit -a core file size (blocks, -c) 0
와 같을 경우 core를 떨어뜨리지 않습니다. 이 경우에는 $ ulimit -c 1048576 $ ulimit -a core file size (blocks, -c) 1048576
와 같이 되어서 core가 떨어질 것입니다.
현재 가동중인 프로세스의 core 이미지를 떨어뜨리는 방법은 $ gcore pid
하면 core가 생기니다. gcore는 제가 사용하는 환경에서는 있는데....
>/dev/null 2>&1
윗 분이 이야기 하신 대로 쉘의 환경을 코어 가능하게 해주시고요 bash인가는 디폴트가 코어를 안 만들게 되어있더라고요,
^\ 또는 0의 주소에 데이타 집어 넣기 *(0)=1; 이런 식으로도 코어를 만들수 있습니다.
abort();
원하는 위치에 위 함수를 사용하세요.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
default로 Segmentation fault는 core를 떨어뜨립니
default로 Segmentation fault는 core를 떨어뜨립니다.
하지만 shell의 옵션에 따라 생성을 시키지 않을 수 있습니다.
$ ulimit -a
core file size (blocks) 1048576
와 같을 경우에는 core를 떨어뜨릴 것입니다.
$ulimit -a
core file size (blocks, -c) 0
와 같을 경우 core를 떨어뜨리지 않습니다. 이 경우에는
$ ulimit -c 1048576
$ ulimit -a
core file size (blocks, -c) 1048576
와 같이 되어서 core가 떨어질 것입니다.
현재 가동중인 프로세스의 core 이미지를 떨어뜨리는 방법은
$ gcore pid
하면 core가 생기니다.
gcore는 제가 사용하는 환경에서는 있는데....
>/dev/null 2>&1
코어 만들기.
윗 분이 이야기 하신 대로 쉘의 환경을 코어 가능하게 해주시고요
bash인가는 디폴트가 코어를 안 만들게 되어있더라고요,
^\ 또는 0의 주소에 데이타 집어 넣기 *(0)=1;
이런 식으로도 코어를 만들수 있습니다.
abort();
abort();
원하는 위치에 위 함수를 사용하세요.
댓글 달기