When you choose VM → Tracing on the VM Overview screen (transaction SM52), and confirm the subsequent prompt with Yes, the screen below appears.
You can now activate the trace flags that you need for your error analysis.
Be aware that tracing reduces the performance of the VM Container. Deactivate tracing once you have the information you were searching for.
Each trace flag causes additional trace output in the developer trace (work process trace files dev_w*). In the table below you can see precisely what is written to the trace for each trace flag.
Both blocks of trace flags relate to the activities within the VM. The lower block consists of trace flags for the JIT Compiler.
VM Trace Flags in the VM Overview
Trace Flag |
Trace Output |
OP Execution |
Each single Java opcode is executed; tracing takes an extremely long time |
Meth Execution |
Entry/exit for each Java method; tracing takes a very long time |
Interpret. Loop |
Status of the upper Java frame following each method call or return. |
Java Sync (fast) |
Lock/unlock operations on Java objects without rivalry (over 99% of all synchronization operations) |
Java Sync (det) |
Lock/unlock on Java objects with rivalry and all wait/notify operations on Java objects |
Mutex locking |
Lock/unlock operations of native locks |
Consit. State |
Achievement of a consistent state (currently used only for the GC) |
GC Start/Stop |
Start and end of the garbage collector |
GC Root scans |
Processing details of Java heap roots during the GC |
GC Heap scans |
Processing details of objects in the Java heap during the GC |
GC Obj alloc |
Details of each object created |
GC internals |
Internal GC processes |
GC safe/unsafe |
Displays switches between gc-safe/gc-unsafe |
Class static init |
Static initialization of Java classes |
Java Exceptions |
All Java exceptions raised or intercepted |
Misc (init, exit) |
Start/end phases of a VM VM closes with an exit JNI routines searched |
GC barriers |
Presently not used |
Stackmap gen |
Creates Java stackmaps (method data structures required for the garbage collection) |
Class loading |
Loads Java classes |
Class lookup |
Searches for Java classes in the class loader cache; tracing takes a very long time |
Type system |
All operations of the type ID system (manages class, field, and method names, and method signatures |
Java Verifier |
Byte code verification of Java classes (verified when linking to) |
Weak ref handling |
VM internal handling of objects with special garbage collection from java.lang.ref.reference (weak, soft, phantom) and finalization |
Class unloading |
Garbage collection unloads Java classes |
Class linking |
Links Java classes |
LVM |
Not used |
Controls |
Handling of controls |
Controls (int) |
Internal handling of controls (tracing takes a long time) |
Debugging |
Life cycle of debugging on demand |
JVMDI |
Traces the most important JVMDI functions |
JVMDI (int) |
Traces the less important JVMDI functions |
Thread sched |
Supplies the view of the thread scheduler via the current status of the thread This contains the following information: ● Why a thread can no longer be executed (for instance, it is waiting for I/O, is blocking synchronization objects) ● Why a thread is now executable (for instance I/O is available, synchronization object notified) ● CPU use of a thread ● Current status of I/O calls ● Roll status of the Java VM ● Interaction with the task handler |
Thread sched(int) |
Supplies information about: ● C stack creation ● C stack assignment to a thread ● Closing of file descriptors that are being used by other threads ● Non blocking I/O calls |
Basic File IO |
Opening and closing of files |
File IO (r/w) |
All read and write operation and their results, but does not log the data read or written. |
File IO (data) |
All read and written data |
File IO (int) |
Internal data handling functions |
Basic Network IO |
Bind/accept/listen/connect sockets |
Net IO (send/rec) |
All send, receive, and associated operations but does not display the data sent |
Net IO (data) |
All data sent |
Net IO(int) |
Internal socket handling functions |
JPDA |
More important JPDA library functions (debugging) |
JDPA (int) |
Less important JPDA library functions (debugging) |
JDWP |
All packets exchanged between the debugger and the VM (in readable format) |
VM attach/detach |
Attachment of a VM to an work process, an detachment from a work process |
Trace symb. names |
Determination and display of symbolic names for external functions, which can only be passed to the VM using a pointer rather than a symbolic name. |
Ext Mutex |
Lock/unlock system-wide locks ( Shared Locks and VM-internal locks), excludes some that are frequently used |
Ext Mutex (int) |
Lock/unlock system-wide locks frequently used internally in VMs (trace takes a long time) |
GC statistics |
Displays key information about each garbage collection in readable format |
Surviving objects |
Displays the number and total size of surviving objects sorted by class for each completed GC. |
Configuration |
Displays VM configuration when VM is started |
Shared GC |
Start, end, and status changes of the Shared Garbage Collector |
Shared GC (int) |
Internal implementation details of the shared garbage collector (trace takes a very long time) |
Shared Closure |
Shared Closure operations |
Shr Closure (det) |
Internal implementation details of shared closures (trace takes a very long time) |
JIT Compiler Trace Flags in the VM Overview
Trace Flag |
Trace Output |
JIT Status |
Translation activities of the JIT compiler |
JIT BC to IR |
Translation of Java byte code into the internal intermediate representation |
JIT code generation |
Machine code generation |
JIT statistics |
Code generation statistics |
JIT IR opt |
Block local optimizations in the intermediate representation |
JIT inlining |
Storage of methods |
JIT on stack replacement |
Replacement of the interpreted execution of a method with execution of the translated method |
JIT CFG |
Generation of the control flow graph |
JIT DFA |
Data flow-based optimizations on the intermediate representation |
JIT DEOPT |
Deoptimization of executions of compiled methods |
General information on tracing in the SAP Application Server can be found under Trace Functions.
An overview of administration functions in the VM Container can be found under Administration of the VM Container.