unix를 사용하다가 보면 특정 프로세스가 비정상 종료가 되면서 core 파일을 생성할 때가 있다.
이 때, core가 어떤 부분에서 났을 때 찾아보기 위해서 dbx 툴을 사용하면 유용하다.
먼저 core가 어디에서 떨어진것인지 알 수 없을 때 file 명령어를 이용하여 대략적인 정보를 얻을 수 있다.
1.
abc:/test> file core
core:AIX core file fulldump 64-bit, coke
file을 통해서 coke라는 바이너리에서 core가 발생한 것을 알 수가 있다.
이때,
2.
abc:/test> dbx coke core
를 실행시켜주면 dbx가 실행되게 된다. 이때 로딩(?)이 되면서 무슨 오류가 발생했는지 로그로 나온뒤에
(dbx)
라는 커맨드라인이 뜨게 된다.
(dbx)where
위 처럼 where 커맨드를 이용하여 core dump가 떨어진 곳에 대한 자세한 정보를 추출할 수 있다.
현재 컴퓨터에서 남길수 있는 상황이 아니라서... 예제 화면을 못올리는게 아쉽다..
dbx에서 where를 보게 되면 프로그램이 내부에서 어디까지 실행되다가 core를 남기게 되는가를 알수가 있게 된다. 해당 부분을 조사하다 보면 원인을 찾을 수 있다.
'Server > UNIX & Linux' 카테고리의 다른 글
[AIX] '//' C에서 사용하는 한줄 주석 인식하게 하기 (0) | 2018.08.10 |
---|---|
네트워크 상태(network status)의 의미 (0) | 2018.08.06 |
자주 만나는 SIGNAL 종류 (0) | 2018.08.02 |
쉘 및 C언어에서 글자색 넣기 (0) | 2018.08.01 |
lsof 사용법 (0) | 2018.07.30 |