共用方式為


marshalCleanupError MDA

在嘗試清除暫存結構,以及機器碼和 Mananged 程式碼界限之間用於封送處理 (Marshaling) 資料型別的記憶體,而 Common Language Runtime (CLR) 卻發生錯誤時,marshalCleanupError Managed 偵錯助理 (MDA) 就會啟動。

症狀

在進行機器碼和 Mananged 程式碼轉換時,發生記憶體遺漏 (Memory Leak)、執行階段狀態 (例如執行緒文化特性) 無法還原,或者 SafeHandle 清除中發生錯誤。

原因

在清除暫存結構時,發生未預期的錯誤。

解決方式

檢閱所有 SafeHandle 解構函式 (Destructor)、完成項及自訂封送處理器實作 (Implementation) 以找出錯誤。

對執行階段的影響

這個 MDA 對 CLR 無效。

Output

報告作業在清除期間失敗的訊息。

組態

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

請參閱

參考

MarshalAsAttribute

概念

診斷 Managed 偵錯助理的錯誤

Interop 封送處理

其他資源

互通性