gcUnmanagedToManaged MDA

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.

Objawy

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 uruchamia niezarządzane składniki użytkownika, te składniki mogły uszkodzić stertę zbieraną przez śmieci. Powoduje to naruszenie dostępu w środowisku CLR, gdy moduł odśmiecnięcia pamięci próbuje przejść graf obiektu.

Rozwiązanie

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

Wpływ na środowisko uruchomieniowe

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

Dane wyjściowe

To rozwiązanie MDA nie generuje żadnych danych wyjściowych.

Konfigurowanie

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

Zobacz też