본문 바로가기

Linux/GDB

GDB에 대한 명령어 정리

소스보기 

- list : main 함수 기점으로 소스출력

- list 10 : 10행을 기준으로 출력

- list func : func함수의 소스를 출력

- list - : 출력된 행의 이전행을 출력

- list file.c::func : file의 func함수 부분을 출력

- file.c:10 : file의 10행을 기준으로 출력




Break point


- b func : func 하무의 시작 부분에 bp설정ㅇ

- b 10 : 10행에 bp설정

- b file.c::func : file.c의 func 함수에 bp 설정 

- b file.c:10 : file.c의 10행에 브레이크 포인트 설정 

- b +2 : 현재 행에서 2개행 이후 지점에 bp 설정

- b -2 : 현재 행에서 2개행 이전 지점에 bp 설정

- b *0x8049000 : 특정 주소에 break point 

- b 10 if var == 0 : 10행에 bp를 설정하는데 var 값이 0일 때 동작 




Call Stack 관련

- backtrace or bt 현재 콜스택 보기



진행 

r 프로그램 수행

k 프로그램 수행 종료 

s 함수 안으로 들어감 

n 함수 수행 다음으로 넘김 

c 다음 bp가 나올때 까지 진행 

u - 현재 루프를 빠져나감 

finish 현재 함수를 수행하고 빠져나감 

return 함수를 더 이상 수행하지 않고 반환 

return 123 리턴값을 123으로 지정하고 반환 

si assembly 명령어 단위 step

ni assembly 명령어 단위 next



변수출력 관련 

info locals : 현재 지역변수 확인

info variables : 모든 전역변수 확인

info args : 현재 함수의 파라미터의 내용확인


-p [변수명] : 해당변수 value 출력 

-p $[register] :

-p 'filename'::'variable 변수명 중복시 특정 파일의 전역변수 출력 

-p function::variable 변수명 중복시 특정 함수의 static 변수 출력

-p /출력형식 변수명 : 출력형식에 맞춰서 변수값 출력


출력형식 

t 2진수 

o 8진수 

d 부호있는 10진수 

u 부호없는 10진수 

x 16진수 

c 1

f

a

p

p

p