실행중인 process에
ltrace -p PID 를 걸어서 trace 를 걸면
아래와 같은 메세지를 뿌리고 서버는 죽습니다.
+++ killed by SIGTRAP +++
해서.. 프로세스에
signal(SIGTRAP, SIG_IGN);
를 넣어두고 컴팔후 다시 구동하고 ltrace를 걸어보았지만.
역시나 +++ killed by SIGTRAP +++ 이런 메세지를 보여
주고 서버는 죽습니다.
왜 그런걸까요??
하나의 프로세스에 여러개의 쓰레드가 돌고 있을때
ltrace 를 사용하면 위와 같이 SIGTRAP을 받고
trace 뜨는걸 멈추면서 서버가 죽습니다.
SIGTRAP 은 디버깅 시그널로 알고 있습니다.
ltrace 같은 경우 strace 와는 달리 유저 function 까지
상세히 호출되는 모습을 보여주어 활용성이 높다고 생각되어집니다.
sigtrap 같은 경우 자식 쓰레드가 부모로 제어를 넘길때 보내는
시그널로 검색 결과 알았습니다. 이때 왜 ltrace 가 멈추는 것일까요?
ltrace의 사용법을 좀더 정확이 알고 싶음 마음에 한번더 질문을 올립니다.
전 다시 웹을 뒤적이며 원인을 검색해봐야겠습니다 ^^
텍스트 포맷에 대한 자세한 정보
<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]
답글이 없어 부연합니다^^
하나의 프로세스에 여러개의 쓰레드가 돌고 있을때
ltrace 를 사용하면 위와 같이 SIGTRAP을 받고
trace 뜨는걸 멈추면서 서버가 죽습니다.
SIGTRAP 은 디버깅 시그널로 알고 있습니다.
ltrace 같은 경우 strace 와는 달리 유저 function 까지
상세히 호출되는 모습을 보여주어 활용성이 높다고 생각되어집니다.
sigtrap 같은 경우 자식 쓰레드가 부모로 제어를 넘길때 보내는
시그널로 검색 결과 알았습니다. 이때 왜 ltrace 가 멈추는 것일까요?
ltrace의 사용법을 좀더 정확이 알고 싶음 마음에 한번더 질문을 올립니다.
전 다시 웹을 뒤적이며 원인을 검색해봐야겠습니다 ^^
댓글 달기