marshalCleanupError MDA

注意

本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。

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

症状

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

原因

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

解决方法

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

对运行时的影响

此 MDA 对 CLR 无任何影响。

输出

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

Configuration

<mdaConfig>
  <assistants>
    <marshalCleanupError />
  </assistants>
</mdaConfig>

请参阅