Skip to content

Jacobin Tracing

Andrew Binstock edited this page Nov 20, 2024 · 1 revision

Jacobin contains a tracing facility with a set of independent areas of coverage. Unlike traditional logging functions that are vertical in nature (severe, warning, info, etc.), the jacobin trace subsystem is horizontal in nature. In this way, developers and users can capture activity on one or more a selected subsystems.

To enable tracing, the following keyword parameter is employed:

    -trace=<selections>   display selected tracing to the console
                          where the <selections> are one or more of the following separated by commas (,):
                          * init - process initilization
                          * cloadi - classloader initialization
                          * inst - bytecode interpreter trace
                          * class - class & method support for the interpreter
                          * verbose - inst, class, and more details of the interpreter 

For example, to trace just the process initialization and the class loader initialization, one would specify the following on the command line:

	jacobin -trace=init,cloadi <starting class or jar file>

To see a trace of the bytecodes executed and and the names of external classes and methods linked to, one would specify the following on the command line:

	jacobin -trace=inst <starting class or jar file>

Add to this the supporting class activity of the instructional trace:

	jacobin -trace=inst,class <starting class or jar file>

An even fuller trace of instructions that shows more detail such as constant/variable push and pop in the current frame:

	jacobin -trace=verbose <starting class or jar file>

Note that the latter does not include process or class initialization.