asp.net - windbg 无法加载 sos clr

标签 asp.net debugging memory windbg sos

我不确定 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会让你开始。但是,在您的情况下,我不太确定您是否存在内存泄漏。

  • 你是说内存最终会下降。这意味着这不是内存泄漏,因为泄漏的内存永远不会被释放。
  • 不要浪费时间调查 Callipso 中的内存问题。 IIS 和 Callipso 之间存在很多差异,这会使您的发现不适用于生产环境。即使您发现 Callipso 实际上正在泄漏,也不意味着 IIS 会泄漏。
  • 关于asp.net - windbg 无法加载 sos clr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7298651/

    相关文章:

    c# - 使用 ASP.NET 生成可以在 Android 上下载的 vCard

    javascript - 取消隐藏 <asp :Panel> using javascript

    ruby-on-rails-3 - Ruby 调试器在 Windows 上崩溃

    debugging - 如何在Meteor应用中调试服务器端代码

    c# - DropDownList 未在 ASP.NET MVC 中填充正确的值

    c# - 在asp.net c# 中禁用RequiredFieldValidator

    java - 如何在 Java API 中进行代码调试 - 编程风格

    c - 如何释放内存并同时返回指针?

    c++ - 如何检查我的 C++ 程序在内存中的增长状态?

    windows - 识别内存映射文件