微软公开了Visual Studio调试引擎Concord的示例和文档

jopen 9年前

 

Visual Studio调试引擎文档及其包含的两个示例 现在已经上线 了。 这个调试引擎代号Concord,是最初与Visual Studio 2012一同发布的新调试引擎。

Concord的设计由多个相互联系的不同部件组成,而不是如前任般的整体统一。这种新设计让公共API成为可能,提供入口来扩展Visual Studio的调试功能如断点或调用栈。该设计也为扩展实现提供了使用本地(C++)代码或使用托管(C#)代码的选择。

第一个示例是 经典的HelloWorld 。编译需要Visual Studio SDK。HelloWorld示例在调用栈中输出1行,如下图。

微软公开了Visual Studio调试引擎Concord的示例和文档

另外一个扩展示例是 .NET language (CLR) 表达式计算器 。表达式计算器是一个允许用户使用与代码相同的语言进行调试的组件。这通过定制化代码语言的调试器窗口如监视、调试栈和功能断点来实现。简单讲,这个扩展提供了如何在Visual Studio中为定制化编译器实现调试的示例。

Concord API相当大, 这些已有的线索 能让导览更简单:

  1. 当决定要实现什么接口的时候,我们把所有接口按实现接口的组件类别组织起来。如果你看一下本地API的头文件(vsdebugeng.h),你可以见到各个接口是按节排列的,节就像是一段对那个类别的组件用途的描述。

  2. 当寻找方法去调用的时候,会忽略接口。Concord API以类的方法而不是接口方法的形式曝露给调用者。

  3. 即使你在用托管代码实现一个Concord组件,有时候找到你想要的方法的最快途径是在vsdebugeng.h中搜索字符串。因为本地和托管代码的API是一样的,如果你找到本地API,在托管代码中也同样能用。

  4. 在Microsoft.VisualStudio.Debugger.Engine中浏览参考 - 这是#3的另一面,即便你是在本地代码中使用Concord API,Visual Studio对于托管API的浏览支持得真的很好。

虽然Concord自身并不是开源的,然而这个文档项目是。可以通过 提交新示例 作出贡献。

查看英文原文: Microsoft makes Samples and Documentation Public for Concord, Visual Studio Debug Engine