gcUnmanagedToManaged MDA

Uwaga / Notatka

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

Asystent gcUnmanagedToManaged zarządzanego debugowania (MDA) powoduje odzyskiwanie pamięci za każdym razem, gdy wątek przechodzi z niezarządzanego do kodu zarządzanego.

Symptoms

Aplikacja, która uruchamia niezarządzane składniki użytkownika przy użyciu modelu COM i wywołania platformy, powoduje nieokreślone naruszenie dostępu w środowisku CLR.

Przyczyna

Jeśli aplikacja korzysta ze składników użytkownika niezarządzanych, te składniki mogły uszkodzić stertę zbieraną przez śmieci. Powoduje to naruszenie dostępu w środowisku CLR, gdy moduł odśmiecacz pamięci próbuje przejść graf obiektu.

Rozdzielczość

Włączenie tego asystenta skraca czas między uszkodzeniem niezarządzanego składnika sterty zbieranej przez śmieci, a naruszeniem dostępu przez wymuszenie odzyskiwania pamięci przed każdym przejściem zarządzanym.

Wpływ na środowisko uruchomieniowe

Powoduje odzyskiwanie pamięci za każdym razem, gdy wątek przechodzi z niezarządzanego do kodu zarządzanego.

Wynik

Ta usługa MDA nie generuje żadnych danych wyjściowych.

Konfiguracja

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

Zobacz także