조건
gdb로 디버깅하기 위해서는 gcc에 -g 옵션을 주고 컴파일해야 한다.
실행
gdb <실행파일명>
종료
quit
변수값 확인
print 변수명
Break/Watchpoints
breakpoint 설정
간단 설정
break <줄번호|함수명>
조건부 설정
break <줄번호> if <조건>
이미 설정된 breakpoint에 조건을 설정하려면 아래와 같이 하면 된다.
condition <break 번호> <조건>
breakpoint 목록 보기
info break
watchpoint 설정
watch <변수명|조건>
한줄씩 실행
한줄씩 실행. 함수 호출시 함수 내부로 들어가지 않는다.
next or n
한줄씩 실행. 함수 호출시 함수 내부로 들어간다.
step or s
계속 실행
continue
Stack trace
stack 출력
bt
출력 형식은 아래와 같다.
#frame번호 주소 in 함수명(인자) at 파일명:줄번호
예)
(gdb) bt #0 0x80483ea in sum (a=8, b=8) at main.c:7 #1 0x8048435 in main (argc=1, argv=0xbffff9c4) at main.c:21
frame 이동
frame <frame번호>
up or down
지역변수 확인
info locals
예) backtrace 에서 특정 stack의 지역변수를 확인할때?
(gdb) frame 1 (gdb) info locals
Attach Process
gdb <실행파일명> <pid>