任何人都可以向我提供一些有关如何为Visual Studio编写自定义调试引擎的详细信息,特别是对于解释器吗?
我有一个自定义xml文档,它描述了一个工作流,我有一个运行器(解释器),它在运行时解释并执行xml文件的每个元素(C#)。
现在我想创建一个能够跨越这些xml元素的自定义调试引擎。
我找到了一些如何编写这样的调试引擎的基本示例,但我有一个很大的问题:
运行时(debuggee)如何与调试引擎通信? 例如,调试引擎发送“Step over”命令。但是我需要在我的应用程序中接收此事件?我怎么知道何时执行下一步? 我确定我还需要在动作完成时告诉调试引擎,但是如何?
你们有没有做过类似的事情,可以提供一些样品吗?
答案 0 :(得分:0)
您可以对硬模式与软模式调试进行更多研究:
https://blogs.msdn.microsoft.com/jmstall/2005/02/09/hardmode-vs-softmode/
我相信您必须实现一个软模式调试器才能使其正常工作。这意味着在您的解释器中运行一个与调试引擎通信的线程(或多个线程)。
这是另一个描述如何为Visual Studio编写调试引擎的链接
https://code.msdn.microsoft.com/windowsdesktop/Visual-Studio-Debug-Engine-c2e21c0e
该示例是一个硬模式调试器。据我所知,VS的软模式没有样本。