GDB 사용법 x 명령어
Posted 2012. 5. 22. 16:01gdb 에서 소스코드를 볼수 있게 하려면 gcc 컴파일시 -g 옵션을 주면 된다.
gcc -g test.c
gdb -q a.out
list
차례로 해보면 소스코드를 보면서 디버깅을 할 수 있다.
gdb 는 x 명령어를 사용해 메모리를 조사할 수 있다.
옵션으로는
o : 8진법으로 보여줌
x : 16진법으로 보여줌
u : 10진법으로 보여줌
t : 2진법으로 보여줌
b : 1 byte 단위로 보여줌(byte)
h : 2 byte 단위로 보여줌(half word)
w: 4 byte 단위로 보여줌(word)
g : 8 byte 단위로 보여줌(giant)
i : 역어셈블된 명령어의 명령 메모리를 볼수 있음
c : ASCII 표의 바이트를 자동으로 볼 수 있다.
s : 문자 데이터의 전체 문자열을 보여준다.
쓰는 예시는
x/o $esp
x/4wx 0xbffff2a0
x/hu $ebp
x/gt $eip
x/i $eip
x/3i $eip
x/3cb 0x8048484
x/s 0x8048484
이런식으로 쓰면 된다 그리고 옵션 앞에 또 숫자를 붙일수 있다.
x/4wx 0xbffff2a0 를 보자
맨 먼저 x 는 examine 의 약자로 메모리를 조사할때 쓴다.
그리고 / 뒤에 붙는 옵션을 보면
맨 뒤부터 보면 맨 뒤의 x는 16진수 이고 그다음 w 는 4바이트로 이위치에는 몇바이트 단위로 쓸것인지 써준다.
그리고 숫자는 몇개를 보여줄지 써주면 된다.
0xbffff2a0 부터 4바이트만큼씩 보여준다.
그리고 x/s 랑 x/c 는 0x80484d0 를 보면 6c6c6548 이렇게 있는걸 봐서 ascii 코드라는걸 짐작할 수 있다.
이건 몇번 해보다 보면 보일 것이다.
쨋든 그래서 x/s 를 해보면 문자열이 나온다.
그리고 6바이트만큼 c 옵션으로 출력한 결과도 볼만 하다.
'기타 > GDB' 카테고리의 다른 글
intel 문법 gdb, objdump (0) | 2012.05.22 |
---|
- Filed under : 기타/GDB