我不确定 windbg 是正确的工具,但这就是我现在正在尝试的
我的 asp.net 应用程序似乎有内存泄漏,几乎每次加载页面时它都会继续增长大约 3 MB(然后它又回落......)
我想读取整个进程内存并准确查看存储的内容是不必要的。
所以我运行windbg,附加到webserver40.exe进程
然后我尝试
.loadby sos clr
我得到
调用 LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos) 失败,Win32 错误 0n193
“%1 不是有效的 Win32 应用程序。”
请检查您的调试器配置和/或网络访问。
似乎我在 Framework AND Framework64 中有这个 sos.dll
我尝试使用
.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos
但没有任何负载
我不明白为什么它要寻找一个有效的 32 位应用程序。我在带有 64 位 Windows 的 64 位 PC 上。
我怎样才能加载这个 sos 的东西?
此外,当我开始时,我收到此警告
警告:进程 7240 未作为调试对象附加
可以检查进程,但不会收到调试事件
我也试过
loadby sos mscorwks
它没有用,但我知道它已经停产了。我在asp.net 4我还在某处读到在加载 sos 之前应该在调试中停止代码,这只是挂起 VS 2010。
非常感谢你。
再说一次,如果有另一种工具可以更好地帮助我,我会全力以赴:-)
最佳答案
WebDev.WebServer40.exe 是 32 位可执行文件。要调试您需要使用 32 位 WinDbg。 Visual Studio 以及 Callipso 服务器仍在 32 位模式下执行。
对于你的另一个问题。是的,WinDbg 是一个很好的工具来调查托管代码中的内存泄漏。 This blog 会让你开始。但是,在您的情况下,我不太确定您是否存在内存泄漏。
关于asp.net - windbg 无法加载 sos clr,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7298651/