gdb [bin name]
가장 흔한 실행방법... Break point 걸고 싶을때..
gdb [bin name] [core name]
core 파일 분석하고 싶을때... back trace라던가...
gdb [bin name] [pid number]
현재 돌아가는 pid에 붙어서 디버깅 할때.
run (r)
프로그램을 시작
quit, kill (k)
디버깅 종료
break (b)
break point 걸때
여러가지 방법이 있음
b aaa.c:this_method
aaa.c파일에 this_method 함수에 설정함
b CAaa::this_method
CAaa클래스에 this_method 함수에 설정
b aaa.c:10
aaa.c파일 10번째 줄에 설정
b +5
현재행에서 5번째 아래에 설정
info b
현재 설정된 브레이크 포인트의 정보
info locals
현재 상태의 지역변수 정보
info variables
현재 상태의 전역변수 정보
info registers
현재 레지스터 정보
info frame
현재 스택 프레임 정보
info args
현재 스택 프레임의 함수가 호출될때 인자
info catch
현재 스택 프레임의 함수내에 예외 핸들러
info signals
보낼 수 있는 시그널의 종류
info set
변경 가능한 환경설정 정보
info functions
함수 리스트
clear (cl)
break point 제거
cl 1
첫번째 break point 제거
cl CAaa::this_method
CAaa클래스에 this_method break point 제거
cl
모든 break point 제거
step (s)
s
현재행 수행 (함수가 나타나면 해당 함수로 진입)
s 10
10개행을 수행
n
현재행 수행 (함수가 나타나도 해당 함수를 실행후 넘어감)
n 10
위의 방식으로 10개행 수행
continue (c)
다음 break 만날때까지 진행
finish
현재함수를 실행하고 빠져나감
return
현재 함수를 마저 실행하지 않고 나감
return false
함수를 빠져나갈때 false를 return
watch bFlag
bFlag값이 변경될때마다 break point를 수행 (매우 편함)
p pStr
pStr의 값을 확인
p func
func 함수의 주소 확인
p tVal
tVal의 구조체 주소를 확인(내용을 보고 싶으면 포인터 * 붙이면됨)
display pVal
pVal값을 계속 퐈면에 표시
frame [숫자]
해당 frame으로 이동 (주로 core 분석할때)
up, down
frame을 올리고 내림
혹시 보고 싶은 var 의 길이가 너무 길때
set print elements 0
댓글 없음:
댓글 쓰기