0

When I try to use windbg,

.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll 

works perfectly to load SOS extension.

But when I tried to used the suggested pattern

.loadby SOS

OR

.loadby sos.dll

I could only got a error message saying "Syntax error in extension string".

I tried to googled this error message, but nothing useful found.

Any suggestions ?

Thomas Weller
  • 55,411
  • 20
  • 125
  • 222
Tiger.Xing
  • 491
  • 5
  • 14

1 Answers1

5

.loadby needs another argument to define where by is. From WinDbg help:

.loadby DLLName ModuleName

DLLName
Specifies the debugger extension DLL to load. If you use the .load command, DLLName should include the full path. If you use the .loadby command, DLLName should include only the file name.

ModuleName
Specifies the module name of a module that is located in the same directory as the extension DLL that DLLName specifies.

So try

.loadby sos mscorwks ; *** .NET 2
.loadby sos clr ; *** .NET 4
.loadby sos coreclr; *** Silverlight

Note that in some cases it may be impossible for .loadby to find out the full path of the by module, e.g. if the dump was created without full path names (.dump /maR). In that case you have to go back to .load.

Thomas Weller
  • 55,411
  • 20
  • 125
  • 222
  • 1
    Included in the answer, even adding Silverlight – Thomas Weller Sep 19 '14 at 09:33
  • when I try to run ".loadby sos clr", here is what I got: The call to LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos) failed, Win32 error 0n193 "%1 is not a valid Win32 application." Please check your debugger configuration and/or network access. – Tiger.Xing Sep 19 '14 at 11:08
  • 1
    Make sure that you are using the same bit version of WinDbg as your application. Both should match. So if your application is 64-bit, then use 64-bit version of WinDbg. Or if it is 32-bit, use the 32-bit version of WinDbg. – Dono Sep 19 '14 at 11:13
  • Thanks dono, you are correct that I mis-matched the bit version – Tiger.Xing Sep 19 '14 at 11:20