gcUnmanagedToManaged-MDA
Der gcUnmanagedToManaged-MDA (Managed Debugging Assistant, Assistent für verwaltetes Debuggen) veranlasst bei jedem Übergang eines Threads von nicht verwaltetem zu verwaltetem Code eine Garbage Collection.
Symptome
Eine Anwendung, die über COM und Plattformaufrufe nicht verwaltete Benutzerkomponenten ausführt, verursacht eine nichtdeterministische Zugriffsverletzung in der CLR.
Ursache
Wenn eine Anwendung nicht verwaltete Benutzerkomponenten ausführt, dann haben diese Komponenten möglicherweise den Heap der Garbage Collection beschädigt. Dies verursacht eine Zugriffsverletzung in der CLR, wenn der Garbage Collector versucht, das Objektdiagramm durchzugehen.
Lösung
Durch das Aktivieren dieses Assistenten wird der Zeitraum zwischen dem Beschädigen des Heap der Garbage Collection durch die nicht verwaltete Komponente und dem Auftreten der Zugriffsverletzung verkürzt, indem vor jedem Übergang in verwalteten Code eine Garbage Collection erzwungen wird.
Auswirkungen auf die Laufzeit
Bei jedem Übergang eines Threads von nicht verwaltetem zu verwaltetem Code wird eine Garbage Collection veranlasst.
Output
Dieser MDA erzeugt keine Ausgabe.
Konfiguration
<mdaConfig>
<assistants>
<gcUnmanagedToManaged/>
</assistants>
</mdaConfig>
Siehe auch
Referenz
Konzepte
Diagnostizieren von Fehlern mit Assistenten für verwaltetes Debuggen