【问题标题】:How can I make GDB print 64 bit variables?如何让 GDB 打印 64 位变量?
【发布时间】:2018-04-21 12:58:11
【问题描述】:

我正在使用 GDB 来调试用

组装的代码

nasm -felf64 -Fdwarf

当我想检查标签符号处的值时,说

var_h: dq -1

使用

print var_h

GDB 假定该值为 32 位,只给我最低的 4 个字节

x \1gx $var_h

给出“无法将值转换为整数”的错误

非常感谢任何想法!

【问题讨论】:

    标签: gdb 64-bit


    【解决方案1】:

    这应该可行:

    (gdb) x/gx &var_h
    

    你的其他命令,以及“沿着......”没有任何意义。

    细节很重要,并且您应该始终显示您使用和输出的实际命令,而不是模糊的近似值。

    【讨论】:

    • gdb 手册的第 200 页将 & 前缀列为运算符 - 但这是唯一的参考。否则永远不会找到它。非常感谢和 cmets 注意到。
    • @Anding:GDB 表达式大多像 C 语法(而不是汇编)一样工作,因此隐式取消引用裸符号名称以获取该符号地址处的值。
    猜你喜欢
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    相关资源
    最近更新 更多