marshalCleanupError MDA
Note
この記事は .NET Framework に固有のものです。 .NET 6 以降のバージョンを含む、.NET の新しい実装には適用されません。
共通言語ランタイム (CLR) が、ネイティブとマネージドのコードの境界間でのデータ型のマーシャリングに使用した一時的な構造体とメモリをクリーンアップしようとしたときにエラーが発生すると、marshalCleanupError
マネージド デバッグ アシスタント (MDA) がアクティブ化されます。
現象
ネイティブ コードとマネージド コードの遷移を実行する場合、スレッド カルチャなどのランタイム状態が復元されない場合、またはSafeHandle をクリーンアップしようしてエラーが発生した場合に、メモリ リークが発生します。
原因
一時的な構造体のクリーンアップ中に予期しないエラーが発生しました。
解決方法
すべての SafeHandle デストラクター、ファイナライザー、カスタム マーシャラーの実装を調べ、エラーがないかどうかをレビューします。
ランタイムへの影響
この MDA は CLR に影響しません。
出力
クリーンアップ中に失敗した操作を報告するメッセージ。
構成
<mdaConfig>
<assistants>
<marshalCleanupError />
</assistants>
</mdaConfig>
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET