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)