marshalCleanupError MDA

更新 : 2007 年 11 月

marshalCleanupError マネージ デバッグ アシスタント (MDA: Managed Debugging Assistant) は、ネイティブおよびマネージ コード境界の間でのデータ型のマーシャリングに使用した一時的な構造体とメモリをクリーンアップしようとしたときに、共通言語ランタイム (CLR: Common Language Runtime) でエラーが発生するとアクティブ化されます。

症状

ネイティブおよびマネージ コード遷移を行うとき、スレッド カルチャが復元されないなどのランタイム状態のとき、または SafeHandle クリーンアップでエラーが発生した場合に、メモリ リークが起こります。

原因

一時的な構造体のクリーンアップ中に、予期しないエラーが発生しました。

解決策

すべての SafeHandle デストラクタ、ファイナライザ、およびカスタム マーシャラの実装に、エラーがないかどうかを確認します。

ランタイムへの影響

この MDA は、CLR への影響はありません。

出力

クリーンアップ中にエラーが発生した操作を報告するメッセージです。

構成

<mdaConfig>
  <assistants>
    <marshalCleanupError enable="false" />
  </assistants>
</mdaConfig>

参照

概念

マネージ デバッグ アシスタントによるエラーの診断

相互運用マーシャリングの概要

参照

MarshalAsAttribute

その他の技術情報

相互運用性