我用以下变量编译了一个汇编程序:
.data
x: .long 1337
str: .string "Hallo Welt\n"
在 gdb 中,我想使用带有 str 地址的检查命令。
(gdb) x str
0x6c6c6148: Cannot access memory at address 0x6c6c6148
我不明白为什么它不起作用。
0x6c6c6148 是“Hall”,因此 gdb 试图将字符串内容解释为地址。从手册:
addr,起始显示地址
addr是您希望 GDB 开始显示内存的地址。表达式不需要有指针值(尽管它可能);它总是被解释为内存字节的整数地址。
试试看x/s &str
,可能效果更好。