CLR 調(diào)試接口的架構(gòu)與應(yīng)用 [1] 背景資料
發(fā)表時間:2023-08-08 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]折騰 CLR 調(diào)試接口也有幾周了,可是在將 C++ 代碼移植到 C# 時總是有問題,直到剛剛才靈機(jī)一動有所突破,呵呵,總算可以開始寫這個系列文章了。:D 雖然需要實際用到 CLR 調(diào)試接口的...
折騰 CLR 調(diào)試接口也有幾周了,可是在將 C++ 代碼移植到 C# 時總是有問題,直到剛剛才靈機(jī)一動有所突破,呵呵,總算可以開始寫這個系列文章了。:D
雖然需要實際用到 CLR 調(diào)試接口的人可能非常少,但通過對 CLR 調(diào)試接口和 Profiler 接口的了解,可以從多個截面加深對 CLR 架構(gòu)的認(rèn)識,而且靈活使用這兩個接口可以開發(fā)出非常強(qiáng)大的輔助開發(fā)工具來。:D
目前關(guān)于 CLR 調(diào)試接口方面的資料比較少,較為詳細(xì)的除了.NET Framework SDK自帶的兩個文檔(Tool Developers Guidedocs目錄下的Debug.doc和DebugRef.doc)和一個例子(Tool Developers GuideSamplesdebugger)外,就只有 MSDN 雜志的上兩篇文章,以及 Jon Shute 的一個 Debuggers under .NET 系列文章了。
.NET Framework SDK 自帶的 Debug.doc 文檔從整體結(jié)構(gòu)上介紹了 CLR 調(diào)試接口的架構(gòu);DebugRef.doc 則詳細(xì)地介紹了具體的使用方法,可惜其中紕漏不少,大概是最終發(fā)布特性沒有跟文檔同步吧,呵呵。而 samples 目錄下的那個例子,則是詳盡地演示了大部分調(diào)試接口功能的使用,極具參考價值。
MSDN 雜志2002年第11期中 Mike Pellegrino 的 Improve Your Understanding of .NET Internals by Building a Debugger for Managed Code 一文可以說是目前最為全面的調(diào)試接口介紹文章了,而且給出了詳細(xì)的例子。而2001年第12期中 Matt Pietrek 的 Under the Hood 專欄文章 The .NET Profiling API and the DNProfiler Tool 雖然介紹的是 .NET Profiling API,但與調(diào)試接口環(huán)環(huán)相扣、相輔相成,是理解 CLR 架構(gòu)的必讀文章。
Jon Shute老兄是 SharpDevelop 項目 CLR 調(diào)試器部分的負(fù)責(zé)人,據(jù)他說已經(jīng)有一個包裝好的C#版本調(diào)試器接口了,呵呵,值得期待啊。:D
Debuggers under .NET part 1
Debuggers under .NET part 2
Debugging under .NET part 3
上面提到的 SharpDevelop 項目提供了一個完全開源的 C# 開發(fā)環(huán)境,雖然目前還不太成熟,但也已初具規(guī)模了。和 ASP.NET 的 Web Matrix 都是非常優(yōu)秀的 .NET 開發(fā)環(huán)境免費項目。清華出版社翻譯的 《C#軟件項目開發(fā)全程剖析——全面透視SharpDevelop軟件的開發(fā)內(nèi)幕》 一書則較為全面地介紹了 SharpDevelop 的設(shè)計與開發(fā)流程。雖然沒有很深入的技術(shù)內(nèi)容,但對程序的設(shè)計和開發(fā)周期有很全面的介紹,對初涉 .NET 架構(gòu)程序設(shè)計和開發(fā)的朋友有相當(dāng)?shù)膮⒖純r值。