97, 1/5 회원가입  로그인  
   skyclad1975
   gdb 에서 display로 변수를 보는 것에 대한 질문

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=85 [복사]


질문 올리고 답변 받은지 얼마 되지도 않았지만 또 난관에 봉착하여 질문드려봅니다.

display를 변수나 레지스터에 걸어 두면 ni 등으로 실행할 때마다 계속해서 그 값이 나타난다고 알고 있는데요, $rbp-0x4 변수의 변화를 알기 위해 display를 걸었더니


(gdb) x/d $rbp-0x4
0x7fffffffe38c:        2
(gdb) display /d $rbp-0x4
7: /d $rbp-0x4 = 140737488348044



이런 식으로 나타납니다.
어떻게 해야 할까요?

그냥 보기 위해 x/d $rbp-0x4 를 했을 경우에는 잘 되는데,
display 했을 때만 이러네요.

또, watch $rbp-0x4 를 이용해서 돌려 봤더니


Old value = (void *) 0x7fffffffe38c
New value = (void *) 0x7fffffffe6f7


이렇게 나옵니다.

제대로 10진수로 변수의 값을 보려면 어떻게 해야 할까요...

해커스쿨 능력자분들, 부탁드립니다!



+ 추가질문)

gdb상에서 스택 내부의 값을 보는 방법에 대해서도 알려주시면 감사하겠습니다 끙..

  Hit : 3779     Date : 2014/12/11 04:54



    
cd80 x/d $rbp-4는 $rbp-4가 가르키는 주소의 데이터를 decimal로 나타내란 명령이고
disp /d $rbp-4는 $rbp-4라는 식을 decimal로 나타내란 명령입니다
disp/wd $rbp-4 로 하시면 원하시는대로 하실수 있습니다
2014/12/12