Partager via


Assistant Débogage managé gcUnmanagedToManaged

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>  

Voir aussi