Posted on 2013/04/30 18:35
Filed Under 리눅스기술문서/팁앤테크 조회수: view 5964


============== 실행 방법 =====================
gdb [프로그램명]
gdb [프로그램명][core 파일명]
gdb [프로그램명][실행중인 프로세스 PID]


============== 종료 방법 =====================
q
Ctrl + d


============== 소스 보기 =====================
l : main 함수를 기점으로 소스 출력
l 10 : 10행 기준 출력
l func : func 함수 소스 출력
l- : 출력된 행의 이전 행 출력
l file.c:func : file.c 파일의 func 함수 부분 출력
l file.c:10 : file.c 파일의 10행 기준 출력
set listsize 20 : 출력되는 행의 개수 수정. (기본 10개)



============== 브레이크 포인트 =====================
bt : 스택 프레임 확인
b : 브레이크 포인트 설정. b main - 메인 함수에 브레이크 포인트.
b 10 : 10행에 브레이크 포인트 설정
b +2 : 현재 행에서 2개 행 이후 지점에 브레이크 포인트 설정. (-2)
b *0x8049000 : 0x8049000 주소에 브레이크 포인트 설정 (어셈블리 디버깅 시)
b 10 if var == 0 : 10행에 브레이크 포인트 설정하는데 var 변수값이 0일 때 작동.
condition [N] var==0 : 브레이크 포인트 고유번호 N에 브레이크가 걸릴 상태 지정.
cl : 브레이크 포인트 지움.
d : 모든 브레이크 포인트 지움.
info breakpoints 또는 info b : 브레이크 포인트 설정 상태 보기.


============== 프로그램 수행 =====================
r : 프로그램 수행
r arg1 arg2 : arg1, arg2 를 인자로 프로그램 수행.
k : 프로그램 수행 종료.
s : step. 현재 행을 수행하고 멈춤. 함수 호출시 함수 내부로 들어감.
n : next. 함수 호출 시 함수 내부로 들어가지 않고 바로 다음 코드로 넘어감.
c : continue. 브레이크 포인트 만날 때까지 멈추지 않고 계속 수행.
u : 반복문 브레이크.
finish : 함수 끝난 시점으로 이동.
return : 함수 빠져나옴.
return 1234 : 함수 리턴값 1234로 빠져나옴.
si : 현재 인스트럭션 수행. 함수 내부로 들어감. (어셈블리 대상)
ni : 현재 인스트럭션 수행. 함수 내부로 들어가지 않음. (어셈블리 대상)


============== 와치포인트 설정 =====================
어떤 변수 값 바뀔 때마다 브레이크 걸려고 할 때 사용.
watch [변수명] : 변수가 바뀔 때마다 브레이크가 걸린다.


============== 변수와 레지스트리 값 검사 =====================



============== 레지스터 검사 =====================
info register : 레지스터 보기.
Writer profile
author image
-아랑 -
2013/04/30 18:35 2013/04/30 18:35

트랙백 주소 : 이 글에는 트랙백을 보낼 수 없습니다

About

by 서진우
Twitter :@muchunalang

Counter

• Total
: 4360768
• Today
: 436
• Yesterday
: 1813