reportAvOnComRelease MDA
reportAvOnComRelease マネージ デバッグ アシスタント (MDA: Managed Debugging Assistant) は、COM 相互運用を実行していて、COM の生呼び出しと組み合わせた Release メソッドまたは ReleaseComObject メソッドを使用しているときに、ユーザー参照カウントのエラーが原因で例外がスローされるとアクティブになります。
症状
アクセス違反およびメモリ破損が発生します。
原因
COM 相互運用を実行していて、生の COM 呼び出しと結びつけられた Release メソッドまたは ReleaseComObject メソッドを使用しているときに、ユーザー参照カウントのエラーが原因で例外がスローされることがあります。 通常、この例外は破棄されます。破棄しないと CLR でのアクセス違反が発生し、ダウンしてしまうためです。 このアシスタントが有効な場合は、そのような例外を単に破棄するのではなく、検出して報告できます。
解決策
参照カウントのコードを調べてエラーを探します。また、オブジェクトのネイティブ クライアントに参照カウントのエラーがないかどうかを調べてください。
ランタイムへの影響
2 つのモードを利用できます。 allowAv 属性が true の場合、アシスタントは、ランタイムがアクセス違反を破棄しないようにします。 allowAv が false の場合 (既定)、ランタイムはアクセス違反を破棄しますが、例外がスローされて破棄されたことを通知する警告メッセージがユーザーに報告されます。
出力
可能な場合、出力には COM インターフェイス ポインターの元の vtable が含まれます。 それ以外の場合は、情報メッセージが表示されます。
構成
<mdaConfig>
<assistants>
<reportAvOnComRelease allowAv="false"/>
</assistants>
</mdaConfig>