I am using ClrMd to examine memory in a C# app and successively created a runtime object on a process. I use the runtime object to call EnumerateObjects(). This returns a collection of ulongs that are references to all the objects on the heap. If the reference is to a string, I have no problem reconstituting the string using the ClrType GetValue(). However, when I call GetValue() on a reference to other objects, GetValue returns what appears to be another reference (i.e. ulong).
Do I need to execute some kind of C# unsafe code? By the way, I get the same result with EnumerateObjectAddresses() (is there a difference between the two?)