Questions tagged [sos]

SOS is a debugger extension that allows a developer to inspect the managed state of a .NET Core and desktop runtime process. SOS can be loaded by WinDbg/cdb debuggers on Windows and lldb on Linux and macOS.

SOS (Son of Strike) is a debugger extension that allows a developer to inspect the managed state of a .NET Core and desktop runtime process. SOS can be loaded by WinDbg/cdb debuggers on Windows and lldb on Linux and macOS.

Useful links:

344 questions
136
votes
4 answers

Unable to load SOS in WinDbg

Background: I'm new to WinDbg and trying to get it running for the first time. I want to examine a memory dump I took from a running ASP.NET 4 site hosted in IIS 7 on Windows Server 2008 (x86) and downloaded to my local machine. I installed the…
Kevin Babcock
  • 10,187
  • 19
  • 69
  • 89
45
votes
3 answers

What's the story behind the name of the SOS (Son of Strike) debugger extension?

What's the significance of the name "Son of Strike"? Does it serve any meaning or does it just sound cool?
Matt B
  • 8,315
  • 2
  • 44
  • 65
44
votes
6 answers

What to do with "The version of SOS does not match the version of CLR you are debugging" in WinDbg?

I'm having a problem with some of my apps. It's a wcf-based app running under IIS6 in Windows 2003 Server (x86): In Event Log I get such an error from "W3SVC-WP" source (EventID=2262): ISAPI…
Shrike
  • 9,218
  • 7
  • 68
  • 105
35
votes
1 answer

What the "EE" means in SOS?

I found "EE" is a magic word for me. Inside CLR, there is a "EEClass", which is created by CLR class loader. And I don't know why it is called EEClass. Now, come to the SOS world, there are more EE here, like EEHeap, EEStack [-EE], Name2EE.... Do…
Tiger.Xing
  • 491
  • 5
  • 14
26
votes
5 answers

Get method name from delegate with WinDbg

I have the following dump of delegate object: Name: MyEventHandler MethodTable: 132648fc EEClass: 1319e2b4 Size: 32(0x20) bytes Fields: MT Field Offset Type VT Attr Value Name 790fd0f0 40000ff 4 …
Tsvetko
  • 263
  • 3
  • 4
19
votes
5 answers

Why can't WinDBG find the mscordacwks.dll?

I'm trying to use WinDBG to analyze a crash dump from one of our production machines. The root of my problem seems to be that I have a different build of the .NET framework than the production machine, only I don't know how to fix the problem. When…
Jonathan Beerhalter
  • 7,229
  • 16
  • 68
  • 78
17
votes
4 answers

WinDbg and SoS, how do I print/dump a large string?

I am debugging a hangdump coming from a production server using WinDbg with the SoS extension. There is a string parameter in one of the stacks, that I need to know the value of. However, it is a rather large string, and WinDbg won't print it when I…
driis
  • 161,458
  • 45
  • 265
  • 341
17
votes
2 answers

Use WinDbg to Write Contents of Managed Byte[] to File

I have a crash dump from a production server that shows an OutOfMemoryException. The exception itself is not relevant here. I happened to run a !dso to view the stack objects: 0:042> !dso OS Thread Id: 0x1014 (42) ESP/REG Object Name 246eeb24…
Paul Williams
  • 16,585
  • 5
  • 47
  • 82
17
votes
4 answers

Can I run a .NET garbage collection from WinDbg?

I'm looking into why a managed process is using a lot of memory. Is there a way to run GC.Collect(3) from WinDbg, so that I can focus on the actual memory allocation?
Roger Lipscombe
  • 89,048
  • 55
  • 235
  • 380
16
votes
4 answers

Understanding CLR object size between 32 bit vs 64 bit

I am trying to understand the object size difference between 32 bit and 64 bit processors. Let’s say I have a simple class class MyClass { int x; int y; } So on a 32 bit machine, an integer is 4 bytes. If I add the Syncblock…
imak
  • 6,489
  • 7
  • 50
  • 73
14
votes
2 answers

WinDbg/SOS: Explanation of !SyncBlk output

I am looking of a description of the output generated by the !SyncBlk command of SOS. Particularly I found no useful explanation on the column "MonitorHeld". This column shows high values in a series of crash dumps. Example: 0:000> !SyncBlk Index …
Alex
  • 1,997
  • 1
  • 16
  • 31
14
votes
1 answer

Failed to load data access DLL, 0x80004005

0:025> !pe Failed to load data access DLL, 0x80004005 Verify that 1) you have a recent build of the debugger (6.2.14 or newer) 2) the file mscordacwks.dll that matches your version of mscorwks.dll is in the version…
C.C.
  • 1,060
  • 3
  • 13
  • 25
13
votes
1 answer

How to find what is in unmanaged memory in Dump by WinDBG

I run for Dump File in WinDbg command !address -summary I results are something like this Usage Summary RgnCount Total Size %ofBusy %ofTota Free 3739 7ff5`dbbae000 ( 127.960 Tb) 99.97%
justromagod
  • 933
  • 9
  • 20
13
votes
1 answer

Cannot switch to managed thread in WinDbg

I am exploring a minidump of an ASP.NET process with WinDbg, using SOS. If I list the managed threads I see a normal looking list of threads: 0:000> !threads ThreadCount: 8 UnstartedThread: 0 BackgroundThread: 8 PendingThread: 0 DeadThread: 0 Hosted…
andypaxo
  • 6,171
  • 3
  • 38
  • 53
12
votes
5 answers

How does the Garbage Collector decide when to kill objects held by WeakReferences?

I have an object, which I believe is held only by a WeakReference. I've traced its reference holders using SOS and SOSEX, and both confirm that this is the case (I'm not an SOS expert, so I could be wrong on this point). The standard explanation of…
Kennet Belenky
  • 2,755
  • 18
  • 20
1
2 3
22 23