微軟公開了Visual Studio調試引擎Concord的示例和文檔
Visual Studio調試引擎文檔及其包含的兩個示例 現在已經上線 了。 這個調試引擎代號Concord,是最初與Visual Studio 2012一同發布的新調試引擎。
Concord的設計由多個相互聯系的不同部件組成,而不是如前任般的整體統一。這種新設計讓公共API成為可能,提供入口來擴展Visual Studio的調試功能如斷點或調用棧。該設計也為擴展實現提供了使用本地(C++)代碼或使用托管(C#)代碼的選擇。
第一個示例是 經典的HelloWorld 。編譯需要Visual Studio SDK。HelloWorld示例在調用棧中輸出1行,如下圖。
另外一個擴展示例是 .NET language (CLR) 表達式計算器 。表達式計算器是一個允許用戶使用與代碼相同的語言進行調試的組件。這通過定制化代碼語言的調試器窗口如監視、調試棧和功能斷點來實現。簡單講,這個擴展提供了如何在Visual Studio中為定制化編譯器實現調試的示例。
Concord API相當大, 這些已有的線索 能讓導覽更簡單:
-
當決定要實現什么接口的時候,我們把所有接口按實現接口的組件類別組織起來。如果你看一下本地API的頭文件(vsdebugeng.h),你可以見到各個接口是按節排列的,節就像是一段對那個類別的組件用途的描述。
-
當尋找方法去調用的時候,會忽略接口。Concord API以類的方法而不是接口方法的形式曝露給調用者。
-
即使你在用托管代碼實現一個Concord組件,有時候找到你想要的方法的最快途徑是在vsdebugeng.h中搜索字符串。因為本地和托管代碼的API是一樣的,如果你找到本地API,在托管代碼中也同樣能用。
-
在Microsoft.VisualStudio.Debugger.Engine中瀏覽參考 - 這是#3的另一面,即便你是在本地代碼中使用Concord API,Visual Studio對于托管API的瀏覽支持得真的很好。
雖然Concord自身并不是開源的,然而這個文檔項目是。可以通過 提交新示例 作出貢獻。
查看英文原文: Microsoft makes Samples and Documentation Public for Concord, Visual Studio Debug Engine