gdb查看內存地址和棧中的值

gdb查看指定地址的內存地址的值:examine 簡寫 x-----使用gdb> help x 來查看使用方式
     x/ (n,f,u爲可選參數)
n: 需要顯示的內存單元個數,也就是從當前地址向後顯示幾個內存單元的內容,一個內存單元的大小由後面的u定義
f:顯示格式
               x(hex) 按十六進制格式顯示變量。
               d(decimal) 按十進制格式顯示變量。
               u(unsigned decimal) 按十進制格式顯示無符號整型。
               o(octal) 按八進制格式顯示變量。
               t(binary) 按二進制格式顯示變量。
               a(address) 按十六進制格式顯示變量。
               c(char) 按字符格式顯示變量。
               f(float) 按浮點數格式顯示變量
u:每個單元的大小,按字節數來計算。默認是4 bytes。GDB會從指定內存地址開始讀取指定字節,並把其當作一個值取出來,並使用格式f來顯示
              b:1 byte     h:2 bytes     w:4 bytes g:8 bytes
     比如x/3uh 0x54320表示從內存地址0x54320讀取內容,h表示以雙字節爲單位,3表示輸出3個單位,u表示按照十六進制顯示。
    from http://www.cnblogs.com/super119/archive/2011/03/26/1996125.html



gdb打印表達式的值:print/f 表達式

f是輸出的格式,x/d/u/o/t/a/c/f

表達式可以是當前程序的const常量,變量,函數等內容,但是GDB不能使用程序中所定義的宏

查看當前程序棧的內容: x/10x $sp-->打印stack的前10個元素
查看當前程序棧的信息: info frame----list general info about the frame
查看當前程序棧的參數: info args---lists arguments to the function
查看當前程序棧的局部變量: info locals---list variables stored in the frame
查看當前寄存器的值:info registers(不包括浮點寄存器) info all-registers(包括浮點寄存器)
查看當前棧幀中的異常處理器:info catch(exception handlers)
from http://blog.chinaunix.net/uid-29062294-id-4255572.html 本文轉自:http://blog.sina.com.cn/s/blog_605f5b4f0101ey1q.html
發佈了113 篇原創文章 · 獲贊 93 · 訪問量 51萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章