折腾 CLR 调试接口也有几周了,可是在将 C++ 代码移植到 C# 时总是有问题,直到刚刚才灵机一动有所突破,呵呵,总算可以开始写这个系列文章了。:D
虽然需要实际用到 CLR 调试接口的人可能非常少,但通过对 CLR 调试接口和 Profiler 接口的了解,可以从多个截面加深对 CLR 架构的认识,而且灵活使用这两个接口可以开发出非常强大的辅助开发工具来。:D
目前关于 CLR 调试接口方面的资料比较少,较为详细的除了.NET Framework SDK自带的两个文档(Tool Developers Guidedocs目录下的Debug.doc和DebugRef.doc)和一个例子(Tool Developers GuideSamplesdebugger)外,就只有 MSDN 杂志的上两篇文章,以及 Jon Shute 的一个 Debuggers under .NET 系列文章了。
.NET Framework SDK 自带的 Debug.doc 文档从整体结构上介绍了 CLR 调试接口的架构;DebugRef.doc 则详细地介绍了具体的使用方法,可惜其中纰漏不少,大概是最终发布特性没有跟文档同步吧,呵呵。而 samples 目录下的那个例子,则是详尽地演示了大部分调试接口功能的使用,极具参考价值。
MSDN 杂志2002年第11期中 Mike Pellegrino 的 Improve Your Understanding of .NET Internals by Building a Debugger for Managed Code 一文可以说是目前最为全面的调试接口介绍文章了,而且给出了详细的例子。而2001年第12期中 Matt Pietrek 的 Under the Hood 专栏文章 The .NET Profiling API and the DNProfiler Tool 虽然介绍的是 .NET Profiling API,但与调试接口环环相扣、相辅相成,是理解 CLR 架构的必读文章。
Jon Shute老兄是 SharpDevelop 项目 CLR 调试器部分的负责人,据他说已经有一个包装好的C#版本调试器接口了,呵呵,值得期待啊。:D
Debuggers under .NET part 1
Debuggers under .NET part 2
Debugging under .NET part 3
上面提到的 SharpDevelop 项目提供了一个完全开源的 C# 开发环境,虽然目前还不太成熟,但也已初具规模了。和 ASP.NET 的 Web Matrix 都是非常优秀的 .NET 开发环境免费项目。清华出版社翻译的 《C#软件项目开发全程剖析——全面透视SharpDevelop软件的开发内幕》 一书则较为全面地介绍了 SharpDevelop 的设计与开发流程。虽然没有很深入的技术内容,但对程序的设计和开发周期有很全面的介绍,对初涉 .NET 架构程序设计和开发的朋友有相当的参考价值。
……