如何告诉GDB在给定地址反汇编N个指令,同时显示原始字节?

时间:2017-07-06 19:22:57

标签: gdb disassembly

我知道两种GDB反汇编模式:

  1. 第一个命令用于显示指令和原始字节,但它似乎不接受反汇编指令的数量 - 只有内存范围:

    disas/r $pc,+30

  2. 第二个命令可以完全反汇编N个指令,如下所示,但没有原始字节:

    x/10i $pc

  3. 我想要混合使用这两种模式:将原始字节显示为disas/r,并且能够像x/10i中一样指定要反汇编的确切指令数。我可以用GDB吗?

1 个答案:

答案 0 :(得分:1)

没有内置方法可以做到这一点。 (顺便说一句,在我看来,这是一个疏忽,也许是一个错误报告要求x/i能够显示字节是好的。)]

如果你真的需要这个,有一种方法可以自己实现它。基本思想是在Python中编写一个新命令。此命令可以包装disassemble命令(使用带有gdb.execute参数的to_string),然后将其输出限制为N指令。