Half the battle when tracking down memory problems in a .NET application is seeing the reference chain so you can see why an object is still in use. You can use SOS and its !gcroot command to track them down, but that can bring new definitions to tedious. If there were only away to see all the data that !gcroot pumps out graphically….

Chris Lovett had a brilliant idea: why not use the cool new Directed Graph Markup Language (DGML) to show the output of !gcroot? Chris recorded a video to show you how to use his GCRootToDGML tool. Being able to see your references opens up all sorts of interesting analysis you can do as to who’s holding onto your objects. Not only does DGML make things simple, they are artistic. The last view in Chris’ video has a Zen quality to it.

Now my mind is spinning on all sorts of other analysis tools we can do with DGML.

Hat tip to Rick Byers for letting me know about Chris’ idea.