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