按版本号下载SOS.dll

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按版本号下载SOS.dll相关的知识,希望对你有一定的参考价值。

我有一个需要SOS.dll 4.0.30319.1008的迷你转储,但是winDBG无法下载正确的dll。符号路径已设置为SRV*C:symcache*http://msdl.microsoft.com/download/symbols

有没有人知道在哪里下载SOS.dll提供版本号?我决定手动下载DLL并将其替换为Windows下的Microsoft.net折叠。

答案

更新:I published a blog post on how to open snapshots collected on other machines


如果您没有目标计算机所需的SOS和CLR程序集,请尝试执行以下步骤:

  • .sympath c: symbols // [setSymPath]
  • .symfix + // [尝试下载所需的程序集。这将是第一次需要多年
  • .cordll -ve -u -l //尝试自动加载所需的程序集
  • .reload //只是在案件中

如果它不起作用[罕见情况],则执行一系列步骤:

  1. SOS CLR程序集包含在Microsoft更新中,因此您需要提取目标计算机上安装的相同更新(捕获memery转储的位置)。这是一个回购链接:http://www.mskbfiles.com/sos.dll.php
  2. 下载所需的更新并解压缩几次[f.e.您将获得'GDRGDR.cab'和'QFEGDR.cab'文件 - >解压缩它们]
  3. 生成的文件夹将需要名为like的程序集:'clr_dll_amd64' - >应重命名为clr.dll
  4. 您需要找到所需的(CPU架构,位数很重要)
  5. 你可以使用.load c: mytempfolder NDP40-KB2835393-x64 QFEGDR sos将它加载到Windbg中[只有精确的汇编匹配才有效]
  6. 加载文件后,请使用.reload命令

希望这有助于=)

另一答案

我没有详细调查过,但是如果输入!analyze -v,似乎WinDbg会为.NET转储下载SOS.dll。此外,当您进行转储分析时,DebugDiag 似乎加载SOS.dll。

如果所有选项均无效,请在创建转储的计算机上运行Mscordacwkscollector

我还维持一个archive of debugging DLLs

以上是关于按版本号下载SOS.dll的主要内容,如果未能解决你的问题,请参考以下文章

WinDbg 无法加载 SOS.dll

windebug

详细说说在Vistual studio IDE里使用SOS.dll扩展调试程序

WinDbg 加载 dotnet core 的 sos.dll 辅助调试方法

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段

通过 Java 正则表达式提取 semver 版本字符串的片段