我希望在我的Vim编辑器中看到此代码,而不是在屏幕顶部显示源代码的gdbtui下的ctrl+xgdb,它们会在选项卡之间跳转,并相应地缓冲。

评论

仅供参考,我发现lldb插件@ github.com/gilligan/vim-lldb,屏幕截图看起来很有希望。

顺便说一句,有人知道关于windbg吗? Vim集成本来是个好主意。虽然,实际上我认为几乎所有的软件都可以。

#1 楼

在我尝试过的所有插件中,我发现ConqueGDB是最好的方法。 ConqueGDB使用Conque Shell将交互式shell嵌入到GDB使用的vim中。

ConqueGDB的工作流程包括不在GDB终端上输入GDB命令,而是使用vim源代码上的快捷方式。但是,如果需要,可以继续使用GDB提示符以获取更多高级命令,或者滚动以查看整个调试会话。

一些ConqueGDB默认映射,例如:



leaderr:运行

leaderc:继续

leader:step

leaderp:光标下的打印变量

请注意如何使用vim光标行发出GDB“打印行”,当前代码执行在另一行(14)中,并且在第10行有一个断点。 >

要与Vundle一起安装,例如:

Plugin 'vim-scripts/Conque-GDB'


我使用以下插件选项: br />

评论


领导者是什么意思?

– In78
16 Mar 30 '16 at 22:13

@ In78表示大多数计算机上的 \ 键。例如,在我的计算机上, r表示 \ + r 。 Vim手册中包含以下条目::help Leader

–帕尔萨
16年6月10日,0:55

不要忘记此ConqueGDB默认映射: b。它在光标位置设置一个断点。但是,它不是切换按钮,因此您无法使用它再次将其删除。相反,您将必须在GDB提示符下写“ clear”。

– serup
16-9-29在8:58



我尝试使用此ConqueGdb,为了使其正常工作,我首先指定了可执行文件-有时设置刹车点会失败-我必须将gdb窗口聚焦并按I进行插入,然后才会出现断点-这是ConqueGdb正常吗?

– serup
16年11月18日在11:28

#2 楼

您有几个集成了gdb的插件。


我们以前有pyclewn。在2.3版之后,该项目已终止。上一次提交是在2016年进行的。对于奇怪的提交,github上仍然有一个镜像,其作者将其存档。注意:pyclewn曾经是其他Xavier Degaye的* clewn项目发展的最后一步。作为“ pyclewn克服某些缺点的便利层”


,还有一个插件集成了lldb(来自LLVM项目)


vim-lldb

由于新的:terminal功能,Bram似乎目前(2017年9月)正在从vim内部集成gdb。要使用它,我们需要加载termdebug数据包(带有:packadd termdebug),然后我们就可以在带有:TermDebug (+options)的vim窗口中启动gdb控制台。 IMO,我们可以认为这是Vim下GDB集成的未来。

评论


很好-您能否简要介绍每个插件?

–muru
15年2月20日在10:49

??链接指向插件的官方页面。是的,如果插件消失或将其移到其他地方,它们可以更改。在那种情况下,我将像在SO上一样在第一种情况下更新消息。在第二种情况下,这将意味着不推荐任何详细描述插件功能的消息。更糟糕的情况是:详细说明插件的实际功能将在他们各自的作者进行工作,添加功能等时被淘汰。随便下周我将对其进行简要说明...

–卢克·赫米特(Luc Hermitte)
2015年2月20日在17:24



@LucHermitte帖子出现在评论队列中;我自己没有添加此消息的确切文本,系统为我做到了。无论如何,在SO和大多数(如果不是全部)SE站点上,仅链接答案被视为“错误”。不仅因为他们可能会过时,还因为他们并没有真正解释事情。几乎可以通过链接到正确的文档页面来“回答”所有问题,地狱,您甚至可以链接到源代码,但这真的可以解释一些问题吗?这真的有用吗?这真的有助于某人对Vim的理解吗?

–马丁·图尔诺伊(Martin Tournoij)
2015年2月20日在19:25



“我自己没有添加此消息的确切文本,系统为我做到了”。好。这解释了消息,我发现这很奇怪。关于链接。我了解有关RTFM / SFTW的SO / SE政策。与其他论坛不同,重复/重复问题在被检测到时将被关闭,因此SO / SE倾向于采用Wiki方法。

–卢克·赫米特(Luc Hermitte)
2015年2月20日在23:54

关于在哪里可以找到插件。我可以复制他们的文档。但这无济于事。此外,随着插件的发展,几乎不可能保持最新的答案。可以添加功能的最新摘要,我将继续介绍。无论如何,他们的官方页面是入口。关于插件,这是第一个重要信息。确实,一个不错的演示文稿可能会吸引我们……直到我们发现该插件无法在我们的特定情况下工作-这在FSOSS中经常发生。在这里,可用的解决方案列表也很有趣。

–卢克·赫米特(Luc Hermitte)
2015年2月21日0:00,

#3 楼

GDB edit命令

使用以下命令在当前行上打开编辑器: editor格式。

退出编辑器后,您会回到ex

这是穷人内置的gdb到vim集成的一种方式:主要缺少的是从Vim设置断点。

vim和center

+<current-line>默认不会使Vim围绕源居中,因此我创建了一个Python脚本来做到这一点:https://stackoverflow.com/questions/43557405/how-to-open-the-current-file-在当前文本编辑器中从gdb / 43557406#43557406
将断点命令复制到剪贴板帮助器

此vim命令将断点复制类型说明符:

$EDITOR +<current-line> <current-file>


到剪贴板:

b <file-path>:<line-number>


然后您可以将其粘贴到gdb

这是穷人的vim到gdb集成,以简化设置断点的操作。

另请参见:https://stackoverflow.com/questions/3536600/do-you-在VIM中调试C代码的方式

#4 楼

虽然从技术上讲不是vim。 cgdb是gdb的curses版本,带有类似于vim的键绑定。多年来一直是我的goto调试器:

https://cgdb.github.io/