GDB TUI:在当前指令上方滚动装配视图?

时间:2014-10-26 12:08:57

标签: assembly gdb

我最近刚刚开始使用GDB,但我对此印象非常深刻。难怪它是许多用户的事实上的调试器。但是,我发现的一个小烦恼是,我发现自己无法在TUI装配视图中滚动当前指令之上。只要显示缓冲区在当前指令下面,我就可以向上和向下滚动。

除了x/20i [address](哪种类似于可滚动窗口的目的)或通过跳转改变内存并设置后续断点之外,是否有任何方法可以告诉TUI程序集视图另一个位置可能高于(低于当前指令的内存)?

编辑:这似乎只在附加到已经运行的进程时发生,而不是在使用gdb启动进程时发生。有时我可以向上滚动直到当前指令,有时我无法向上滚动。

2 个答案:

答案 0 :(得分:5)

像你解释的那样在gdb tui中滚动程序集似乎存在某种问题,但存在一个简单的解决方法。

因此,首先按ctrl + x ctrl + a启用tui和disassembly视图。然后通过输入布局asm或类似的东西来显示反汇编视图。

现在窗口应该让你用键或鼠标滚动,但如果它停止(对于我有时会在某些功能开始时发生)输入通常的反汇编命令,反汇编视图将更新到该位置。

示例:

  主持人   disass 0x1234

答案 1 :(得分:1)

我发现了一个小东西。如果您处于layout asm模式,并且无法滚动到当前指令,则可以执行命令layout split,然后执行layout asm,第一行将是当前行。