Freigeben über


MDAInfo-Struktur

Stellt ausführliche Informationen über das Event_MDAFired-Ereignis bereit, das das Erstellen eines MDA-Assistenten (Managed Debugging Assistant, Assistent für verwaltetes Debuggen) auslöst.

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.

Hinweise

MDAs sind Hilfsmittel für das Debuggen, die mit der CLR (Common Language Runtime) zusammenarbeiten, um bestimmte Aufgaben auszuführen, z. B. ungültige Bedingungen im CLR-Ausführungsmodul zu identifizieren oder um zusätzliche Informationen zum Zustand des Moduls zu sichern. MDAs generieren XML-Meldungen über Ereignisse, die andernfalls schwer aufzufangen wären. Sie können beim Debuggen von Übergängen zwischen verwaltetem und nicht verwaltetem Code besonders nützlich sein.

Wenn ein Ereignis ausgelöst wird, das das Erstellen eines MDA erfordert, werden die folgenden Schritte von der Laufzeit ausgeführt:

  • Wenn beim Host keine IActionOnCLREvent-Instanz mit einem Aufruf von ICLROnEventManager::RegisterActionOnEvent registriert ist, um über ein Event_MDAFired-Ereignis benachrichtigt zu werden, fährt die Laufzeit mit dem nicht gehosteten Standardverhalten fort.

  • Wenn der Host für dieses Ereignis einen Ereignishandler registriert hat, ermittelt die Laufzeit, ob mit ein Debugger an diesen Prozess angefügt ist. Ist dies der Fall, unterbricht die Laufzeit den Debugger. Wenn der Debugger fortgesetzt wird, ruft er den Host auf. Wenn kein Debugger angefügt wurde, ruft die Laufzeit IActionOnCLREvent::OnEvent auf, wobei ein Zeiger als data-Parameter an eine MDAInfo-Instanz übergeben wird.

Der Host kann auswählen, ob MDAs aktiviert werden sollen und er benachrichtigt wird, wenn dies geschehen ist. Dies ermöglicht dem Host das Überschreiben des Standardverhaltens und das Abbrechen des verwalteten Threads, der das Ereignis ausgelöst hat; dadurch kann verhindert werden, dass der Prozesszustand beschädigt wird. Weitere Informationen zum Verwenden von MDAs finden Sie unter Diagnostizieren von Fehlern mit Assistenten für verwaltetes Debuggen.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: MSCorEE.idl

Bibliothek: als Ressource in MSCorEE.dll enthalten

.NET Framework-Versionen: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Siehe auch

Konzepte

Diagnostizieren von Fehlern mit Assistenten für verwaltetes Debuggen

Weitere Ressourcen

Hostingstrukturen