Asp.net DebugDiag:如何手动注入LeakTrack.dll

Asp.net DebugDiag:如何手动注入LeakTrack.dll,asp.net,.net,memory-leaks,crash-dumps,debugdiag,Asp.net,.net,Memory Leaks,Crash Dumps,Debugdiag,我有一个来自生产部门的崩溃转储来识别内存泄漏。当我使用DebugDiag(v2update2)时,我得到一个报告 DebugDiag没有检测到w3wp.DMP中加载的LeakTrack.dll,因此没有泄漏 对该文件进行了分析。如果您正在排除故障 内存泄漏,请确保将LeakTrack.dll注入目标 在生成新转储之前使用DebugDiag工具进行处理 。我找不到从DebugDiag UI注入LeakTrack.dll的方法,或者在阅读文档之后。如何手动注入LeakTrack.dll?在调试诊断安

我有一个来自生产部门的崩溃转储来识别内存泄漏。当我使用DebugDiag(v2update2)时,我得到一个报告

DebugDiag没有检测到w3wp.DMP中加载的LeakTrack.dll,因此没有泄漏 对该文件进行了分析。如果您正在排除故障 内存泄漏,请确保将LeakTrack.dll注入目标 在生成新转储之前使用DebugDiag工具进行处理


。我找不到从DebugDiag UI注入LeakTrack.dll的方法,或者在阅读文档之后。如何手动注入LeakTrack.dll?

在调试诊断安装文件夹中,应该有一个
DebugDiag.Collection.exe
。如果运行它,请选择“取消”,然后切换到“进程”选项卡。选择您的流程,然后从关联菜单中选择“监控泄漏”。这将注入DLL


您建议的方式要求我在客户的机器上安装debugdiag并转储。看起来有一种方法可以将LeakTrack.dll注入已获取的转储。这正是我想知道的。@frosty:将DLL注入转储绝对是不可能的。这只有在运行时才可能,即使可能,也没用,因为它不能再做任何事情了。该DLL被注入到正在运行的进程中,因为它应该做一些需要CPU指令的事情。转储不能再提供CPU时间。@ThomasWeller您知道为什么DebugDiag不允许为尚未启动的进程设置内存泄漏规则吗?为什么它要求它首先运行?在记录了我想要监视的EXE的详细信息后,它不能注入DLL吗?@ForverLearning:我不知道为什么这样的功能不可用,我只能猜测。DebugDiag和LeakTrack.dll非常具有侵入性。我想如果希望在应用程序启动时发现内存泄漏,可以使用UST(用户模式堆栈跟踪数据库,可以通过GFlags启用)和UMDH。