CLR 调试概述
利用公共语言运行时 (CLR) 调试 API,工具供应商可以编写调试器来调试运行于 CLR 环境中的应用程序。 要调试的代码可为 CLR 支持的任何代码种类。CLR 调试 API 主要是使用非托管代码实现的。 因此,调试 API 呈现为一组组件对象模型 (COM) 接口。 API 由以下各项组成: CLR 实现的 COM 对象和接口的集合。 必须由调试器实现的 COM 回调接口的集合。 CLR 调试方案 以下各部分介绍公共语言运行时调试 API 如何处理典型的调试方案。 请注意,该运行时直接支持某些方案,并且可与当前方法进行互操作来支持其他方案。 进程外调试 在进程外调试中,调试器不在所调试的进程中,而在另一个进程中(即在调试对象外部)。 此方案减少了调试器与调试对象之间的交互。 因此,它可以更准确地描述进程。 CLR 调试 API 直接支持进程外调试。 API 将处理调试器与调试对象托管部分之间的所有通信以支持托管代码调试。 虽然 CLR 调试 API 用于进程外,但某些调试逻辑(例如线程同步)却与调试对象在同一进程内。 大多数情况下,这是应该对调试器保持透明的实现详细信息。 有关线程同步的更多信息,请参见 CLR 调试体系结构。 调试 API 的缺点是在进程外使用时无法用它来检查崩溃转储。 进程内调试 在 .NET Framework 1.0 和 1.1 版本中,CLR 调试