【问题标题】:gdb cannot access memory from string addressgdb 无法从字符串地址访问内存
【发布时间】: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

我不明白为什么它不起作用。

【问题讨论】:

    标签: assembly gdb x86


    【解决方案1】:

    0x6c6c6148 是“Hall”,因此 gdb 试图将字符串内容解释为地址。来自the manual

    addr,起始显示地址
    addr就是你要GDB的地址 开始显示内存。表达式不需要有指针 价值(尽管可能); 它总是被解释为一个整数地址 一个字节的内存。

    试试x/s &str,它可能会更好。

    【讨论】:

    • 非常感谢!我认为 str 本身就是一个地址,就像 C 中的 char* 字符串一样。
    猜你喜欢
    • 2018-09-08
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 2017-11-06
    • 1970-01-01
    相关资源
    最近更新 更多