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