invalidGCHandleCookie MDA

尝试将无效的 IntPtr Cookie 转换为 GCHandle 时,将激活 invalidGCHandleCookie 托管调试助手(MDA)。

症状

尝试从 IntPtr 使用或检索 GCHandle 时,发生未定义的行为,如访问冲突和内存损坏。

原因

该 Cookie 可能是无效的,因为它原本不是从 GCHandle 创建的。它表示已被释放的 GCHandle,是不同应用程序域中 GCHandle 的 Cookie,或者作为 GCHandle 被封送到了本机代码、但作为 IntPtr 被传回到了 CLR,在那里尝试了转换。

解决方法

GCHandle 指定有效的 IntPtr Cookie。

对运行时的影响

此 MDA 启用后,调试程序不再能从根源追溯到对象,因为传回的 Cookie 值与 MDA 未启用时返回的值不同。

输出

报告无效的 IntPtr Cookie 值。

Configuration

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

请参阅