gdb 사용에 관한 기본적인 내용은 다음 포스트를 참고하세요.
http://kthan.tistory.com/6
명령어의 일부를 빨간색으로 표시한건 단축키를 의미합니다.
1. 브레이크포인트 설정 명령어
1.1 break : 특정 위치에 브레이크 포인트 설정
예) break func : func 함수의 시작위치에 설정
break 123 : 123번째 줄에 설정
break main.c:func : main.c 파일의 func 함수의 시작 위치에 설정
break 123 if i == 1 : i값이 1 일때 123번째 줄에 설정
1.2 rbreak :정규표현식(regular expression)을 사용해 여러 심볼에 브레이크포인트 설정
예) rbreak ^func : fun로 시작하는 모든 심볼에 설정
rbreak func : func를 포함하는 모든 심볼에 설정
1.3 clear :특정 브레이크포인트 지우기
예) clear func : func 함수에 설정한 브레이크포인트 지움
clear 123 : 123번째 줄에 설정한 브레이크포인트 지움
1.4 info breakpoints: 설정한 브레이크포인트 정보 조회
1.5 enable/disable breakpoints :특정 브레이크 포인트 활성화/비활성화
예) disable breakpoints : 모든 브레이크포인트 비활성화
disable breakpoints 1,2,5 : 1,2,5번 브레이크 포인트 비활성화 (info b로 조회한 브레이크포인트 숫자)
enable breakpoints : 모든 브레이크포인트 활성화
enable breakpoints 1,2,5 : 1,2,5번 브레이크 포인트 활성화
1.6 delete :설정한 모든 브레이크포인트를 지움
2. 값 출력
2.1. info 명령어
info <출력할 타입>: 특정 타입의 info 정보를 출력.
(gdb에서 info를 입력하고 Tab키를 누르면 조회 가능한 모든 값들을 볼 수 있음. )
예) info locals : 지역 변수와 값 출력
info variables : 전역 변수와 값 출력
info registers : 레지스터의 값 출력
info frame: 스택 프레임 정보 출력
info thread: 스레드별 정보 출력
2.2. print 명령어
print/[출력 형식] (형 변환)[변수] : 특정 변수 값을 원하는 포맷으로 출력- 출력 형식:
t: 2진수
o: 8진수
d: int형 10진수
u: unsigned int형 10진수
x: 16진수
c: 1 바이트를 char형
f: float형
예) print/x lval : lval를 16진수로 출력
print (char *) str : str변수를 "char *" 타입으로 변환 후 출력
- 다양한 값 지정
2.3. list 명령어
- 보여지는 라인 수 설정
2.4 display 명령어
display <lvalue> : s(step)명령 수행시 매번 lvalue값을 출력
enable/disable display <display번호> : 설정한 번호의 display를 활성화/비활성화
3. 진행 관련 명령어
watch <lvalue> : lvalue에 값이 써질때 마다 브레이크
rwatch <lvalue> : lvalue에서 값을 읽을 때 마다 브레이크
thread [n] : n번째 스레드로 이동(info thread 명령어로 스레드별 정보 조회 가능)
frame [n] : n번째 스택 프레임으로 이동
up [n] : n번째 상위 스택으로 이동
down [n] : n번째 하위 스택으로 이동
※ 'bt' 명령어로 조회되는 결과에서 앞쪽에 있는 숫자가 스택 번호임
'IT 생활 > 리눅스&우분투' 카테고리의 다른 글
[리눅스/Linux] 소스 자동 빌드 관리 툴 - 젠킨스(허드슨) 설정 (7) | 2012.03.30 |
---|---|
[리눅스/Linux] 소스 자동 빌드 시스템 - 젠킨스(허드슨) 설치 (0) | 2012.03.29 |
[리눅스/Linux] ctags를 활용한 효율적인 vi(vim) 소스 편집 (0) | 2011.06.23 |
[리눅스/Linux] ulimit 으로 coredump 설정 (2) | 2011.06.20 |
[리눅스/Linux] 패킷 생성 및 전송 툴 - tomahawk, tcpreplay, bittwist (0) | 2011.04.26 |