Partager via


Assistant Débogage managé reportAvOnComRelease

L'Assistant Débogage managé (MDA, Managed Debugging Assistant) reportAvOnComRelease est activé lorsque des exceptions sont levées en raison d'erreurs de décompte de références de l'utilisateur pendant l'exécution de COM Interop et l'utilisation de la méthode Release ou ReleaseComObject associée à des appels COM bruts.

Symptômes

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

Cause

Parfois, une exception est levée en raison d'erreurs de décompte de références de l'utilisateur lors de l'exécution de COM Interop et de l'utilisation de la méthode Release ou ReleaseComObject associée à des appels COM bruts. Normalement, cette exception est ignorée car, dans le cas contraire, elle entraînerait une violation d'accès dans le CLR, ce qui provoquerait son interruption. Lorsque cet assistant est activé, ces exceptions peuvent être détectées et signalées plutôt que simplement ignorées.

Solution

Recherchez les erreurs dans votre code de décompte de références et les erreurs de décompte de références dans les clients natifs de votre objet.

Effet sur le runtime

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

Sortie

Le cas échéant, la sortie contient le vtable d'origine du pointeur d'interface COM. Sinon, un message d'information s'affiche.

Configuration

<mdaConfig>
  <assistants>
    <reportAvOnComRelease allowAv="false"/>
  </assistants>
</mdaConfig>

Voir aussi

Référence

MarshalAsAttribute

Concepts

Diagnostic d'erreurs avec les Assistants de débogage managés

Marshaling d'interopérabilité

Autres ressources

Interopérabilité