什么里程碑决策者是有用的跟踪堆损坏?决策者、里程碑、有用

由网友(三分爱人七分爱己)分享简介:我有一个堆损坏在.NET / C#程序,不能用的 WinDbg的 +的页堆 + 应用程序验证。在下一步,我打算使用托管调试助手(有关部委) 。 I have a heap corruption in a .NET/C# program and cannot track it with WinDbg + PageHea...

我有一个堆损坏在.NET / C#程序,不能用的 WinDbg的 +的页堆 + 应用程序验证。在下一步,我打算使用托管调试助手(有关部委) 。

I have a heap corruption in a .NET/C# program and cannot track it with WinDbg + PageHeap + Application Verifier. In the next step, I plan to use Managed Debugging Assistants (MDAs).

目前我尝试使用这些有关部委:

Currently I try using these MDAs:

<gcManagedToUnmanaged />
<gcUnmanagedToManaged />
<invalidVariant />

(说完这些有关部委启用,使运行非常缓慢的程序。)

(Having these MDAs enabled makes the program run very slowly.)

是否还有其他我能在这种情况下,尝试?

Are there any other I can try in this case?

推荐答案

正如汉斯帕桑特指出,主要的MDA这样的情况下,将&LT; gcUnmanagedToManaged&GT; 。然而,这MDA使得运行速度非常缓慢的程序。事实上,程序变得不可用(需要永远绘制程序接口),因此它不会在生产工作。视觉上这MDA是因为GCStress慢。

As Hans Passant pointed out, the primary MDA for such cases would be <gcUnmanagedToManaged>. However, this MDA makes the program run very slow. Actually, the program becomes unusable (it takes "forever" to draw the program interface), thus it won't work in production. Visually this MDA is as slow as GCStress.

其他有用的有关部委(工作必须更快):

Other useful MDAs (work must faster):

<callbackOnCollectedDelegate />
<invalidOverlappedToPinvoke />
<overlappedFreeError />

要了解更多的有关部委和他们的详细说明,请参阅MSDN文章的的诊断错误与托管调试助手 的。

To learn more about available MDAs and their detailed description, refer to the MSDN article Diagnosing Errors with Managed Debugging Assistants.

如何设置有关部委的一个程序一个很好的文章的的管理在.NET 2.0调试助手 的。

A good article on how to set MDAs for a program is Managed Debugging Assistants in .NET 2.0.

最后,如何激活有关部委在系统中,看到堆栈溢出的问题,.NET/C#:如何设置调试环境变量COMPLUS_HeapVerify?。

And finally, how to activate MDAs in the system, see Stack Overflow question .NET/C#: How to set debugging environment variable COMPLUS_HeapVerify?.

阅读全文

相关推荐

最新文章