gcUnmanagedToManaged 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 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 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.
Rozwiązanie
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.
Wyjście
Ta usługa MDA nie generuje żadnych danych wyjściowych.
Konfigurowanie
<mdaConfig>
<assistants>
<gcUnmanagedToManaged/>
</assistants>
</mdaConfig>