Debugging memory dumps are also known as Post-mortem debugging and the reason for this is simple. Memory dumps are just a snapshot of the process memory (in case of usermode dumps) and not live at the time of debugging thus the term 'post-mortem'.

While working on Debug Analyzer.NET I was hunting for coolness, things which were never done before and thought it would be ultra-cool to give life to objects in the dumps.
Let me explain! Assume that you have a DateTime field for a class and available in the memory dumps. You would like to do some comparison or manipulation of that object, like we do with live objects.

It would be very useful if we can utilize methods provided by .NET for that type of object to ease manipulation... isn't it?
So here it is, the power to give life to objects from the dumps!!!

Let's see a System.DateTime object in Windbg + SOS

[*** Dump one of the System.DateTime object ***]
0:013> !do 0707e980 
Name: System.DateTime
MethodTable: 0f310010
EEClass: 0f3085d8
Size: 16(0x10) bytes
 (C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll)
Fields:
      MT    Field   Offset                 Type VT     Attr    Value Name
0f344060  40000f4        4        System.UInt64  1 instance 633988790520830000 dateData

 

Now give life to the dead object using Debug Analyzer.NET !!!

string someAddress = "0707e980";
// ConvertTo is a generic method which supports a number of different .NET types
DateTime datetime = someAddress.ToClrObject().ConvertTo<System.DateTime>();

// You can also do this since ToClrObject is an Extension method for string type
DateTime datetime = "0707e980".ToClrObject().ConvertTo<System.DateTime>();

 

Let's see the advantage... the object is alive which means you have all the methods and properties .NET provides for that object type.

System.DateTime ConvertTo

Check method ClrExtMethods.ConvertTo in help for supported types. More support for types coming sooooon...

Note: Please use comments to suggest the types you think would be useful!