TUI模式下的GDB:如何处理stderr与ui的交互

Siy*_*Ren 6 gdb tui command-line-interface

我正在尝试使用 gdb 调试caffe。我更喜欢使用 tui 模式,因为它允许我查看整个源代码而不仅仅是一行。但是有一个问题:每当程序caffe在 上输出一些东西时stderr,输出就会扭曲 tui 界面。有关说明,请参阅以下快照:

普通的

当 stderr 有输出时

这是 gdb tui 的固有限制还是有什么办法可以解决这个问题?

ser*_*gio 5

根据@ks1322的建议,您可以按 Ctrl-L 刷新屏幕。或者在 .gdbinit 中定义一个钩子以在每个next命令后刷新:

define hook-next
    refresh
end
Run Code Online (Sandbox Code Playgroud)


Cir*_*四事件 0

我从未找到解决此类 TUI 烦恼的方法,最终放弃并转向更可靠的方法:

  • 使用GDB Python API获取GDB数据
  • 每次停止后将一些预配置的视图输出到 stdout,而不是将终端置于神奇的 ncurses 模式

GDB Dashboard 就是这样一种解决方案,我在以下位置描述了它:gdb split view with code