marshalCleanupError MDA

更新:2007 年 11 月

如果公共语言运行库 (CLR) 在试图清理那些用于封送本机代码和托管代码边界之间的数据类型的临时结构和内存时遇到错误,则将激活 marshalCleanupError 托管调试助手 (MDA)。

症状

进行本机代码和托管代码转换时发生内存泄漏,线程区域性等运行时状态无法还原,或 SafeHandle 清理中发生错误。

原因

清理临时结构时发生意外错误。

解决办法

检查所有 SafeHandle 析构函数、终结器和自定义封送拆收器实现中是否存在错误。

对运行库的影响

此 MDA 对 CLR 无任何影响。

输出

报告在清理期间失败的操作的消息。

配置

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

请参见

概念

使用托管调试助手诊断错误

Interop 封送处理概述

参考

MarshalAsAttribute

其他资源

互操作性