-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
C 디버깅 도구
요약
- GDB : 디버깅 도구
- DDD : GDB의 GUI 제공 (Unix 기반)
- Valgrind : 메모리 누수 체크
GDB 시작
gcc -g myprog.c- 프로그램 디버깅시 바이너리 실행파일에 추가 디버깅 정보를 추가하는 -g옵션과 함께 컴파일하면 유익
- 디버깅할 때 컴파일 최적화 피하기 (-02로 빌드하지 말기)
- 컴파일러 최적화 코드는 디버깅 하기가 매우 어렵다.
- C 소스코드에서 다시 명확하게 매핑되지 않는다.
-g3플래그- 사용자에 따라 추가 디버깅 정보 표시
gdb a.outorddd a.out- 컴파일된 실행파일
GDB 명령어
- break : 중단점 설정
- run : 프로그램 시작
- cont : 중단점 도달까지 계속 실행
- continue 로 가능
- quit: GDB 섹션 종료
- next : 다음 줄 실행 후 일시정지
- step : 다음 줄 실행 후 함수 호출 포함시 함수로 들어가 일시정지
- list : 일시중지 주변 c 코드 확인
- print : 변수 or 표현식 값 출력
- where : 호출 스택 출력
- frame : 특정 스택 프레인 컨텍스트 이동
- display : 각 중단점마다 검사 데이터 표시
- until : 정해진 줄 번호에 도달할 때 까지 프로그램 실행
- whatis : 타입 표시
- set : 할당
커멘드 라인 자동완성 지원
- print -> p
- list -> l
- next -> n
- Return Key -> 가장 최근에 실행한 명령어
- enable, disable, ignore, delete, clear : 일정 횟수동안 활성화 비활성화 무시 또는 중단점 삭제
자주 쓰는 GDB 명령어
- help <>
- help breakpoints : 중단점 도움말
- break <> : func-name or line or filename:line
- run args (예 run 100 200 30)
- into frame : 현재 스택 프레임 상태 표시
- x : 메모리 검사
Metadata
Metadata
Assignees
Labels
No labels