marshalCleanupError MDA

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

症状

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

原因

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

解决方法

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

对运行时的影响

此 MDA 对 CLR 无任何影响。

Output

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

配置

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

请参见

参考

MarshalAsAttribute

概念

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

互操作封送处理

其他资源

互操作性