gcUnmanagedToManaged MDA

Note

Cet article est spécifique à .NET Framework. Ceci ne s’applique pas aux implémentations plus récentes de .NET, y compris .NET 6 et versions ultérieures.

L’Assistant gcUnmanagedToManaged débogage managé (MDA) provoque un garbage collection chaque fois qu’un thread passe d’un code managé à un code managé.

Symptoms

Une application exécutant des composants utilisateur non gérés à l’aide de COM et d’appel de plateforme provoque une violation d’accès non déterministe dans le CLR.

Cause

Si une application exécute des composants utilisateur non managés, ces composants peuvent avoir endommagé le tas collecté par le garbage. Cela provoque une violation d’accès dans le CLR lorsque le garbage collector tente de parcourir le graphique d’objet.

Résolution

L’activation de cet Assistant réduit le temps entre le moment où le composant non managé endommage le tas collecté par le garbage et lorsque la violation d’accès se produit en forçant un garbage collection à se produire avant chaque transition managée.

Effet sur le runtime

Provoque un garbage collection chaque fois qu’un thread passe d’un code non managé au code managé.

Sortie

Ce MDA ne produit aucune sortie.

Configuration

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

Voir aussi