Share via


marshalCleanupError-MDA

Aktualisiert: November 2007

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.

Ausgabe

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

Konzepte

Diagnostizieren von Fehlern mit Assistenten für verwaltetes Debuggen

Übersicht über das Interop-Marshalling

Referenz

MarshalAsAttribute

Weitere Ressourcen

Interoperabilität