Crash tool을 이용해서 VM Core dump를 올리고 나면 볼수 있는 것이 kernel space의 process stack 뿐인데, user space의 call stack을 볼 수 있으면 굉장히 유용하다.
Crash extension 중 gcore가 있는데, 이는 pid 기반으로 process의 core dump를 추출해주며, core dump를 gdb로 로딩하면 process의 stack 정보를 볼수 있다.

[crash utility의 extensions]
https://people.redhat.com/anderson/extensions.html

위 page에서 gcore 검색하면 최신 source로 link가 걸려있음.
다운로드한 파일을 crash tool의 extension 폴더에 풀고 extension을 재 빌드해주면 gcore.so가 생성됨.

crash>extend /path/to/gcore/extension/gcore.so
crash>gcore -f 255 -v 0 1

 -> 위에서 제일 마지막 숫자가 core dump하려는 process의 PID이고,
명령어 실행하고 나면, core.1.init 과 같이 core dump가 생성되며,
이후 gdb를 사용하여 symbol과 함께 로딩 해주면 끝.

gdb ./init ./core.1.init
(gdb)bt

library symbol 경로 설정은
set solib-search-path


2018/05/13 15:58 2018/05/13 15:58
Posted by scott

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다