Partager via


Assistant Débogage managé reportAvOnComRelease

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é reportAvOnComRelease est activé quand des exceptions sont levées en raison d'erreurs de comptage de références utilisateur pendant une opération COM Interop et l'utilisation de la méthode Release ou ReleaseComObject combinée avec des appels COM bruts.

Symptômes

Violations d'accès et endommagement de la mémoire.

Cause

Parfois, une exception est levée en raison d'erreurs de comptage de références utilisateur pendant une opération COM Interop et l'utilisation de la méthode Release ou ReleaseComObject combinée avec des appels COM bruts. Normalement, cette exception est ignorée, car elle entraînerait une violation d'accès dans le CLR et l'arrêt de ce dernier. Quand cet Assistant est activé, les exceptions de ce type peuvent être détectées et signalées au lieu d'être simplement ignorées.

Résolution

Examinez votre code de comptage de références, ainsi que les clients natifs de votre objet pour déterminer s'ils contiennent des erreurs de comptage.

Effet sur le runtime

Deux modes sont disponibles. Si l'attribut allowAv a pour valeur true, l'Assistant empêche le runtime d'ignorer la violation d'accès. Si l'attribut allowAv est défini sur false (valeur par défaut), le runtime ignore la violation d'accès, mais un message d'avertissement est présenté à l'utilisateur pour indiquer qu'une exception a été levée et ignorée.

Sortie

Si possible, la sortie contient le vtable d'origine du pointeur d'interface COM. Sinon, un message d'information apparaît.

Configuration

<mdaConfig>
  <assistants>
    <reportAvOnComRelease />
  </assistants>
</mdaConfig>

Voir aussi