取而代之的gdbtui
或ctrl+x
在gdb
其中显示了我想看到这在我的Vim编辑器将标签之间跳跃在屏幕上方的源代码,以及相应的缓冲区。
我怎样才能做到这一点?
取而代之的gdbtui
或ctrl+x
在gdb
其中显示了我想看到这在我的Vim编辑器将标签之间跳跃在屏幕上方的源代码,以及相应的缓冲区。
我怎样才能做到这一点?
Answers:
在我尝试过的所有插件中,我发现ConqueGDB是最好的方法。ConqueGDB使用Conque Shell将交互式shell嵌入到vim中,供GDB使用。
ConqueGDB的工作流程包括不在GDB终端上输入GDB命令,而是使用vim源代码上的快捷方式。但是,如果需要,可以继续使用GDB提示符以获取更多高级命令,或者滚动查看整个调试会话。
一些ConqueGDB默认映射,例如:
请注意,vim光标行是如何用于发出GDB“打印行”的,当前代码执行在另一行(14)中,并且在第10行有一个断点。
例如,要使用Vundle进行安装:
Plugin 'vim-scripts/Conque-GDB'
我使用以下插件选项:
let g:ConqueTerm_Color = 2 " 1: strip color after 200 lines, 2: always with color
let g:ConqueTerm_CloseOnEnd = 1 " close conque when program ends running
let g:ConqueTerm_StartMessages = 0 " display warning messages if conqueTerm is configured incorrectly
leader
意思
<leader>r
在我的计算机上是<kbd> \ </ kbd> + <kbd> r </ kbd>。Vim手册上有相应的条目::help leader
<Leader>b
。它在光标位置设置一个断点。但是,它不是切换按钮,因此您无法使用它再次将其删除。相反,您将必须在GDB提示符下写“ clear”。
您有几个集成gdb的插件。
还有一个集成了lldb的插件(来自LLVM项目)
由于新:terminal
功能的出现,Bram似乎目前(2017年9月)正在vim内进行gdb的集成。要使用它,我们需要加载(带有)termdebug
数据包:packadd termdebug
,然后我们将能够在vim窗口中启动gdb控制台:TermDebug (+options)
。IMO,我们可以认为这是Vim下GDB集成的未来。
GDB edit
命令
使用以下命令在当前行上打开编辑器:
$EDITOR +<current-line> <current-file>
默认editor
值为ex
,但vim
也了解+<current-line>
格式。
退出编辑器后,您将回到gdb
。
这使您可以自由浏览源代码,并且如果您具有ctags
集成功能,则特别强大。
这是穷人内置的gdb与vim集成的内置方式:主要缺少的是从Vim设置断点。
edit
和中心
edit
默认情况下,它不会将Vim放在源的中心,所以我创建了一个Python脚本来做到这一点:https : //stackoverflow.com/questions/43557405/how-to-open-the-current-file-at-the-来自gdb / 43557406#43557406的文本编辑器中的当前行
剪贴板助手的断点命令
此vim命令复制以下类型的断点说明符:
b <file-path>:<line-number>
到剪贴板:
command! Xg :let @+ = 'b ' . expand('%:p') . ':' . line('.')
然后,您可以将其粘贴到中gdb
。
这是穷人的向gdb集成以简化设置断点的方法。
另请参阅:https : //stackoverflow.com/questions/3536600/do-you-debug-c-code-in-vim-how
虽然从技术上讲不是vim。cgdb是gdb的curses版本,带有类似vim的键绑定。多年来一直是我的goto调试器: