Partager via


Assistant Débogage managé marshalCleanupError

L'Assistant Débogage managé (MDA, Managed Debugging Assistant) marshalCleanupError est activé lorsque le Common Language Runtime (CLR) rencontre une erreur au cours d'une tentative de nettoyage des structures et des mémoires temporaires utilisées pour marshaler des types de données entre les limites de code natif et managé.

Symptômes

Une fuite de mémoire se produit pendant des transitions de code natif et managé, lorsque l'état du runtime tel que la culture d'un thread n'est pas restauré ou lorsque des erreurs se produisent dans le nettoyage SafeHandle.

Cause

Une erreur inattendue est survenue lors du nettoyage de structures temporaires.

Solution

Passez en revue toutes les implémentations du destructeur SafeHandle, du finaliseur et du marshaleur personnalisé pour trouver les erreurs.

Effet sur le runtime

Ce MDA n'a aucun effet sur le CLR.

Sortie

Message signalant l'opération qui a échoué pendant le nettoyage.

Configuration

<mdaConfig>
  <assistants>
    <marshalCleanupError enable="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é