Table of Contents
gdb cheat sheet
실행하기
gdb -help 도움말 표시
gdb object 프로그램 디버깅 시작
gdb object pid 실행중인 프로세스 디버깅
도움말
# alias
help h
(gdb) help 도움말 항목
(gdb) help running 특정 항목의 상세 명령목록
(gdb) help run run 명령어에 대한 도움말
(gdb) help info info 명령어에 대한 도움말
(gdb) help info line info 명령어의 상세명령에 대한 도움말
(gdb) help show show 명령어에 대한 도움말
브레이크 포인트(bpt)
# alias
break b
info i
delete d
clear cl
disable dis
enable en
tbreak tb
condition cond
watch wa
breakpoints b
(gdb) break main 특정 함수에 브레이크 포인트(bpt) 지정
(gdb) break 101 특정 라인에 bpt 지정
(gdb) break line if var == 7 특정 변수가 특정값일 때 bpt 활성화
(gdb) break basic.c:101 특정 파일의 특정 라인(또는 함수)에 bpt 지정
(gdb) info breakpoints bpt 목록 표시
(gdb) delete 1 번호로 bpt 삭제
(gdb) delete 모든 bpt 삭제
(gdb) clear 현재 라인의 bpt삭제
(gdb) clear function 특정 함수에 걸린 bpt 삭제
(gdb) clear line 라인 번호로 bpt 삭제
(gdb) disable 2 번호로 bpt 끄기(삭제 XXX)
(gdb) enable 2 번호로 bpt 켜기
(gdb) tbreak function|line 임시 bpt 설정
(gdb) commands break-no ... end bpt 번호에 gdb 명령 설정
(gdb) ignore break-no count bpt 번호에 N-1 번만큼 무시
(gdb) condition break-no expression 조건이 참인 경우만 bpt 번호 활성화
(gdb) condition 2 i == 20 예제: i 가 20 인 경우 bpt 활성화
(gdb) watch expression 변수에 software watchpoint 할당
(gdb) info watchpoints 현재 watchpoints 조회
프로그램 실행/종료
# alias
run r
step s
next n
continue cont
kill k
(gdb) run 프로그램 실행
(gdb) run args redirection 파라미터를 포함해 프로그램 실행
(gdb) set args args... 파라미터 설정
(gdb) show args 파라미터 표시
(gdb) cont 다음 bpt 까지 프로그램 실행
(gdb) step 현재라인 실행, 함수가 있으면 함수 안으로 진행
(gdb) step count count 번만큼 step 실행
(gdb) next step 실행, 함수가 있으면 함수 다음 라인으로 진행
(gdb) next count count 번만큼 next 실행
(gdb) CTRL-C 프로그램 종료
(gdb) attach process-id 실행중인 프로세스에 연결
(gdb) detach 연결 해제
(gdb) finish 현재 함수의 실행 종료
(gdb) kill 실행중인 프로그램 종료
스택조회
(gdb) bt 스택 조회
(gdb) frame 현재 실행 위치 표시
(gdb) up 상위 스택으로 이동(main 으로 이동)
(gdb) down 하위 스택으로 이동(main 에서 멀어짐)
(gdb) info locals 현재 프레임의 변수 표시
(gdb) info args 함수 파라미터 표시
소스 보기
# alias
list l
(gdb) list 101 101 라인부터 10 라인 표시
(gdb) list 1,10 1 에서 10 라인까지 표시
(gdb) list main 함수 근처의 소스 표시
(gdb) list basic.c:main 특정파일의 특정 함수 소스 표시
(gdb) list - 이전 10 라인 표시
데이타 조회
# alias
print p
(gdb) print expression expression 출력, 변수 히스토리에 추가
(gdb) print/x expressionR hex 로 출력
(gdb) print array[i]@count 변수 범위 출력
(gdb) print $ 마지막 변수 출력
(gdb) print *$->next 리스트 변수 출력
(gdb) print $1 변수 히스토리의 1번째 값 출력
(gdb) info locals 지역 변수 출력
(gdb) whatis expression expression 의 타입 출력
(gdb) set variable = expression 변수의 값 변경
(gdb) display expression 변수의 값 지속적으로 출력
(gdb) undisplay display 삭제
(gdb) info display display 목록 표시
(gdb) show values 변수 히스토리 출력
기타
# alias
quit q
(gdb) define command ... end 사용자 함수 생성
*(gdb) RETURN 마지막 명령 반복
*(gdb) shell command args shell 명령 실행
*(gdb) source file 파일에서 gdb 명령 읽어오기
*(gdb) quit gdb 종료