Freigeben über


marshalCleanupError-MDA

Der marshalCleanupError-MDA (Managed Debugging Assistant, Assistent für verwaltetes Debuggen) wird aktiviert, wenn in der CLR (Common Language Runtime) beim Bereinigen von temporären Strukturen und Arbeitsspeicher, die zum Marshalling von Datentypen über die Grenze zwischen systemeigenem und verwaltetem Code verwendet wurden, ein Fehler auftritt.

Symptome

Beim Übergang von systemeigenem zu verwaltetem Code tritt ein Speicherverlust auf, der Laufzeitzustand (z. B. die Threadkultur) wird nicht gespeichert, oder es treten Fehler beim Bereinigen von SafeHandle auf.

Ursache

Beim Bereinigen temporärer Strukturen ist ein unerwarteter Fehler aufgetreten.

Lösung

Überprüfen Sie alle Destruktor-, Finalizer- und benutzerdefinierten Marshallerimplementierungen für SafeHandle auf Fehler.

Auswirkungen auf die Laufzeit

Dieser MDA hat keine Auswirkungen auf die CLR.

Output

Eine Meldung, in der der Vorgang genannt wird, der während der Bereinigung fehlgeschlagen ist.

Konfiguration

<mdaConfig>
  <assistants>
    <marshalCleanupError enable="false" />
  </assistants>
</mdaConfig>

Siehe auch

Referenz

MarshalAsAttribute

Konzepte

Diagnostizieren von Fehlern mit Assistenten für verwaltetes Debuggen

Interop-Marshalling

Weitere Ressourcen

Interoperabilität