共用方式為


invalidGCHandleCookie MDA

嘗試從無效的 IntPtr Cookie 轉換至 GCHandle 時,invalidGCHandleCookie Managed 偵錯助理 (MDA) 就會啟動。

症狀

嘗試從 IntPtr 使用或擷取 GCHandle 時,發生未定義的行為,例如存取違規和記憶體損毀。

原因

Cookie 可能是無效的,因為 Cookie 原先並非由 GCHandle 產生,它表示已經釋放的 GCHandle,並且也是不同應用程式定義域中 GCHandle 的 Cookie,或是做為 GCHandle 封送處理 (Marshal) 至機器碼,但卻傳遞回到 CLR 做為 IntPtr,並在其中嘗試轉型 (Cast)。

解決方式

GCHandle 指定有效的 IntPtr Cookie。

對執行階段的影響

在啟用這個 MDA 時,由於傳回的 Cookie 值不同於未啟用這個 MDA 時所傳回的值,偵錯工具不再能夠追蹤回到它們的物件。

Output

會報告無效的 IntPtr Cookie 值。

組態

<mdaConfig>
  <assistants>
    <invalidGCHandleCookie />
  </assistants>
</mdaConfig>

請參閱

參考

FromIntPtr

GCHandle

概念

診斷 Managed 偵錯助理的錯誤