Debugging 如何通过编程方式与GDB之类的调试器通信?

Debugging 如何通过编程方式与GDB之类的调试器通信?,debugging,gdb,vim,Debugging,Gdb,Vim,我正在尝试编写一些vimscript来与dubuggers进行通信,但我不完全确定如何进行。有没有一种方法可以将输入发送到调试器并通过编程读取其输出 我知道这是可能的,因为Code::Blocks、Eclipse和其他IDE以某种方式做到了这一点。我只是想知道怎么做 我只是想知道怎么做 GDB有“机器接口”就是为了这个。详细信息。Git2.18展示了一种有趣的方式来包装调试器、gdb或其他调试器并与之通信 参见。 (于2018年5月23日被合并) 使在其他类似调试器的程序下轻松运行git 这允许

我正在尝试编写一些vimscript来与dubuggers进行通信,但我不完全确定如何进行。有没有一种方法可以将输入发送到调试器并通过编程读取其输出

我知道这是可能的,因为Code::Blocks、Eclipse和其他IDE以某种方式做到了这一点。我只是想知道怎么做

我只是想知道怎么做


GDB有“机器接口”就是为了这个。详细信息。

Git2.18展示了一种有趣的方式来包装调试器、gdb或其他调试器并与之通信

参见。
(于2018年5月23日被合并)

使在其他类似调试器的程序下轻松运行
git
这允许我们在使用
bin wrappers
中的脚本时,在下面运行
git
其他节目。
testsuite脚本中使用的几个示例:

debug git checkout master
debug --debugger=nemiver git $ARGS
debug -d "valgrind --tool-memcheck --track-origins=yes" git $ARGS
或者,如果某人在其
$PATH
中有
bin wrappers/
,并且正在testsuite之外执行
git

GIT_DEBUGGER="gdb --args" git $ARGS
GIT_DEBUGGER=nemiver git $ARGS
GIT_DEBUGGER="valgrind --tool=memcheck --track-origins=yes" git $ARGS
还有一个方便的快捷方式
GIT_DEBUGGER=1
,意思与

GIT_DEBUGGER="gdb --args"
请参阅中的结果


关于这一点,GIT_调试器,GIT 2.23记录了它

参见(2019年5月28日)作者。
(于2019年6月17日合并)

doc
:在
CodingGuidelines
当通过运行时,我们检查是否有一个方便的环境变量
GIT\u DEBUGGER
bin wrappers/
,但此功能未记录在案

CodingGuidelines
中添加如何使用它的提示(这是其他有用的环境设置,如
DEVELOPER
的文档)

因此,现在包括:

您可以使用速记
GIT_调试器围绕程序启动
gdb

  • 运行
    GIT_DEBUGGER=1./bin wrappers/GIT foo
    只需按原样使用
    gdb
    ,或者
  • 运行
    GIT_调试器=“”./bin wrappers/GIT foo
    to 使用您自己的调试器和参数。
    示例:
    GIT_DEBUGGER=“ddd--gdb”。/bin wrappers/GIT log
    (请参见
    wrap for bin.sh

停止疑惑,开始阅读文档。