GDB:使用操作码检查指令

时间:2016-12-18 11:55:16

标签: gdb

是否可以将内存检查为指令(x/i),这样我可以看到asm和十六进制的原始指令(如disassemble /r)? 有时我想拆解GDB拒绝反汇编的部分内存:“没有函数包含指定的地址”
唯一的选择是x/i,但我想确切地看到哪些十六进制值被转换为什么指令。

1 个答案:

答案 0 :(得分: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.