The -read, -write, -execute flags can be set to only trace specific accesses. The -inquiry flag can be used to trace inquiry accesses as well. Every access is traced by default but with inquiry switched off.
For each access the following trace format will used: [Initiator] [recursion level] -> (Map-Target-Type) Map-Target-Object [I] [Type] Size Data-Bytes Exception Atoms. The Initiator is the object that initiated the transaction from the beginning. "Unknown" is printed if the initiator cannot be identified. The Map-Target-Object is to which object the map target maps to.
The arrow indicates if the transaction is on its way to the map target (before context). An opposite left arrow is printed if the transaction is leaving the map target (after context).
I is displayed if the transaction is an inquiry access. Type will be either Execute, Read, or Write. Size is the size of the transaction in bytes and Data-Bytes is the raw content in bytes displayed in hexadecimal numbers, with little endian byte-order. Data bytes are only displayed for ram, port, io, and transaction map targets. For writes, data is written before the transaction is issued, and for reads/executes after the transaction has hit the destination object, otherwise the data in the transaction can be filled with garbage. When data is not displayed, "--" is written instead.
An exception code will be printed if an exception occurs during the termination of the transaction.
Atoms will contain the atoms used by the map target and are displayed after the map target is done. If the atom has a "!" character before the atom name, it means the map target tried to read the atom but it was not present in the transaction.
For each (recursively) mapped level in the memory hierarchy, the indentation level is adjusted with 3 spaces. This makes it easier to read the output.
A deferred transaction may cause indentation problems since it will be interrupted in the middle, and other transactions may run interleaved.
The file argument can be set to print to a file instead of standard out.
The max-bytes argument limits the number of data bytes printed per transaction. When the transaction data exceeds this limit, the output is truncated and "..." is appended. By default all bytes are printed.
The filter-objects argument takes one or more objects to filter on. Only transactions targeting those map target objects will be logged, other targets will not be seen even though transactions are passing through them. If no filter objects are given, all transactions are logged.
The filter-initiators argument takes one or more objects to filter on. Only transactions initiated by those objects will be logged. If no filter initiators are given, all initiators are logged.
The optional name argument can be used to set a name of the created object. If no name is given, a default name tt followed by a sequence number is generated (tt0, tt1,...).
The optional argument group lets a user specify a named instrumentation group to use for the connection. (See add-instrumentation-group for details on named groups.)