본문 바로가기
Programming/Debug

gdb - 간단한 명령어/사용법/단축어 정리(cheat sheet)

by 썽하 2020. 7. 30.

GDB를 이용해 간간히 디버깅 하긴 했지만, 자주 사용하지 않아서 익숙하지 않았다. 앞으로 사용할 때마다 검색시간을 줄이기 위해 내가 사용하는/했던 gdb 명령어를 정리해놓기로 했다.

명령어를 정리하다가 마스코트를 찾아보았는데, gdb 마스코트는 위 그림의 금붕어이고, 이유를 찾아보니 벌레(버그)를 잡아먹고 물을 쏘아 벌레를 죽인다나 뭐라나.. 아무튼 그렇다고 한다.

 


급한 분들을 위한 cheat sheet

cheat sheet page 1
cheat sheet page 2

사전 조건

컴파일 시 -g 옵션을 주어야 함.

 

GDB 실행

디버깅하기 위해 가장 먼저 해야 할 것은 해당 프로세스를 대상으로 gdb를 실행해야 한다.

 

여기서부터 설명되는 명령어는 대부분 단축어가 있다.
단축이 되는 글자를 파란색으로 표시하겠다.

중단점 설정/확인/해제

break : 중단점을 설정한다.

info break : 중단점을 확인한다.

clear : 중단점을 지정해 지운다.

delete : 중단점을 지운다.

disable / enable : 중단점을 활성화/비활성화한다.

<ctrl + c> : 프로세스 가 실행 중 중단점에 도달하지 않을 때 사용하여 일시 중단 가능하다.

 

프로세스 실행

run : 프로세스를 새로 실행한다. 이미 실행 중이라면 재시작한다.

continue : 마지막 중단 지점에서 다음 중단점 까지 프로세스를 재개한다.

next : 실행 중인 프로세스를 한 줄 실행한다. 함수 실행 시 내부로 진입 X

step : 실행 중인 프로세스를 한 줄 실행한다. 함수 실행 시 내부로 진입

finish : 현재 함수를 수행하고 빠져나간 후 리턴 값을 출력한다.

 

Call Stack(콜 스택) 확인

backtrace : 현재 위치의 함수 call stack을 출력한다.

 

값 출력 / 변경

출력 형식 포멧

print : 변수/주소 등을 출력한다

display : 매 실행(step, next, continue 등) 마다 출력한다.

set : 변수/주소 등에 값을 할당한다.

 

기타

return : 현재 함수를 수행하지 않고 빠져나간다.

list : 소스 파일을 출력한다.

 

Reference

 


이상 많이 썼던 것만 정리해서 모아 보았다. 종종 업데이트 해야겠다.

댓글