【发布时间】:2016-12-18 11:55:15
【问题描述】:
是否可以将内存作为指令 (x/i) 来检查,就像我可以看到十六进制的 asm 和原始指令一样(例如 disassemble /r)?
有时我想反汇编 GDB 拒绝反汇编的内存的某些部分:“没有函数包含指定的地址”。
唯一的选择是x/i,但我想看看究竟什么十六进制值被翻译成什么指令。
【问题讨论】:
标签: gdb
是否可以将内存作为指令 (x/i) 来检查,就像我可以看到十六进制的 asm 和原始指令一样(例如 disassemble /r)?
有时我想反汇编 GDB 拒绝反汇编的内存的某些部分:“没有函数包含指定的地址”。
唯一的选择是x/i,但我想看看究竟什么十六进制值被翻译成什么指令。
【问题讨论】:
标签: gdb
我想反汇编 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.
【讨论】: