Assistant Débogage managé gcUnmanagedToManaged
Remarque
Cet article est spécifique au .NET Framework. Elle ne s’applique pas aux implémentations plus récentes de .NET, notamment .NET 6 et versions ultérieures.
L'Assistant Débogage managé (MDA) gcUnmanagedToManaged
déclenche une opération garbage collection chaque fois qu'un thread effectue la transition du code non managé au code managé.
Symptômes
Une application exécutant des composants utilisateur non managés à l'aide de COM et d'appels de code non managé provoque une violation d'accès non déterministe dans le CLR.
Cause
Si une application exécute des composants utilisateur non managés, il se peut que ces composants aient endommagé le tas obtenu à l'issue d'une opération garbage collection. Cela provoque une violation d'accès dans le CLR quand le garbage collector tente de parcourir le graphique d'objet.
Résolution
L'activation de cet assistant réduit la durée entre le moment où le composant non managé endommage le tas obtenu à l'issue d'une opération garbage collection et le moment de la violation d'accès en obligeant l'exécution d'une opération garbage collection avant chaque transition managée.
Effet sur le runtime
Provoque une opération garbage collection chaque fois qu’un thread effectue la transition du code non managé au code managé.
Sortie
Cet Assistant Débogage managé ne produit aucune sortie.
Configuration
<mdaConfig>
<assistants>
<gcUnmanagedToManaged/>
</assistants>
</mdaConfig>