gdb拆分视图与代码

Kev*_*vin 101 gdb

我只是在gdb中调试一个程序,不知怎的,我发现了一个我以前从未见过或甚至没有听说过的新功能,除了给出命令之外,我还可以看到并浏览代码:

对此图片感到抱歉,但ttys没有截图.

这是什么?我做了什么,或者更具体地说,我怎样才能再次获得这种分屏模式?这个模式有名称,还是我可以阅读的有关如何使用它的地方?

0xC*_*22L 84

它被称为TUI(不开玩笑).启动例如使用gdbtuigdb -tui...

  • 您也可以在正常启动`gdb`之后使用`layout next` (5认同)

小智 78

你可以通过push ctrl+ xctrl+ 动态触发它a.


abh*_*bhi 36

它有两种变体.

  1. 只看代码按

CTRL X一起按,然后 按1

  1. 要查看源和汇编

同时按'CTRL''X'然后按'2'

http://www.cs.fsu.edu/~baker/ada/gnat/html/gdb_23.html

带代码和汇编的视图的屏幕截图. 在此输入图像描述

还可以看看这个惊人的Github项目.


Neo*_*ard 15

您也可以使用命令" - "(破折号)从gdb shell启动它.不知道如何动态关闭它.

  • 您可以通过执行Cx Ca,Cx a或Cx A中的任何一个退出.请参阅http://stackoverflow.com/questions/14147117/how-to-exit-the-wh-mode-in-gdb (2认同)

小智 11

layout在gdb中键入命令,将显示拆分窗口.


Cir*_*四事件 10

GDB仪表板

https://github.com/cyrus-and/gdb-dashboard

GDB仪表盘采用了GDB的Python API,并打印您需要的时候GDB后停止例如信息next,如本机display命令.

Vs TUI:

  • 更强大,因为它没有将shell置于更神奇的curses状态,例如:

  • 可从Python高度配置:您可以根据要调试的内容选择要输出的内容以及每个部分的大小.

    已经实现了最有用的视图:源,汇编,寄存器,堆栈,内存,线程,表达式......但是应该很容易使用GDB Python API上公开的任何信息来扩展它.

    TUI只允许显示源,汇编和寄存器中的两个,就是这样.除非你想修改它的C源代码当然;-)

在此输入图像描述

我相信GDB应该提供开箱即用的设置并默认打开,它会以这种方式吸引更多用户.

另请参阅:如何在交互式调试期间突出显示和着色gdb输出?

  • 没有足够的言语来形容那是多么的棒。谢谢 :) (2认同)
  • @CiroSantilli郝海东冠状病六四事件法轮功 嗯,找到了[这个](https://gdb-prs.sourceware.narkive.com/FS3Z3lBr/bug-tui-17850-new-vertically-splitting-windows-in-gdb-推)。6 年前就已经有人提出要求了,但似乎还没有人在处理它:( (2认同)

小智 5

当GDB处于标准模式时,使用win将自动切换到TUI模式.
TUI模式的其他命令:

  • info win
    列出并给出所有显示窗口的大小.
  • focus next | prev | src | asm | regs | split
    将焦点设置为指定的窗口.此命令允许更改活动窗口,以便滚动键可以影响到另一个窗口.

在此处阅读更多帮助.