Udostępnij za pośrednictwem


marshalCleanupError MDA

Uwaga

Ten artykuł jest specyficzny dla programu .NET Framework. Nie ma zastosowania do nowszych implementacji platformy .NET, w tym .NET 6 i nowszych wersji.

Asystent marshalCleanupError zarządzanego debugowania (MDA) jest aktywowany, gdy środowisko uruchomieniowe języka wspólnego (CLR) napotka błąd podczas próby wyczyszczenia tymczasowych struktur i pamięci używanej do określania typów danych między granicami kodu natywnego i zarządzanego.

Objawy

Wyciek pamięci występuje podczas przechodzenia kodu natywnego i zarządzanego, stan środowiska uruchomieniowego, taki jak kultura wątku, nie jest przywracany, lub występują błędy podczas SafeHandle czyszczenia.

Przyczyna

Wystąpił nieoczekiwany błąd podczas czyszczenia struktur tymczasowych.

Rozwiązanie

Przejrzyj wszystkie SafeHandle implementacje destruktora, finalizatora i niestandardowego marshallera pod kątem błędów.

Wpływ na środowisko uruchomieniowe

Ta usługa MDA nie ma wpływu na CLR.

Wyjście

Komunikat zgłaszający operację, która nie powiodła się podczas czyszczenia.

Konfigurowanie

<mdaConfig>
  <assistants>
    <marshalCleanupError />
  </assistants>
</mdaConfig>

Zobacz też