2011-04-01 85 views
0
(gdb) p it 
$2 = (item *) 0x6 
(gdb) p *it 
$3 = {next = 0x0, prev = 0x0, h_next = 0x0, time = 0, exptime = 0, nbytes = 7, refcount = 1, nsuffix = 6 '\006', it_flags = 2 '\002', slabs_clsid = 1 '\001', nkey = 6 '\006', 
    end = 0x7f0890b6e040} 
(gdb) p *0x6 
Cannot access memory at address 0x6 

是不是p *itp *0x6这里是一样的东西?为什么我无法直接访问内存?

回答

0

gdb'p'命令只能用于打印变量值。 如果要检查内存看看there

+0

我试过'x 0x6',同样... – gdb 2011-04-01 08:59:28

1

除非你是在具有地址0映射到实际内存的嵌入式目标,it == 0x6的价值(通常会导致空指针的)。

gdb打印*it这一事实可能意味着gdb中存在一个错误,但很难说。不幸的是,你没有说出你使用的是哪个版本的GDB和哪个操作系统。

相关问题