Allinea Distributed Debugging Tool Export File Formats

1 File Formats

1.1 Comma Separated Values (CSV)

Comma separated values (CSV) files follow the definition found in Internet Engineering Task Force (IETF) Request for Comments (RFC) 1480, with the following exception:

The text of RFC 1480 may be found on the following web page:

http://tools.ietf.org/html/rfc4180

The codeset/encoding depends on the values of the LANG and LC_CTYPE environment variables (specified in the Single UNIX Specification Version 3 published on the following web page:

http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap08.html#tag_08_02)

1.2 Hierarchical Data Format v5 (HDF5)

Hierarchical Data Format v5 (HDF5) files follow the HDF5 File Format Specification Version 2.0 as found at the following web site:

http://www.hdfgroup.org/HDF5/doc/H5.format.html

1.3 Extensible Markup Language (XML)

Extensible Markup Language (XML) files follow the Extensible Markup Language (XML) 1.0 (Fifth Edition) specification found on the following web page:

http://www.w3.org/TR/REC-xml/

1.4 Plain Text

Plain text files use a line feed character (LF) to denote a new line.

The codeset/encoding depends on the values of the LANG and LC_CTYPE environment variables (specified in the Single UNIX Specification Version 3 published on the following web page:

http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap08.html#tag_08_02)

2 Common Data Types

2.1 Compact Integer Set

When DDT is displaying or exporting a textual representation of a set of processes it isn't feasible to list each process individually when the set cardinality is large. Instead DDT uses a compact integer set representation. This consists of zero or more integer distinct ranges represented by FROM-TO. If FROM and TO are the same then the -TO may be omitted. The distinct ranges are separated by commas.

Examples:

0-3,7-17

represents processes 0,1,2,3,7,8,9,10,11,12,13,14,15,16,17.

0-9,22,26-28,100

represents processes 0,1,2,3,4,5,6,7,8,9,22,26,27,28,100.

3 Schema

3.1 Multi-Dimensional Array (MDA) Viewer

The MDA viewer always exports the view of the data as configured by the user. To export the whole of an array the view must match the layout of the array. Right-clicking on a variable and selecting View Array (MDA) will automatically configure the view to match the array. Because the HDF5 format uses row major format for datasets and Fortran uses column major format for arrays it is not possible to export a Fortran array in HDF5 format 'as-is' – the rows and columns must first be swapped.

3.1.1 Comma Separated Values (CSV)

  1. No optional header line.

  2. View is exported as a two-dimensional table with the same layout as that seen on the screen.

  3. Filtered values are exported as empty strings ("").

3.1.2 Hierarchical Data Format v5 (HDF5)

  1. Element type must be a basic scalar type (int, double, INTEGER, REAL, etc.), not a composite type, pointer, reference or string.

  2. View is exported as an N-dimensional dataset, according to the dimensions set by the user.

  3. Filtered values are not included in the file (i.e. the file is sparse).

3.2 Parallel Stack View (PSV)

3.2.1 Comma Separated Values (CSV)

  1. Header line with the column headings (Depth, Processes, Threads and Function).

  2. Columns hidden on screen are not exported.

  3. Table is exported 'as-is'.

  4. Depth column is the depth of the stack frame (and depth in the PSV tree view).

  5. Processes column is the number of processes with the given frame on the stack of one or more of their threads at depth Depth.

  6. Threads column is the number of threads with the given frame on their stack at depth Depth.

  7. Function column is the function corresponding to the given stack frame. It consists of the function name, optionally followed by (file:line), if available.

3.2.2 Extensible Markup Language (XML)

  1. Document Type Definition (DTD) may be found in doc/stacks.dtd.

  2. The nesting of the frame elements is in one-to-one correspondence with the tree view.

3.3 Cross Process Comparison (CPC)

3.3.1 Comma Separated Values (CSV)

  1. Header line with the column headings (Value and Processes).

  2. Table is exported 'as-is'.

  3. Value column is free form. Each row contains one of the unique values the specified expression takes across all the specified processes.

  4. Processes column is a compact integer set of the processes for which the specified expression evaluates to value Value.


doc/stacks.dtd

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE stacks [
  <!ELEMENT stacks       (frame*)>
  <!ELEMENT frame        (position,frame*)>
  <!ELEMENT position     (function?,(file,line)?)>
  <!ELEMENT function     (#PCDATA)>
  <!ELEMENT file         (#PCDATA)>
  <!ELEMENT line         (#PCDATA)>
  <!-- processes is a compact integer set.
       Examples:
       0-3,7-17
       0-9,22,26-28,100
       Regular expression:
       (\d+(-\d+)?)+(,(\d+(-\d+)?))*

       threads is a compact integer tuple set.
       A.B-C.D is the set of threads B-D from processes A-C.
       Examples:
       0.0-3.7,7.0-17.7
       0.0-9.2,22.0-22.2,26.0-28.2,100.0-100.2
       Regular expression:
       (\d+\.\d+(-\d+\.\d+)?)+(,(\d+\.\d+(-\d+\.\d+)?))*

       Alternatively only the process and thread counts may be included.
       DDT outputs the processes and threadcount attributes.
  -->
  <!ATTLIST frame 
   processes    CDATA    #IMPLIED
   threads      CDATA    #IMPLIED
   processcount CDATA    #IMPLIED
   threadcount  CDATA    #IMPLIED
  >
]>