8

我想查看程序集输出,但发现在 TUI 中,它的输出function signature + offset:很酷,除了我在 C++ 中编程并且函数签名已完全解析,因此我获得了使函数 sig 的命名空间和模板参数2 行或更多行。这当然会在 TUI 中被截断,因此它甚至不会显示汇编指令。

有没有办法缩短、更改前缀(可能是文件/行格式)或根本不将此前缀输出到汇编指令?

4

2 回答 2

4

虽然目前无法截断此前缀,但一种解决方法是使用focus asm命令将焦点设置到程序集窗口(如果 asm 窗口不是焦点),然后使用right arrow key,您可以滚动右侧的窗口最终将显示程序集输出。

笔记:

    CMD这是一种解决方法,但仍然存在问题,因为它会在您步进或滚动窗口时快速回到第一列。此外,似乎当您执行next命令时,当前命令的整个前缀及其汇编代码会显示在 ASM 窗口中(即不被截断),环绕屏幕,干扰显示。虽然很烦人,但这可以通过Ctrl-L刷新屏幕来解决。
    此外ASM,上下滚动窗口实际上会导致调试器崩溃。这可能是由缓冲区溢出引起的,因此不建议这样做,并且只在需要时才显示程序集窗口并在不需要时隐藏它可能会更好。

hasturkun建议的另一个解决方法是set print max-symbolic-offset N(您必须向下滚动才能找到它的描述),它告诉“gdb 如果最近的较早符号和地址之间的偏移量小于” N ,则仅显示地址的符号形式。将 N 设置为 1 会删除大部分前缀,但会让您猜测哪些指令与哪个源代码行匹配。

于 2013-06-05T13:53:16.903 回答
0

我不相信有办法。

我认为这对于 bugzilla 来说是一个合理的功能请求,但要注意 TUI 并没有得到太多的喜爱。

于 2013-06-05T04:17:57.033 回答