【问题标题】:GDB: examine as instruction with opcodesGDB:使用操作码检查指令
【发布时间】:2016-12-18 11:55:15
【问题描述】:

是否可以将内存作为指令 (x/i) 来检查,就像我可以看到十六进制的 asm 和原始指令一样(例如 disassemble /r)?
有时我想反汇编 GDB 拒绝反汇编的内存的某些部分:“没有函数包含指定的地址”
唯一的选择是x/i,但我想看看究竟什么十六进制值被翻译成什么指令。

【问题讨论】:

    标签: gdb


    【解决方案1】:

    我想反汇编 GDB 拒绝反汇编的内存部分:“没有函数包含指定的地址”。

    即使 GDB 无法确定函数边界,disas/r 0x1234,0x1235 也会起作用。示例:

    (gdb) disas/r 0x0000000000400803
    No function contains specified address.
    
    (gdb) disas/r 0x0000000000400803,0x000000000040080f
    Dump of assembler code from 0x400803 to 0x40080f:
       0x0000000000400803:  e8 b8 fd ff ff  callq  0x4005c0 <system@plt>
       0x0000000000400808:  48 81 45 f0 00 10 00 00 addq   $0x1000,-0x10(%rbp)
    End of assembler dump.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 2022-01-21
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多