Freigeben über


MDAInfo-Struktur

Bietet Details zum Event_MDAFired-Ereignis, das die Erstellung eines Assistenten für verwaltetes Debuggen (Managed Debugging Assistant, MDA) auslöst.

Syntax

typedef struct _MDAInfo {  
    LPCWSTR  lpMDACaption;  
    LPCWSTR  lpMDAMessage  
} MDAInfo;  

Member

Member Beschreibung
lpMDACaption Der Titel des aktuellen MDA. Der Titel beschreibt die Art des Fehlers, der das Event_MDAFired-Ereignis ausgelöst hat.
lpMDAMessage Die vom aktuellen MDA bereitgestellte Ausgabemeldung.

Bemerkungen

Assistenten für verwaltetes Debuggen (Managed Debugging Assistants, MDAs) sind Debughilfen, die zusammen mit der Common Language Runtime (CLR) Aufgaben ausführen, z. B. das Identifizieren ungültiger Bedingungen in der Runtimeausführungs-Engine oder das Dumpen zusätzlicher Informationen zum Zustand der Engine. MDAs generieren XML-Nachrichten zu Ereignissen, die andernfalls nur schwer zu erkennen sind. Sie sind besonders hilfreich beim Debuggen von Übergängen zwischen verwaltetem und nicht verwaltetem Code.

Die Runtime führt die folgenden Schritte aus, wenn ein Ereignis ausgelöst wird, das wiederum die Erstellung eines MDA auslöst:

  • Wenn der Host nicht ICLROnEventManager::RegisterActionOnEvent aufgerufen hat, um eine IActionOnCLREvent-Instanz zu registrieren und über ein Event_MDAFired-Ereignis benachrichtigt zu werden, fährt die Runtime mit dem standardmäßigen, nicht gehosteten Verhalten fort.

  • Wenn im Host ein Handler für dieses Ereignis registriert ist, überprüft die Runtime, ob ein Debugger an den Prozess angefügt ist. Ist dies der Fall, unterbricht die Runtime, und der Debugger wird gestartet. Wenn der Debugger fortfährt, ruft er den Host auf. Wenn kein Debugger angefügt ist, ruft die Runtime IActionOnCLREvent::OnEvent auf und übergibt einen Zeiger auf eine MDAInfo-Instanz als data-Parameter.

Der Host kann auswählen, dass MDAs aktiviert werden und der Host benachrichtigt wird, wenn ein MDA aktiviert wird. Dadurch erhält der Host die Möglichkeit, das Standardverhalten zu überschreiben und den verwalteten Thread abzubrechen, der das Ereignis ausgelöst hat, um zu verhindern, dass der Thread den Prozesszustand beschädigt. Weitere Informationen zur Verwendung von MDAs finden Sie unter Diagnostizieren von Fehlern mit Assistenten für verwaltetes Debuggen.

Anforderungen

Plattformen: Informationen finden Sie unter Systemanforderungen.

Header: MSCorEE.idl

Bibliothek: Als Ressource in „MsCorEE.dll“ enthalten.

.NET Framework-Versionen: Seit 2.0 verfügbar.

Siehe auch