linux gdb 檢視記憶體

2021-06-19 21:24:53 字數 1445 閱讀 7822

用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發行版本 檔案相對較小,不包含除錯資訊,並進行了各種優化,以期達到 最小和速度最優。為使用者的使用提供...