windbg cant load sos clr

Yis*_*ski 4 memory asp.net debugging windbg sos

我不确定windbg是否是正确的工具,但这就是我现在正在尝试的

我的asp.net应用程序似乎有一个内存泄漏,几乎每次页面加载时它都会继续增长大约3 MB(然后它又会回落......)

我想阅读整个进程内存,看看存储的确切内容是不必要的.

所以我运行windbg,附加到webserver40.exe进程

然后我试试

.loadby sos clr
Run Code Online (Sandbox Code Playgroud)

我明白了

对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
Run Code Online (Sandbox Code Playgroud)

但没有任何负担

我不明白为什么它寻找一个虚拟32位应用程序.即时通讯64位PC,64位窗口.

如何加载这个sos的东西?

当我开始时,我得到这个警告

警告:进程7240未作为调试对象附加可以检查进程,但不会收到调试事件

我也尝试过loadby sos mscorwks它不起作用,但据我所知,已停止使用.我在asp.net 4

我还在某处读到了代码应该在加载sos之前在调试中停止,这只是挂起VS 2010.

非常感谢你.

再说一次,如果有另一种工具可以更好地帮助我,我全都耳朵:-)

sev*_*tov 5

WebDev.WebServer40.exe是一个32位可执行文件.要调试你需要使用32位WinDbg.Visual Studio以及Callipso服务器仍在32位模式下执行.

对于你的其他问题.是的,WinDbg是一个很好的工具来调查托管代码中的内存泄漏.这个博客将帮助您入门.但是在你的情况下,我不会确定你有内存泄漏.

  • 你说最终内存会下降.这意味着它不是内存泄漏,因为泄漏的内存永远不会被释放.
  • 不要浪费你的时间调查Callipso中的内存问题.IIS和Callipso之间存在很多差异,这会使您的发现不适用于生产环境.即使您发现Callipso实际上泄漏并不意味着IIS会.

  • 在安装Windows调试工具时,我能够找到两个版本的WinDbg http://msdn.microsoft.com/en-us/windows/hardware/gg463016.在该下载页面上,您将找到有关选择调试工具的说明.您将需要使用第二个选项:`选择*Redistributable Packages*下的*Debugging Tools*选项以下载调试工具的所有三个版本(x86,x64,Itanium). (4认同)