gdb 개요

MySprtlty·2022년 7월 6일
0

gdb

목록 보기
1/12
post-thumbnail

🏷️gdb

📌개념

  • GNU에서 만든 매우 강력한 디버거다.
  • 매우 단순해서 익히기 쉽다.
  • interactive mode로 동작한다.

📌긴 명령어를 위한 편의 기능

  • gdb는 긴 명령어를 위한 여러 편의 기능을 제공한다.

1. 축약형

  • CISCO IOS처럼 명령어 축약형을 제공한다.
  • 🔍ex)
    • info b: info breakpoints명령어의 축양형이다.
    • i r

2. 자동완성

  • TAB키로 자동완성 기능을 지원한다.
  • TAB을 2번 누르면 인자들의 리스트가 출력된다.

3. 히스토리

  • 위아래(↓, ↑) 방향키로 이전에 입력했던 명령어 히스토리를 찾아볼 수 있다.

🏷️gdb를 사용하기 전에

  • gdb로 디버깅을 하려면 gcc로 컴파일 시 -g옵션을 넣어줘야 한다.
    • 그렇지 않으면 어셈블리어로 컴파일해야 하는 불상사가 발생한다.
    • -g옵션을 붙이게 되면 컴파일되어 생성되는 실행파일에 여러 디버깅 정보가 삽입된다.
    • 여러 디버깅 정보는 다음과 같다.
      • 심볼 문자열
      • 심볼의 주소
      • 컴파일에 사용된 소스 파일
      • 컴파일된 각각의 instruction이 어떤 소스 파일의 어떤 행에 매칭되는가
    • -g옵션을 사용 할 땐 -O(최적화 옵션)를 사용하지 않는 것이 좋다.
      • 🖇️cf. -O stands for Optimization
      • -O옵션을 사용하면 최적화 과정에서 어셈블리 코드 자체에 많은 변경이 가해진다.
      • 이는 C소스 한 행과 대응하는 어셈블리 묶음이 흐트러지기 때문에 디버깅을 방해한다.

0개의 댓글