无法打开 HDMP 文件
Cannot Open HDMP File
我在 Windows 服务器 运行 上有一个 C# 应用程序 运行 作为服务。我最近在应用程序中引入了内存泄漏,它已经崩溃了几次 OutOfMemoryException
s。这些崩溃生成了 WER 报告和转储文件。有两个转储文件,triage.dmp 和 memory.hdmp。我可以很好地打开 triage.dmp 并查看线程状态,但它没有关于应用程序内存的任何信息。我想打开 memory.hdmp 但我不能,同时使用 Visual Studio 和 Windbg 我收到一条错误消息,指出文件已损坏。多个 memory.hdmp 个文件都发生了这种情况。
打开这些文件是否有技巧,或者它们实际上已损坏?如果是,Windows 是否需要一些配置来生成有效的 hdmp 文件? memory.hdmp 是否有调试内存泄漏所需的信息?
在此先感谢您的帮助!
使用Windbg,hdmp文件一般是出现un-handled异常时WER收集的全内存转储。您可能需要使用
下载调试器
Getting windbg without the whole WDK?
如果这是基于 .NET 的托管应用程序,一旦您设置了默认符号路径
!pe -nested
应该向您展示异常链。如果你真的想要记忆,那么使用
!EEHeap -gc
如果你想挖掘特定类型消耗的内存
!DumpHeap -stat
对于本机用户模式堆,您可以 运行
!address -summary
有关堆的详细信息
!heap -a
针对特定堆
!heap -x
我想我错过了 windbg 方面。调试诊断或 procdump 可以帮助收集有效的故障转储。
Procdump -e -w -ma(进程名)/pid
应该可以解决问题。
您也可以使用 procdump 来替代 wer
Procdump -ma -i
阅读更多@https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx
希望对您有所帮助
我在 Windows 服务器 运行 上有一个 C# 应用程序 运行 作为服务。我最近在应用程序中引入了内存泄漏,它已经崩溃了几次 OutOfMemoryException
s。这些崩溃生成了 WER 报告和转储文件。有两个转储文件,triage.dmp 和 memory.hdmp。我可以很好地打开 triage.dmp 并查看线程状态,但它没有关于应用程序内存的任何信息。我想打开 memory.hdmp 但我不能,同时使用 Visual Studio 和 Windbg 我收到一条错误消息,指出文件已损坏。多个 memory.hdmp 个文件都发生了这种情况。
打开这些文件是否有技巧,或者它们实际上已损坏?如果是,Windows 是否需要一些配置来生成有效的 hdmp 文件? memory.hdmp 是否有调试内存泄漏所需的信息?
在此先感谢您的帮助!
使用Windbg,hdmp文件一般是出现un-handled异常时WER收集的全内存转储。您可能需要使用
下载调试器Getting windbg without the whole WDK?
如果这是基于 .NET 的托管应用程序,一旦您设置了默认符号路径
!pe -nested
应该向您展示异常链。如果你真的想要记忆,那么使用
!EEHeap -gc
如果你想挖掘特定类型消耗的内存
!DumpHeap -stat
对于本机用户模式堆,您可以 运行
!address -summary
有关堆的详细信息
!heap -a
针对特定堆
!heap -x
我想我错过了 windbg 方面。调试诊断或 procdump 可以帮助收集有效的故障转储。
Procdump -e -w -ma(进程名)/pid
应该可以解决问题。
您也可以使用 procdump 来替代 wer
Procdump -ma -i
阅读更多@https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx
希望对您有所帮助