티스토리 뷰


진행

ni:  F8 함수 건너뜀

si:  f7 안으로

 


브레이크 포인트 


b : 브레이크 포인트를 걸어줍니다. 

이 때 b 뒤에 무엇인가를 입력하면 되는데 여러가지 방법이 존재합니다.  또한 전부다 많이 쓰인다는게 함정...

1. 주소로 걸기 

b *0x0503645 : *를 붙인다는 점에 주의합시다. 

2. 특정 함수 기준으로 걸기

b *main+number 
b *login+number

3.  현재 행 기준으로 걸기( -d 로 정보가 들어있는 경우 사용 가능 list 의 소스코드 기준)

b +2 
b -2  

4. 브레이크 포인트에 조건문 넣기

b 10 if var==0 


d : 모든 브레이크 포인트를 삭제합니다. 

i b(info breakpoint) : 브레이크 포인트 정보를 조회합니다. 여기서 얻은 정보를 삭제에 사용!

cl : 특정 브레이크 포인트를 삭제합니다. 

ex) cl 1 : 1번 브레이크 포인트 삭제 

watch [변수명] : 변수에 값이 쓰여질 때 브레이크 포인트


출력 모니터링 명령어


info locals : 현재 eip가 가리키고 있는 위치의 지역변수를 모두 출력한다. 

info variables : 현재 상태에서의 전역변수를 모두 출력한다.  

info reg : 현재의 레지스터 상태를 출력

p [value] : 변수 하나의 값을 보여준다.
ex) p name 

p/t 식으로 출력하는 형식을 지정해줄 수도 있다. 

p/t : 2진수
p/o : 8진수 
p/u : 부호없는 10진수 
p/x : 16진수 
p/c : 문자 
p/f : 부동 소수점 

display : 화면에 특정 변수 값 자동 출력

display [변수명]

display/t 
display/o 

undisplay : 모든 자동 출력을 제거 


이러한 형식으로 p와 동일하니 위를 참고하면 된다. 

x/값의 범위,format 

ex)
 x/100x $eip  : eip주소부터 100바이트만큼 출력한다. 
x/100x 0x6354635 : 0x635~ 부터 100바이트만큼 출력한다. 


print [변수명] : 특정 변수를 출력한다. 
ex) print $레지스터명 
ex) print/t /o /d /u  형식으로 출력 형식을 설정가능하다.  


'TOOLS > GDB사용법' 카테고리의 다른 글

gdb intel 형식으로 변환  (0) 2016.07.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함