gdb: Traceframe Info Format

 
 E.18 Traceframe Info Format
 ===========================
 
 To be able to know which objects in the inferior can be examined when
 inspecting a tracepoint hit, GDB needs to obtain the list of memory
 ranges, registers and trace state variables that have been collected in
 a traceframe.
 
    This list is obtained using the 'qXfer:traceframe-info:read' (See
 qXfer traceframe info read) packet and is an XML document.
 
    GDB must be linked with the Expat library to support XML traceframe
 info discovery.  SeeExpat.
 
    The top-level structure of the document is shown below:
 
      <?xml version="1.0"?>
      <!DOCTYPE traceframe-info
                PUBLIC "+//IDN gnu.org//DTD GDB Memory Map V1.0//EN"
                       "http://sourceware.org/gdb/gdb-traceframe-info.dtd">
      <traceframe-info>
         block...
      </traceframe-info>
 
    Each traceframe block can be either:
 
    * A region of collected memory starting at ADDR and extending for
      LENGTH bytes from there:
 
           <memory start="ADDR" length="LENGTH"/>
 
    * A block indicating trace state variable numbered NUMBER has been
      collected:
 
           <tvar id="NUMBER"/>
 
    The formal DTD for the traceframe info format is given below:
 
      <!ELEMENT traceframe-info  (memory | tvar)* >
      <!ATTLIST traceframe-info  version CDATA   #FIXED  "1.0">
 
      <!ELEMENT memory        EMPTY>
      <!ATTLIST memory        start   CDATA   #REQUIRED
                              length  CDATA   #REQUIRED>
      <!ELEMENT tvar>
      <!ATTLIST tvar          id      CDATA   #REQUIRED>