| tags | ||||
|---|---|---|---|---|
|
GDB (Gnu Debugger)는 리눅스 및 유닉스 환경에서 사용되는 콘솔 기반의 디버거입니다.
/usr/bin/gdb
중단점(breakpoing) 설정실행 제어변수 및 메모리 값 확인 / 수정콜스택 및 함수 호출 흐름 추적워치 포인트 설정스레드 및 멀티 프로세스 디버깅프로그램 내부 상태 조작원격 디버깅
sudo apt install gdb-
디버깅 시작: 디버깅할 실행 파일을 GDB로 로드합니다.
gdb <실행 파일 경로>
- 예시:
gdb ./a.out
- 예시:
-
브레이크포인트 설정: 특정 함수나 코드 라인에 브레이크포인트를 설정하여 실행을 중단시킵니다.
b <함수명> # 함수 시작 부분에 설정 b <파일:라인번호> # 특정 파일의 라인에 설정
- 예시:
b main,b test.c:10
- 예시:
-
실행: 프로그램을 실행합니다. 브레이크포인트에 도달하면 실행이 중단됩니다.
r # run -
실행 제어: 중단된 프로그램의 실행을 제어합니다.
n # next (다음 라인으로 이동, 함수 내부로 진입하지 않음) s # step (다음 라인으로 이동, 함수 내부로 진입) c # continue (다음 브레이크포인트까지 실행) finish # 현재 함수 실행을 완료하고 호출자로 돌아감
-
정보 확인: 프로그램의 상태를 확인합니다.
info registers # 레지스터 값 확인 info locals # 지역 변수 값 확인 info args # 함수 인자 값 확인 x/<format> <address> # 메모리 내용 확인 (예: x/wx $rsp) bt # backtrace (콜 스택 확인)
-
값 변경: 변수나 메모리 값을 변경할 수 있습니다.
set var <변수명> = <값> set {int} <주소> = <값>
-
GDB 종료: 디버깅 세션을 종료합니다.
q # quit