* Put as much information as possible into the XML and let the GUIs
decide what to show the user (a.k.a provide mechanism, not policy).
+* Make XML which is actually parseable by standard XML tools.
+
How to use
~~~~~~~~~~
TEXT is arbitrary text.
HEX64 is a 64-bit hexadecimal number, with leading "0x".
+Text strings are escaped so as to remove the <, > and & characters
+which would otherwise mess up parsing. They are replaced respectively
+with the standard encodings "<", ">" and "&" respectively.
+Note this is not (yet) done throughout, only for function names in
+<frame>..</frame> tags-pairs.
+
TOPLEVEL
--------
-All output is contained within the tag-pair <valgrindoutput>.
+
+The first line output is always this:
+
+ <?xml version="1.0"?>
+
+All remaining output is contained within the tag-pair
+<valgrindoutput>.
Inside that, the first entity is an indication of the protocol
version. This is provided so that existing parsers can identify XML
components. The text in them can be anything; it is not intended
for interpretation by the GUI:
- <preamble>Misc version/copyright text</preamble>
+ <preamble>
+ <line>Misc version/copyright text</line> (zero or more of)
+ </preamble>
* The PID of this process and of its parent:
<ip>HEX64</ip>
optionally <obj>TEXT</obj>
optionally <fn>TEXT</fn>
+ optionally <dir>TEXT</dir>
optionally <file>TEXT</file>
optionally <line>INT</line>
</frame>
* fn: gives the name of the function containing the code address
+* dir: gives the source directory associated with the name specified
+ by <file>. Note the current implementation often does not
+ put anything useful in this field.
+
* file: gives the name of the source file containing the code address
* line: gives the line number in the source file
The <name> is as specified in the suppression name fields in .supp
files.
+