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>