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 起可用

另请参阅