컴파일 단계에서 gdb가 프로그램내의 변수명, 함수명, 매개변수명 등의 심볼을 참조할 수 있도록 -g 옵션을 넣는다.
gdb 명령어로 프로그램을 실행시킨다.
gdb <프로그램> : gdb를 이용하며 프로그램 실행
gdb <프로그램> <core dump 파일명> : 생성된 core dump파일을 통해 프로그램이 중단된 시점을 분석
gdb <프로그램> <실행 중인 프로세스 pid> : 실행 중인 프로세스에 gdb를 사용
r(run) 명령어로 프로그램을 실행시킬 수 있음
b(break) 명령어로 breakpoint를 설정할 수 있음
d(delete) 명령어로 breakpoint를 삭제할 수 있음
n(next) 명령어로 다음 한 줄의 코드를 실행할 수 있음
c(continue) 명령어로 break 이후 다음 break까지 프로그램을 다시 실행시킬 수 있음
s(step) 명령어로 다음 한 줄의 코드를 실행하고 함수가 있을 경우, 함수 내부로 진입할 수 있음
fin(finish) 명령어로 현재 함수를 수행 후, 반환값을 확인할 수 있음
i(info) locals 명령어로 현재 frame의 지역 변수를 확인할 수 있음
i(info) variables 명령어로 전역 변수를 확인할 수 있음
i(info) b(break) 명령어로 현재 설정된 breakpoints를 확인할 수 있음
그 외 사용 가능한 명령어 ('i'만 입력할 경우 사용 가능한 명령어 확인 가능)
p(print) 명령어로 변수의 값을 확인할 수 있음
display 명령어로 변수가 사용될 때마다 변수를 출력할 수 있음
where 명령어를 통해 현재 실행중인 프로세스의 stack frame 확인 가능
bt(backtrace) 명령어를 통해 마지막 stack frame 확인 가능
l(list) 명령어를 통해 프로그램의 현재 위치 코드를 출력할 수 있음
bt 명령어로 stack frame 확인
'f(frame) 5' 명령어를 통해 오류가 의심되는 stack frame으로 이동 (여기서는 5번 frame으로 이동)
'l' 명령어를 통해 해당 frame 위치의 코드 확인
frame내 지역 변수 확인, 여기서는 buffer의 크기가 10이지만 그 이상의 string을 복사하여 오류 발생
gdb help 명령어를 통해 gdb의 명령어 확인 가능