실행방법
gdb 프로그램명
gdb 프로그램명 PID
gdb 프로그램명 덤프파일
인자
set args --
show args
역추적.
bt
멀티스레드 디버깅
info threads 스레드 정보 확인
t [n] 스레드 변경
브레이크 포인트
info break, info b 브레이크 포인트 목록
break n
b file:n
tb 한번만 사용하는 브레이크 포인트
clear 브레이크 포인트 제거
cl 브레이크 포인트 제거
디버깅 스텝
s(step) step in
n(next) step out
c(continue) next breakpoint
finish : 현재 함수를 수행하고 빠져나감
ret (return) : 현재 함수를 수행하지 않고 빠져나감
변수값 출력
print 변수명
p/t var : var 변수를 2진수로 출력
p/o var : var 변수를 8진수로 출력
p/d var : var 변수를 부호가 있는 10진수로 출력 (int)
p/u var : var 변수를 부호가 없는 10진수로 출력 (unsigned int)
p/x var : var 변수를 16진수로 출력
p/c var : var 변수를 최초 1바이트 값을 문자형으로 출력
p/f var : var 변수를 부동 소수점 값 형식으로 출력
p/a addr : addr주소와 가장 가까운 심볼의 오프셋을 출력 ( ex_ main + 15 )
p (char*)vstr : 실제 컴파일 시에 (void *)형으로 되어있었다고
하더라도 (char *)로 캐스팅 하여 보여줌 (타입이 틀릴 경우 타입을 변환하여 출력)
p lstr + 4 : 예를 들어 lstr = "I like you." 라는 문자열은 "ke you."가 출력된다.
(특정한 위치 지정)
스택 프레임
frame n 지정된 프레임으로 이동
up 상위 프레임으로
down 하위 프레임으로
info frame : 현재 스택 프레임 정보를 출력
info args : 현재 스택 프레임의 함수가 호출될 때 인자를 출력
현재 위치한 행에서 접근 가능한 지역변수들 목록 확인
(gdb) info locals
현재 위치한 행에서 접근 가능한 전역변수들 목록 확인
(gdb) info variables
댓글 없음:
댓글 쓰기