您的位置:首页 > 其它

gdb中x的用法

2015-08-05 15:49 369 查看
用gdb查看内存

格式: x /nfu <addr>

说明

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<stdio.h>

2 int main()

3 {

4

5 //char a[1];

6 //a[0]='a';

7 unsigned long long md5=14126471717450151013;

8

9 //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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: