首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >哪些MDA对跟踪堆损坏很有用?

哪些MDA对跟踪堆损坏很有用?
EN

Stack Overflow用户
提问于 2011-09-26 18:15:54
回答 2查看 1.7K关注 0票数 1

我在.NET/C#程序中有一个堆损坏的,不能用WinDbg + PageHeap + 应用验证器跟踪它。在下一步中,我计划使用托管调试助理 (MDA)。

目前,我尝试使用这些MDA:

代码语言:javascript
运行
复制
<gcManagedToUnmanaged />
<gcUnmanagedToManaged />
<invalidVariant />

(启用这些MDA使程序运行得非常慢。)

在这种情况下我还能试试别的什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-07 18:09:50

正如汉斯·帕桑特所指出的,这类病例的主要丙二醛是<gcUnmanagedToManaged>。但是,这种MDA会使程序运行得非常慢。实际上,程序变得不可用(绘制程序接口需要“永远”),因此在生产中无法工作。从视觉上看,这个MDA和GCStress一样慢。

其他有用的MDA(工作必须更快):

代码语言:javascript
运行
复制
<callbackOnCollectedDelegate />
<invalidOverlappedToPinvoke />
<overlappedFreeError />

要了解更多关于可用MDA及其详细描述的信息,请参阅MSDN文章http://msdn.microsoft.com/en-us/library/d21c150d.aspx

关于如何为程序设置MDA的一篇好文章是http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=500

最后,如何激活系统中的MDA,参见堆栈溢出问题HeapVerify?

票数 3
EN

Stack Overflow用户

发布于 2011-09-26 18:56:08

尝试一种商业工具,如Red的蚂蚁记忆分析器或Jetbrain的DotTrace。我使用蚂蚁内存分析器,能够检测内存泄漏并修复导致内存泄漏的代码,这可能最终导致堆损坏。这是一篇关于使用蚂蚁内存分析器查找内存泄漏的文章

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7559374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档