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
반응형