You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GDB会话中如何访问特定内存地址?movabs常量地址访问失败

GDB中无法访问movabs指令十六进制常量对应地址的解决方法

你混淆了movabs指令里数值的含义:这些像0x206f746e656d654d的十六进制值不是内存地址,而是要写入栈上buf的立即数数据。movabs的作用是直接把8字节常量复制到栈上的buf位置,而非读取这个数值指向的内存。

正确的访问步骤:

  • 从反汇编代码里找到buf在栈上的偏移位置,比如指令movabs $0x206f746e656d654d, -0x40(%rbp)中,buf的起始地址就是%rbp-0x40。
  • 在GDB中用p $rbp-0x40计算出buf的具体内存地址。
  • 用x/s或x/x访问这个buf地址,比如执行x/s $rbp-0x40,就能看到存入的字符串内容——这些十六进制值是字符串的ASCII逆序(小端存储),比如0x206f746e656d654d反转字节后是4d 65 6d 65 6e 74 6f 20,对应字符串"Memento "。

内容的提问来源于stack exchange,提问作者KmerPadreDiPdor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:11:37