如何获得gdb tui汇编输出显示指令



我想看到汇编输出,但发现在TUI中,它会输出function signature + offset:,这很酷,除了我用c++编程和函数签名完全解决的事实,所以我得到名称空间和模板参数,使函数签名2行或更多行长。当然,这在TUI中被截断了,所以它甚至没有显示汇编指令。

是否有任何方法可以缩短,更改前缀(可能是文件/行格式)或根本不将该前缀输出到汇编指令?

虽然目前没有办法截断这个前缀,但一个解决办法是使用focus asm命令将焦点设置为汇编窗口(如果asm窗口不是焦点之一),然后通过使用right arrow key,您可以向右滚动窗口,最终将显示汇编输出。

注意:

    这是一个解决方案,并且仍然存在问题,因为当您步进或滚动CMD窗口时,它将恢复到第一列。此外,当您执行next命令时,似乎当前命令的整个前缀及其汇编代码在ASM窗口中显示(即它未被截断),环绕屏幕,扰乱显示。虽然很烦人,但这可以使用Ctrl-L来刷新屏幕。
    同样,上下滚动ASM窗口实际上会导致调试器崩溃。这可能是由缓冲区溢出引起的,因此不建议这样做,最好只在需要时显示汇编窗口,在不需要时隐藏它。
hasurkun建议的另一个解决方案选项是set print max-symbolic-offset N(您将不得不向下滚动以找到它的描述),它告诉"gdb只显示地址的符号形式,如果最接近的早期符号和地址之间的偏移量小于" N设置N为1将删除大多数前缀,但让您猜测什么指令匹配哪个源行。

我不相信有办法。

我认为这将是bugzilla的一个合理的特性请求,尽管需要注意的是,TUI并没有得到太多的喜爱。

最新更新