string IObjectDataTypeFormatter.Format(CachedSnapshot snapshot, ObjectData od, IDataFormatter formatter) { if (od.dataIncludeObjectHeader) { od = od.GetBoxedValue(snapshot, true); } return(formatter.Format(od.managedObjectData.ReadString())); }
public string Format(ObjectData od, IDataFormatter formatter, bool objectBrief = true) { switch (od.dataType) { case ObjectDataType.BoxedValue: return(FormatValueType(od.GetBoxedValue(m_Snapshot, true), formatter, objectBrief)); case ObjectDataType.Value: return(FormatValueType(od, formatter, objectBrief)); case ObjectDataType.Object: return(FormatObject(od, formatter, objectBrief)); case ObjectDataType.Array: return(FormatArray(od, formatter)); case ObjectDataType.ReferenceObject: { ulong ptr = od.GetReferencePointer(); if (ptr == 0) { return(FormatPointer(ptr)); } else { var o = ObjectData.FromManagedPointer(m_Snapshot, ptr); return(FormatObject(o, formatter, objectBrief)); } } case ObjectDataType.ReferenceArray: { ulong ptr = od.GetReferencePointer(); if (ptr == 0) { return(FormatPointer(ptr)); } var arr = ObjectData.FromManagedPointer(m_Snapshot, ptr); return(FormatArray(arr, formatter)); } case ObjectDataType.Type: return(m_Snapshot.typeDescriptions.typeDescriptionName[od.managedTypeIndex]); case ObjectDataType.Global: return("<global>"); case ObjectDataType.NativeObject: return(FormatPointer(m_Snapshot.nativeObjects.nativeObjectAddress[od.nativeObjectIndex])); default: return("<uninitialized type>"); } }