invalidGCHandleCookie MDA

注意

本文專屬於 .NET Framework。 它不適用於較新的 .NET 實作,包括 .NET 6 和更新版本。

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

徵兆

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

原因

Cookie 可能無效,因為它原本不是從 GCHandle建立,代表 GCHandle 已經釋放的 ,是不同應用程式域中的 Cookie GCHandle ,或封送至原生程式代碼作為 GCHandle ,但會以 嘗試轉換的方式傳回 CLR IntPtr。

解決方法

為 GCHandle 指定有效的 IntPtr Cookie。

對執行階段的影響

啟用此 MDA 時,偵錯工具即不再能夠追蹤回其物件的根,因為傳回的 Cookie 值和未啟用 MDA 時傳回的 Cookie 值不同。

輸出

已報告無效的 IntPtr Cookie 值。

組態

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

另請參閱