A
system and method, useful in tracing program execution, for serializing data, such as an object data, into consistent, structured (e.g.,
XML) output. A
serializer processes an object's data, and for each set of data, records the object's data in a structured (e.g.,
XML) format that reflects the object's current state. Nodes corresponding to fields and properties of the object are nested in the structure. Simple types define nodes with the current
data value associated with the tag. More complex types including arrays, collections, dictionaries and exceptions are stored as individual members of a type, with any complex members further broken down into sub-nodes. Object data including custom collections, dictionaries, non-public fields and properties and properties with only get-accessor are serialized. The resulting output, such as in an
XML formatted structure, is easy to read by humans, and is easily processed, such as for automated analysis purposes.