ETC/Linux

gdb 기초 사용법 (메모리, 레지스터 내용 읽기)

쪽제비 2015. 9. 16. 18:27

레지스터 내용부터 읽어보자

info reg | info registers

모든 레지스터 정보를 얻을 수 있다.


1개, 또는 여러개의 레지스터 정보를 얻길 원한다면

info reg 레지스터 이름1,이름2,이름3 ...

이런식으로 하면 된다

이제 레지스터의 정보를 확인 할수 있다.


그렇담.. 메모리 내용을 확인해 보자.

스택이라던지 데이터영역에 잇는 내용을 알고 싶을때 어떻게 할까 ?

x/nfu 주소   이 형식을 이용한 명령을 내리면 된다


n: 반복 갯수

f(format) 

i(명령코드) x(16진수) o(8진수) t(2진수)  d(부호 있는 10진수)   u(부호없는 10진수) s(문자열)

u(unit)

b(1바이트) h(2바이트) w(4바이트)

이렇게만 써놓으면 이해가 안가므로 실습을 해봐야겠지

비교해가면서 확인을 해보겠습니다

우선 반복갯수

4번 8번 5번의 반복

차이가 보이죠 ?


이제는 포맷

i(명령코드) 포맷은 u의 크기에 상관 없이 같은 결과가 나오며 생략해도 됩니다


확인 되시죠?

이제 다른 포맷을 확인해 봅시다.

같은 주소의 메모리를 읽어 오는데 포맷에 의해 다르게 내용이 표시되는 것을 볼 수 잇다

모두 같은 값을 읽어 온 것이지만 어떤 포맷을 스냐에 따라 보여지는게 달라 보일 수 있다


이제 마지막으로 unit ...


몇 바이트 단위로 읽어 낼 것인지에 대해 설정하는 것이다

휴... 기초 사용법 끝




'ETC > Linux' 카테고리의 다른 글

make 유틸리티  (0) 2016.09.30
vi 에디터  (0) 2016.09.30
gdb 기초 사용법2(stepi nexti 차이점)  (0) 2015.09.16
gdb 기초 사용법  (0) 2015.09.15
gcc 컴파일  (0) 2015.09.15