솔라리스10, 스팍, Sun CC, dbx 환경에서 SIGILL 디버깅 어떻게 하나요?
글쓴이: ssehoony / 작성시간: 화, 2007/06/12 - 4:23오후
개발 환경은 제목과 같은 상태에서요
프로그램이 운용중에 SIGILL을 받고 죽었습니다.
dbx 를 이용해서 core 파일을 열어 보니 SIGILL 로 죽었다고 나오네요.
SIGILL은 처음 접하는 관계로 구글링을 해보니, SIGILL이 발생하는 상황에 대해 몇가지 상황이 나와있네요.
위키피디아에 있는 SIGILL 설명글에서 가장 일반적인게 stack 의 return address 를 overwrite 하는 경우라는데요
dbx 로 stack 을 봤을 때, 아무 이상 없을 것을 보니 stack 이 깨진 것 아닌 것 같습니다.
SIGILL 이 발생하는 세부적인 원인은
ILL_ILLOPC illegal opcode ILL_ILLOPN illegal operand ILL_ADR illegal addressing mode ILL_ILLTRP illegal trap ILL_PRVOPC privileged opcode ILL_PRVREG privileged register ILL_COPROC coprocessor error ILL_BADSTK internal stack error
라고 하는데요
이중에 어떤 것에 의해서 SIGILL 이 발생한것지 core 파일을 통해 알 수 있나요?
알 수 있다면 어떻게 하면 되는건지 알고 싶습니다.
괴롭네요. 재현 할 수도 없고, 재현 못한다고 이것을 상용 서비스에 그냥 적용 할 수 도 없고... 고수님 꼭 좀 도와주십시요~
Forums:
댓글 달기