gdb中x的用法

2021-09-25 23:13:19 字數 1433 閱讀 5736

用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(unsigneddecimal),

t(binary), f(float), a(address), i(instruction), c(char) ands(string).

size letters are b(byte), h(halfword), w(word), g(giant, 8bytes)

舉例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("%d/n",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

printf中的x 及用法

printf 和 scanf 簡介 printf 將變數的內容輸出到顯示器上 四種用法 1.printf 字串 n 2.printf 輸出控制符 輸出引數 3.printf 輸出控制符1 輸出控制符2 輸出引數1,輸出引數2,輸出控制符和輸出引數的個數必須一一對應。4.printf 輸出控制符 輸出...

GDB的基本用法

本文參考 debug hacks 一書所作 每天進步一點點。一.準備 通過 gcc 的 g 選項生成除錯資訊。gcc wall o2 g 原始檔 g選項可以使用僅可gdb使用的一些附加除錯資訊 這些附加資訊可以使gdb工作的更好,但是也可能令其他偵錯程式崩潰或者不能讀該檔案。二.gdb基本用法 啟動...

GDB 基本用法

在原來的的選項上再加上 g 選項,如 gcc g wall o2 o test test.c 或者 gcc g o test test.c。有一點需要注意的是除錯時最好去掉優化選項,比如內聯 inline 函式 優化 去掉函式呼叫,而將函式 在呼叫的位置展開 該函式名上就無法設定斷點。這是因為內聯函...