用gdb檢視記憶體
2007-12-08 12:43
用gdb檢視記憶體
格式: x /nfu
說明x 是 examine 的縮寫
n表示要顯示的記憶體單元的個數
f表示顯示方式, 可取如下值
x 按十六進製制格式顯示變數。
d 按十進位制格式顯示變數。
u 按十進位制格式顯示無符號整型。
o 按八進位制格式顯示變數。
t 按二進位制格式顯示變數。
a 按十六進製制格式顯示變數。
i 指令位址格式
c 按字元格式顯示變數。
f 按浮點數格式顯示變數。
u表示乙個位址單元的長度
b表示單位元組,
h表示雙位元組,
w表示四位元組,
g表示八字節
format letters are o(octal), x(hex), d(decimal), u(unsigned decimal),
t(binary), f(float), a(address), i(instruction), c(char) and s(string).
size letters are b(byte), h(halfword), w(word), g(giant, 8 bytes)
舉例x/3uh buf
表示從記憶體位址buf讀取內容,
h表示以雙位元組為乙個單位,
3表示三個單位,
u表示按十六進製制顯示
詳細例子:
(gdb) list
1 #include
2 int main()
3 {45
//char a[1];
6 //a[0]='a';
7 unsigned long long md5=14126471717450151013;89
//printf("%dn",a[0]);
10 return 0;
(gdb) break 10
breakpoint 1 at 0x8048372: file test.c, line 10.
(gdb) run
starting program: /data/compiler/g_platform/bradenwu/md5/test.out
breakpoint 1, main () at test.c:10
10 return 0;
(gdb) x/8xb md5
0x8837f465:
cannot access memory at address 0x8837f465
(gdb) x/8xb &md5
0xbfffefa0:
0x65
0xf4
0x37
0x88
0x2e
0x4f
0x0b
0xc4
linux gdb除錯彙編
1 除錯hello,要求編譯時指定了 gstabs選項 2 執行hello deepfuture lx deepfuture lx desktop private mytest hello hello,world abcd 3 用gdb開啟hello deepfuture lx deepfuture...
Linux gdb除錯總結
進入除錯 1 輸入gdb 檔名 2 輸入gdb file 檔名 l 顯示源 預設顯示main函式所在檔案的源 list 檔名 num 顯示指定檔案指定行附近的源 b breakpoint的簡寫,設定斷點。b 行號 給指定行新增斷點 b 函式名 給指定函式新增斷點 b 檔名 行號 給指定檔案指定行新增...
Linux gdb除錯總結
在windows作業系統下,我們的執行程式有兩個版本。debug開發除錯版本 得到的可執行檔案.exe檔案相對較大,其中包含除錯資訊。且不做任何優化,未開發人員提供強大的應用除錯能力 release發行版本 檔案相對較小,不包含除錯資訊,並進行了各種優化,以期達到 最小和速度最優。為使用者的使用提供...