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

GDB中如何按r5寄存器值打印r1指向的指定字节内存?

GDB按寄存器值指定内存打印长度的正确操作

直接用x/$r5 $r1无效,是因为GDB的x命令格式段不支持直接引用寄存器,可通过以下两种实用方法解决:

  • 利用eval动态生成打印命令
    这是最稳妥的方式,通过eval将r5的数值代入到x命令的格式参数中:

    eval "x/%dx $r1", $r5
    

    如果需要切换打印格式,把命令里的x换成对应格式符即可——比如打印字节用b、十进制输出用d,示例:eval "x/%db $r1", $r5。

  • 使用GDB变量替换语法直接构造命令
    也可以直接在x命令里通过${}展开寄存器的求值结果:

    x/${$r5}x $r1
    

    该写法会先计算r5存储的数值,再将其作为打印长度传入x命令。

注意:确保r5中存储的是合法的正整数,否则会触发GDB参数错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:17:09