MDAInfo 结构
提供有关 Event_MDAFired
事件的详细信息,该事件会触发创建托管调试助手 (MDA)。
语法
typedef struct _MDAInfo {
LPCWSTR lpMDACaption;
LPCWSTR lpMDAMessage
} MDAInfo;
成员
成员 | 说明 |
---|---|
lpMDACaption |
当前 MDA 的标题。 标题描述触发 Event_MDAFired 事件的故障类型。 |
lpMDAMessage |
当前 MDA 提供的输出消息。 |
备注
托管调试助手 (MDA) 是调试辅助工具,可与公共语言运行时 (CLR) 联合执行任务,例如,在运行时执行引擎中标识无效条件或转储有关引擎状态的附加信息。 MDA 生成有关事件的 XML 消息,否则这些事件很难捕获。 它们对于调试托管代码和非托管代码之间的转换特别有用。
触发创建 MDA 事件时,运行时将执行以下步骤:
如果主机尚未通过调用 ICLROnEventManager::RegisterActionOnEvent 来注册 IActionOnCLREvent 实例,以便接收
Event_MDAFired
事件通知,则运行时将继续默认的非托管行为。如果主机已注册此事件的处理程序,则运行时将检查调试器是否已附加到进程中。 如果是这样,则运行时会中断调试器。 调试器继续时,它会调入主机。 如果未附加调试器,则运行时将调用
IActionOnCLREvent::OnEvent
并将指针作为data
参数传递给MDAInfo
实例。
宿主可以选择激活 MDA,并在 MDA 激活时获得通知。 这使主机有机会替代默认行为,并中止引发事件的托管线程,以防止其损坏进程状态。 有关使用 MDA 的详细信息,请参阅使用托管调试助手诊断错误。
要求
平台:请参阅系统要求。
标头:MSCorEE.idl
库:作为资源包含在 MSCorEE.dll 中
.NET Framework 版本:自 2.0 起可用