Skip to content

GDB Debugging 도구 사용하기 #33

@SAgiKPJH

Description

@SAgiKPJH

C 디버깅 도구

요약

  • GDB : 디버깅 도구
  • DDD : GDB의 GUI 제공 (Unix 기반)
  • Valgrind : 메모리 누수 체크

GDB 시작

  • gcc -g myprog.c
    • 프로그램 디버깅시 바이너리 실행파일에 추가 디버깅 정보를 추가하는 -g옵션과 함께 컴파일하면 유익
    • 디버깅할 때 컴파일 최적화 피하기 (-02로 빌드하지 말기)
      • 컴파일러 최적화 코드는 디버깅 하기가 매우 어렵다.
      • C 소스코드에서 다시 명확하게 매핑되지 않는다.
    • -g3플래그
      • 사용자에 따라 추가 디버깅 정보 표시
  • gdb a.out or ddd 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
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions