gcUnmanagedToManaged MDA

Note

Dieser Artikel ist spezifisch für .NET Framework. Sie gilt nicht für neuere Implementierungen von .NET, einschließlich .NET 6 und höherer Versionen.

Der gcUnmanagedToManaged verwaltete Debugging-Assistent (Managed Debugging Assistant, MDA) verursacht eine Garbage Collection, wenn ein Thread von nicht verwaltetem Code zu verwaltetem Code wechselt.

Symptome

Eine Anwendung, die nicht verwaltete Benutzerkomponenten mit COM- und Plattform-Aufruf ausführt, verursacht einen unbestimmten Zugriffsverstoß in der CLR.

Ursache

Wenn eine Anwendung nicht verwaltete Benutzerkomponenten ausführt, haben diese Komponenten möglicherweise den garbage-collected heap beschädigt. Dies führt zu einer Zugriffsverletzung in der CLR, wenn der Garbage Collector versucht, das Objektdiagramm zu durchlaufen.

Auflösung

Durch Aktivieren dieses Assistenten wird die Zeit zwischen dem Zeitpunkt reduziert, in dem die nicht verwaltete Komponente den garbage-collection-Heap beschädigt, und wenn die Zugriffsverletzung auftritt, indem eine Garbage Collection vor jedem verwalteten Übergang erzwungen wird.

Effekt auf die Laufzeit

Verursacht eine Garbage Collection, wenn ein Thread von nicht verwaltetem Code zu verwaltetem Code wechselt.

Output

Diese MDA erzeugt keine Ausgabe.

Konfiguration

<mdaConfig>
  <assistants>
    <gcUnmanagedToManaged/>
  </assistants>
</mdaConfig>

Siehe auch