【发布时间】:2012-10-03 10:59:36
【问题描述】:
我用以下变量编译了一个汇编程序:
.data
x: .long 1337
str: .string "Hallo Welt\n"
在 gdb 中,我想使用带有 str 地址的检查命令。
(gdb) x str
0x6c6c6148: Cannot access memory at address 0x6c6c6148
我不明白为什么它不起作用。
【问题讨论】:
我用以下变量编译了一个汇编程序:
.data
x: .long 1337
str: .string "Hallo Welt\n"
在 gdb 中,我想使用带有 str 地址的检查命令。
(gdb) x str
0x6c6c6148: Cannot access memory at address 0x6c6c6148
我不明白为什么它不起作用。
【问题讨论】:
0x6c6c6148 是“Hall”,因此 gdb 试图将字符串内容解释为地址。来自the manual:
addr,起始显示地址
addr就是你要GDB的地址 开始显示内存。表达式不需要有指针 价值(尽管可能); 它总是被解释为一个整数地址 一个字节的内存。
试试x/s &str,它可能会更好。
【讨论】: