如何以编程方式与GDB之类的调试器进行通信?

时间:2013-10-12 22:26:37

标签: debugging gdb vim

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

我知道这是可能的,因为Code :: Blocks,Eclipse和其他IDE以某种方式执行此操作。我只是想知道如何做到这一点。

2 个答案:

答案 0 :(得分:1)

  

我只是想知道如何做到这一点。

GDB只有“机器界面”。详情here

答案 1 :(得分:0)

Git 2.18展示了一种有趣的方式来包装和与调试器,gdb或其他人进行通信。

commit 8424364Elijah Newren (newren)(2018年4月24日) (由Junio C Hamano -- gitster --合并于commit 89753dc,2018年5月23日)

  

在其他类似调试器的程序下轻松运行git

     

这允许我们在使用git下的脚本时运行bin-wrappers   其他课程。
  在testsuite脚本中使用的一些示例:

debug git checkout master
debug --debugger=nemiver git $ARGS
debug -d "valgrind --tool-memcheck --track-origins=yes" git $ARGS
     

或者,如果有人在bin-wrappers/$PATH并且在测试套餐之外正在执行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"

查看t/test-lib-functions.sh中的结果。