Skip to content

Latest commit

 

History

History
85 lines (74 loc) · 2.21 KB

File metadata and controls

85 lines (74 loc) · 2.21 KB
tags
linux
debugging
pwnable
cli_tool

설명


GDB (Gnu Debugger)는 리눅스 및 유닉스 환경에서 사용되는 콘솔 기반의 디버거입니다.

설치 영역


Linux

/usr/bin/gdb

주요 기능


  • 중단점(breakpoing) 설정
  • 실행 제어
  • 변수 및 메모리 값 확인 / 수정
  • 콜스택 및 함수 호출 흐름 추적
  • 워치 포인트 설정
  • 스레드 및 멀티 프로세스 디버깅
  • 프로그램 내부 상태 조작
  • 원격 디버깅

설치 방법


Linux

sudo apt install gdb

간단 가이드


  1. 디버깅 시작: 디버깅할 실행 파일을 GDB로 로드합니다.

    gdb <실행 파일 경로>
    • 예시: gdb ./a.out
  2. 브레이크포인트 설정: 특정 함수나 코드 라인에 브레이크포인트를 설정하여 실행을 중단시킵니다.

    b <함수명> # 함수 시작 부분에 설정
    b <파일:라인번호> # 특정 파일의 라인에 설정
    • 예시: b main, b test.c:10
  3. 실행: 프로그램을 실행합니다. 브레이크포인트에 도달하면 실행이 중단됩니다.

    r # run
  4. 실행 제어: 중단된 프로그램의 실행을 제어합니다.

    n # next (다음 라인으로 이동, 함수 내부로 진입하지 않음)
    s # step (다음 라인으로 이동, 함수 내부로 진입)
    c # continue (다음 브레이크포인트까지 실행)
    finish # 현재 함수 실행을 완료하고 호출자로 돌아감
  5. 정보 확인: 프로그램의 상태를 확인합니다.

    info registers # 레지스터 값 확인
    info locals # 지역 변수 값 확인
    info args # 함수 인자 값 확인
    x/<format> <address> # 메모리 내용 확인 (예: x/wx $rsp)
    bt # backtrace (콜 스택 확인)
  6. 값 변경: 변수나 메모리 값을 변경할 수 있습니다.

    set var <변수명> = <>
    set {int} <주소> = <>
  7. GDB 종료: 디버깅 세션을 종료합니다.

    q # quit

관련 URL


GDB: The GNU Project Debugger