리눅스는 디버깅이 쉽지 않다. 오랫동안 윈도우 환경에서 개발을 해온 나는 참..답답하다..
크래쉬가 나고 segmentation fault (core dumped) 라는 메세지가 뜨는데..당췌 디버깅을 어떻게 해야하는지...로그파일로는 한계가 있다.
검색을 하다보니 core 파일을 생성하여 gdb로 디버깅이 가능하다 ㅎ 이런~ 좋은 방법이~
하지만 크래쉬가 났는데 core dumped라고 하는데 core파일이 없다...
코어파일 사이즈가 0인지 확인한다.(ulimit -a)
아래와 같이 코어 파일 사이즈를 변경합니다.
이제 크러쉬후에 core.xxxx라는 코어 파일이 생성되었음을 볼수 있습니다.
자 이제 core파일을 gdb로 분석해봅시다.
WinDbg와 분석 포인트는 유사해서 어렵진 않네요 깊이가 문제겠지만 ㅎ
gdb 실행프로세스 코어파일 ->코어파일 분석시작
bt -> call stack
f n -> n frame으로 이동
list -> 해당 스택의 소스 보여줌
info locals -> 로컬 변수값 보여줌
p val -> val 변수 값 보여줌
x address -> 해당 주소의 값 보여줌
Hi, very nice to see your post!Thanks for you share!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit