본문 바로가기

IT/Linux

Segmentation Fault 발생시 디버깅 하기



1.     컴파일 Option“–g –O0” 를 추가 한다.


2.     Target에서 실행하기 전에 “ulimit -c unlimited” 실행해서 core dump를 만들게 한다.


3.     Segmentation Fault가 발생하면 core dump 된다.


4.     gdb를 실행한다.


gdb  프로그램실행파일 Core파일

, main 이라는 실행 파일에서 에러가 났다면

gdb ./main ./core

arm-linux-gdb ./main ./core



5.     Gdb 명령어

Backtrace/frame 등을 사용하여 디버깅 한다.




      * core dump가 안되는 경우


 core dump가 /proc/sys/kernel/core_pattern의 값에 해당하는 폴더에 생성 되므로

작업하는 폴더에 생성 되게 하려면 아래와 같이 변경한다.

        

          echo core > /proc/sys/kernel/core_pattern


반응형