Trace formatter (traceformat
)
The trace formatter is a Java™ program that converts binary trace point data in a trace file to a readable form. The formatter requires the TraceFormat.dat
and J9TraceFormat.dat
files, which contain the formatting templates. The formatter produces a file that contains header information about the VM that produced the binary trace file, a list of threads for which trace points were produced, and the formatted trace points with their time stamp, thread ID, trace point ID, and trace point data.
Syntax
To use the trace formatter on a binary trace file type:
java com.ibm.jvm.format.TraceFormat <input_file> [<output_file>] <parameters>
Where <input_file>
is the name of the binary trace file to be formatted, and <output_file>
is the name of the output file. If you do not specify an output file, the output file is called input_file.fmt
.
The size of the heap that is needed to format the trace is directly proportional to the number of threads present in the trace file. For large numbers of threads the formatter might run out of memory, generating the error OutOfMemoryError
. In this case, increase the heap size by using the -Xmx
option.
Parameters
The following <parameters>
are available with the trace formatter:
Option | Explanation |
---|---|
-datfile=<file1.dat>[,<file2.dat>] |
A comma-separated list of trace formatting data files. By default, the following files are used:$JAVA_HOME/lib/J9TraceFormat.dat and $JAVA_HOME/lib/TraceFormat.dat |
-format_time=yes|no |
Specifies whether to format the time stamps into human readable form. The default is yes . |
-help |
Displays usage information. |
-indent |
Indents trace messages at each Entry trace point and outdents trace messages at each Exit trace point. The default is not to indent the messages. |
-summary |
Prints summary information to the screen without generating an output file. |
-threads=<thread id>[,<thread id>]... |
Filters the output for the given thread IDs only. thread id is the ID of the thread, which can be specified in decimal or hex (0x) format. Any number of thread IDs can be specified, separated by commas. |
-timezone=+|-HH:MM |
Specifies the offset from UTC, as positive or negative hours and minutes, to apply when formatting time stamps. |
-verbose |
Output detailed warning and error messages, and performance statistics. |
Examples
The following example shows output from running the trace formatter command:
C:\test>java com.ibm.jvm.format.TraceFormat sample.trc
Writing formatted trace output to file sample.trc.fmt
Processing 0.4921875Mb of binary trace data
Completed processing of 6983 tracepoints with 0 warnings and 0 errors
The formatted trace output looks similar to the following extract, which is truncated to show the key areas of information:
Trace Summary
Service level:
JRE 1.8.0 Windows 7 amd64-64 build (pwa6480sr2-20150624_06(SR2))
JVM startup options:
-Xoptionsfile=c:\build\pwa6480sr2-20150624\sdk\lib\compressedrefs\options.default
....
Processor information:
Arch family: AMD64
Processor Sub-type: Opteron
Num Processors: 8
Word size: 64
Trace activation information::
FORMAT=c:\build\pwa6480sr2-20150624\sdk\lib;.
MAXIMAL=all{level1}
EXCEPTION=j9mm{gclogger}
MAXIMAL=all{level2}
output=sample
Trace file header:
JVM start time: 08:58:35.527000000
Generations: 1
Pointer size: 8
Active threads
....
0x000000000f155f00 Attach API wait loop
0x000000000f18b200 Thread-1
0x000000000f190200 Thread-3
Trace Formatted Data
Time (UTC) Thread ID Tracepoint ID Type Tracepoint Data
08:58:35.527291919 *0x000000000f010500 j9trc.0 Event Trace engine initialized for VM = 0x3ad4d0
08:58:35.527349836 0x000000000f010500 j9prt.0 Event Trace engine initialized for module j9port
08:58:35.527354040 0x000000000f010500 j9thr.0 Event Trace engine initialized for module j9thr
08:58:35.529409621 *0x000000000f01eb00 j9trc.5 Event Thread started VMthread = 0xf01eb00, name = (unnamed thread), nativeID = 0x24a798
....
08:58:35.536134516 0x000000000f010500 j9vm.1 Entry >Create RAM class from ROM class 0x3cab680 in class loader 0x3042338
08:58:35.536136384 0x000000000f010500 j9vm.80 Event ROM class 0x3cab680 is named java/lang/Object
08:58:35.536200373 0x000000000f010500 j9vm.2 Exit <Created RAM class 0xf03ef00 from ROM class 0x3cab680