2011-04-01 37 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和哪個操作系統。

相關問題