分析内存转储以查找内存泄漏。

5
我们有一个C# .NET应用程序,其中存在内存泄漏问题。我使用procdump从正在运行的应用程序实例中获取了内存转储,该应用程序是在生产机器上运行的32位Windows XP和.NET 4.0。exe配置设置为.NET 4.0。
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />

当我将转储文件传到我的 Windows 8.1 64bit 开发机并使用 VS 2013 打开时,转储文件一开始能够正常打开。但是,当我点击“调试托管内存”操作时,会出现以下错误消息:
“此进程中使用的 CLR 版本不支持内存分析。”
我对在 Windows 和托管内存环境中排除内存泄漏问题很陌生,也不了解相关工具。我在谷歌上搜索了这个错误,但没有找到任何有用的结果。希望您能提供帮助。如果我遗漏了什么显而易见的东西,请见谅 - 我只是初级开发人员 :-)

你有什么证据表明存在内存泄漏? - hatchet - done with SOverflow
2
收集转储文件的进程必须在.NET 4.5或更高版本上运行。-请参见此处 - Mike Zboray
3个回答

2

1

看这个链接,它只适用于运行在 .Net 4.5 下的进程。

在开始之前,有几件事情需要注意本文中讨论的“调试托管内存”功能:

  1. 该选项仅在 Visual Studio 2013 的旗舰版的转储摘要页上可用。如果您使用的是高级版或专业版,则不会看到该选项
  2. 收集转储文件的进程必须在 .NET 4.5 或更高版本上运行。如果转储是在 3.5 或之前收集的,则该选项将不会出现;如果转储是在 4.0 上收集的,则会失败并显示错误消息。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接