gpt4 book ai didi

asp.net - WinDBG - 分析本地 PC 上的转储文件

转载 作者:行者123 更新时间:2023-12-01 14:07:45 27 4
gpt4 key购买 nike

我使用以下命令在服务器上创建了 ASP.NET 进程的内存转储:.dump/ma mydump.dmp。我正在尝试识别内存泄漏。

我想在本地开发 PC 上更详细地查看转储文件。我在某处读到,建议在创建转储文件的同一台机器上进行调试。但是,我也了解到一些开发人员在他们的本地开发 PC 上分析转储文件。什么是最好的方法?

我注意到,当我使用上面的命令创建转储文件时,W3WP 进程内存增加了大约 1.5 倍。为什么这个这个?我想在实时服务器上应该避免这种情况。

最佳答案

在同一台机器上进行分析可以避免此后出现 SOS 加载问题。除非您熟悉 WinDbg 和 SOS,否则您会发现它令人困惑和沮丧。

如果您必须使用另一台机器进行分析,请务必仔细阅读这篇博文,http://blogs.msdn.com/b/dougste/archive/2009/02/18/failed-to-load-data-access-dll-0x80004005-or-what-is-mscordacwks-dll.aspx因为它向您展示了如何将必要的文件从源机器(捕获转储的地方)复制到目标机器(您启动 WinDbg 的机器)。

对于你的第二个问题,由于你使用WinDbg直接附加到进程,并使用.dump命令捕获转储,不幸的是目标进程被修改了。不容易三言两语说明。推荐的方法是使用 ADPlus.exe 或 Debug Diag。甚至来自 SysInternals 的 procdump 也更好。这些工具专为转储捕获而设计,它们对目标进程的影响最小。

对于非托管库的内存泄漏,您应该使用 Debug Diag 的内存泄漏规则。对于托管内存泄漏,您可以在内存使用率高时简单地捕获挂起转储。

关于asp.net - WinDBG - 分析本地 PC 上的转储文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11494857/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com