Unable to load SOS in WinDbg

Deadly 提交于 2019-11-27 05:52:20
Brian Rasmussen

The CLR runtime dll was renamed to clr.dll with .NET 4. So in order to load the correct version of SOS you need to adjust your .loadby command. I.e.

.loadby sos clr

Also, if you're on 64 bit, you should install the 32 bit version of Debugging Tools for Windows as well in order to debug 32 bit apps. They install side-by-side, so there's no problem in having both the 32 bit and the 64 bit version on the same machine.

I would advice against copying SOS.dll. SOS needs to match the exact version of the framework, so as long as you load it from the framework directory using .loadby, you're all set.

The WinDbg command 'g' means [Continue]

Since you're opening a dump-file there is no way to 'continue', it only contains the process memory.

So the message " No runnable debuggees error in 'g' " is logical in your case since the process is not running.

Concerning loading the correct version of SOS use the following command depending on the .NET version.

.NET 4 and higher .loadby sos

.NET 3.5 and 2 .loadby sos mscorwks

.NET 1.0 and 1.1 .load clr10\sos

Denis

Just came across a similar issue loading SOS and was getting "specified module could not be found". Came up with a different solution so if the solutions here don't help you, try this out:

.loadby sos clr - specified module could not be found

Answers above need improvement, since over the course of time things has been easier to handle sos loading.

JOHN ROBBINS has nice article around it, See that Microsoft symbol servers are configured in symbol file path and run !analyze -v on windbg prompt, this will do the trick it will download relevant sos files. To verify run .chain on the prompt and you will see the loaded dll.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!