If the the dump loads, but is not drawn, the probably cause is that there are too many objects. At present the code can handle up to aroung 500. So small console apps are ok, but large windows forms apps will be too much.
The graph shows a snap shot of the managed heap. Instance objects are represented with a piece of text declaring their class type. At present this is not confined to the source code you write, but also includes objects created by MsBuild, and other under the hood C# stuff. For instance there is an array of strings which may be a string interning pool.
The lines show references from one object to another. I.e. they connect the reference variable field of one object to the actual object to which it refers, or rather to a circle around it. By looking at which end of the line has the circle you can tell the direction of the reference - which object is referring to which. The lines are translucent, so reference lines where each object refers to the other are darker. The circles are darker where more than one object refers to the circled object.
Red lines come from objects that are immediately rooted in the stack. Green lines come from objects that have no listed parent in the dump. You can see some example screenshots here.
.load sos
This should load Son of Strike, and you should see this affirmation:
extension C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll loaded
Once Son of Strike is loaded, type in the command:
!traverseheap –xml yourFilepath
, specifying a valid filepath, filename and .xml extension as the last argument, e.g.:
c:\myDump.xm
You should see this affirmation:
Assuming a uncorrupted GC heap. If this is a crash dump consider -verify option
Writing Xml format to file c:\myHeap.xml
Gathering types...
tracing roots...
Walking heap...
...............................................................
file c:\myDump.xml saved
traverseheap
command more than one time without reloading Son of Strike. If you experience this try re-running the .load sos command
, then the !traverseheap command immediately after.
Shift + UP = forward Shift + DOWN = back Shift + LEFT = left Shift + RIGHT = right UP, DOWN, LEFT, RIGHT = rotate about x and y axes
Nick Boon 2015 boonnick@hotmail.com