-XX:[+|-]HitachiThreadDump (Option to output the extended thread dump information)
- Organization of this page
Format
- -XX:+HitachiThreadDump
-
If the -Xrs option is not specified, this option outputs the extended thread dump information during thread dump output.
- -XX:-HitachiThreadDump
-
This option outputs the standard thread dump information during thread dump output.
Description
Specify whether to output the extended thread dump information.
The thread dump is output as the standard output to the following files:
- Default value
-
-
-XX:+HitachiThreadDump
-
- Thread dump output destination
-
By default, the output destination is the current directory when executing JavaVM. You can specify the environment variable JAVACOREDIR and change the output destination.
- Thread dump output file name
javacore process-number.YYMMDDhhmmss#.txt
- #
-
YY: Year (last 2 digits), MM: Month (2 digits), DD: Date (2 digits)
hh: Hours (represented in 24-hours), mm: Minutes (2 digits), ss: Seconds (2 digits)
The following table describes the configuration of thread dump information:
|
Output information |
Contents |
|---|---|
|
Header |
Outputs the date and time when the thread dump is started, the JavaVM version information, and the start command line. |
|
System settings |
Outputs the following information:
|
|
Operation environment |
Outputs the following information:
|
|
Memory information |
Outputs the following information for Windows:
|
|
Java heap information |
Outputs the memory usage status of each Java heap generation. |
|
Internal memory map information for JavaVM |
Outputs the information of memory area secured by JavaVM. |
|
Internal memory size information for JavaVM |
Outputs the information of memory size secured by JavaVM. |
|
Application information |
Outputs the following information:
|
|
Library information |
Outputs the information about a loaded library. |
|
Thread information Thread-1 : Thread-n |
Outputs the thread information for each thread. Outputs the stack traces of all the existing threads. |
|
Java monitor dump# |
Displays the list of Java monitor objects. You can check the exclusion wait status between threads. |
|
JNI global reference information |
Outputs the number of global references of JNI maintaining JavaVM. JNI global reference is created in the following cases:
|
|
Explicit heap information |
The usage status in the entire Explicit heap is output to the Explicit heap information. Regardless of whether the Explicit heap is used, the information will always output when -XX:+HitachiUseExplicitMemory is enabled. |
|
Explicit memory block information |
The following information is output with the Explicit memory block information. However, if the Explicit memory block does not exist, nothing is output.
|
|
Footer |
Outputs the date and time when the thread dump ends. |
- #
-
In UNIX, the notify pending list might not be displayed.
Output format
Header
EEE MMM dd hh:mm:ss yyyy# Full thread dump Java HotSpot(TM) VM-type (25.20-b23-CDK0970-build-date mixed mode) invoke-command-line ...
- #
-
EEE represents a day, MMM a month, and dd a date. hh represents hours, mm minutes, ss seconds, and yyyy represents a year.
For VM-type, Client VM, Server VM, or 64-Bit Server VM is output.
- System settings
System Properties ----------------- Java Home Dir : installation-directory-of-JDK-execution-environment Java DLL Dir : installation-directory-of-library-configuring-JDK Sys Classpath : system-class-path User Args : Java-command-option-1 Java-command-option-2 ...
- Operating environment (In Windows)
Operating Environment --------------------- Host : host-name:IP-address OS : OS-version CPU : CPU-type, number-of-available-CPUs/ number-of-CPUs-of-all-systems
- Operating environment (In UNIX)
Operating Environment --------------------- Host : host-name:IP-address OS : OS-version CPU : CPU-type, number-of-available-CPUs/ number-of-CPUs-of-all-systems Resource Limits - RLIMIT_CPU :number-of-seconds-available-for-the-process RLIMIT_FSIZE :maximum-file-size-(-unit-:-byte-) RLIMIT_DATA :mallocable-size-(-unit-:-byte-) RLIMIT_STACK :maximum-stack-size-(-unit-:-byte-) RLIMIT_CORE :maximum-core-size-(-unit-:-byte-) RLIMIT_RSS :process-residence-size-(-unit-:-byte-) RLIMIT_AS :available-memory-for-total-processes-(-unit-:-byte-) RLIMIT_NOFILE :maximum-file-descriptor-value- Memory information (In Windows)
Memory Status ------------- Memory in use : memory-usage-status-(-unit-:-percent-) Physical memory : physical-memory-usage# free Virtual memory : virtual-memory-usage# free Paging file : paging-usage# free
- #
-
Displayed in the format of available-size/total-size (Units: Bytes).
Java heap information (if serial GC is used)
Heap Status
-----------
def new generation max maximum-capacity, total current-capacity, used memory-in-use (rate-of-usage-to-maximum-capacity% used/max, rate-of-usage-to-current-capacity% used/total)
[first-address-of-the-area, last-address-of-the-committed-area, last-address-of-the-reserved-area)
eden space current-capacity, usage% used [first-address-of-the-area, first-address-of-the-area-in-use, last-address-of-the-reserved-area)
from space current-capacity, usage% used [first-address-of-the-area, first-address-of-the-area-in-use, last-address-of-the-reserved-area)
to space current-capacity, usage% used [first-address-of-the-area, first-address-of-the-area-in-use, last-address-of-the-reserved-area)
tenured generation max maximum-capacity, total current-capacity, used memory-in-use (rate-of-usage-to-maximum-capacity% used/max, rate-of-usage-to-current-capacity% used/total)
[first-address-of-the-area, last-address-of-the-committed-area, last-address-of-the-reserved-area)
the space current-capacity, usage% used [first-address-of-the-area, first-address-of-the-area-in-use, first-address-of-the-next-blank-block, last-address-of-the-reserved-area)
Metaspace max maximum-capacity, capacity size-of-committed-memory-area-excluding-free-area, committed size-of-committed-memory-area, reserved size-of-reserved-memory-area, used memory-in-use (ratio-of-usage-to-maximum-capacity% used/max, ratio-of-usage-to-current-capacity% used/total)
class space max maximum-capacity, capacity size-of-committed-memory-area-excluding-free-area, committed size-of-committed-memory-area, reserved size-of-reserved-memory-area, used memory-in-use (ratio-of-usage-to-maximum-capacity% used/max, ratio-of-usage-to-current-capacity% used/committed)
[first-address-of-the-area, first-address-of-the-area-in-use, last-address-of-the-committed-area, last-address-of-the-reserved-area)- Note:
-
The unit of capacity and memory size is kilobytes.
Java heap information (if G1 GC is used)
Heap Status
-----------
garbage-first heap total current-capacity, used memory-in-use [first-address-of-the-area, last-address-of-the-committed-area, address-of-the-reserved-area)
region size size-of-one-region, number-of-regions-used-in-the-new-area young (memory-in-use-in-the-new-area), number-of-regions-used-in-the-Survivor-area survivors (memory-in-use-in-the-Survivor-area)
Metaspace max maximum-capacity, capacity size-of-committed-memory-area-excluding-free-area, committed size-of-committed-memory-area, reserved size-of-reserved-memory-area, used memory-in-use (ratio-of-usage-to-maximum-capacity% used/max, ratio-of-usage-to-current-capacity% used/committed)
class space max maximum-capacity, capacity size-of-committed-memory-area-excluding-free-area, committed size-of-committed-memory-area, reserved size-of-reserved-memory-area, used memory-in-use (ratio-of-usage-to-maximum-capacity% used/max, ratio-of-usage-to-current-capacity% used/committed)
[first-address-of-the-area, first-address-of-the-area-in-use, last-address-of-the-committed-area, last-address-of-the-reserved-area)Internal memory map information for JavaVM
JVM Internal Memory Map ----------------------- memory-secure-function:address = start-address - end-address (size:size)
- Note:
-
memory-secure-function: Either mmap() or malloc() is output.
start-address: Start address of the memory area is output as hexadecimal.
end-address: End address of the memory area is output as hexadecimal.
size: Size of the secured memory area is output (Units: Bytes).
Internal memory size information for JavaVM
JVM Internal Memory Status -------------------------- Heap Size :secured-memory-size# Alloc Size :used-memory-size# Free Size :free-memory-size#
- #
-
Unit: Bytes
Application information (in Windows)
Application Environment ----------------------- Signal Handlers - SIGINT :signal-handler-information SIGILL :signal-handler-information ... SIGBREAK :signal-handler-information SIGABRT :signal-handler-information Environment Variables - environment-variable=value ... Cueeent Directory - C:\Program Files\Hitachi\Cosminexus\CC\...
Application environment (in UNIX)
Application Environment ----------------------- Signal Handlers -#1 SIGHUP :signal-handler-information SIGINT :signal-handler-information ... SIGSOUND :signal-handler-information SIGSAK :signal-handler-information Signal Handlers - signal-type: [signal-handler-address], sa_mask[0]= signal-mask, sa_flags= specific-flag ... Environment Variables -#2 environment-variable=value ... Current Directory - /opt/Cosminexus/CC/server/...
- #1
-
The following information is displayed:
-
If the signal handler is installed, its address is displayed.
-
In the case of SIG_DFL, default is displayed.
-
In the case of SIG_IGN, ignored is displayed.
-
- #2
-
The following information is displayed:
-
The signal name defined in /usr/include/sys/signal.h is displayed in signal type.
-
The address of the signal handler is output as hexadecimal in the "signal handler address". The address may be displayed in the form of "Library name + Offset."
-
The sa_mask field value of the structure fetched by sigaction() is output as hexadecimal in the "signal mask".
-
The sa_flags field value of the structure fetched by sigaction() is output as hexadecimal in the "specific flag".
-
- Library information (in Windows and Linux)
Loaded Libraries ---------------- Dynamic libraries : start-address-end-address command start-address-end-address library ...
- Library information (in AIX)
Loaded Libraries ---------------- command text :start-address-end-address (size) data :start-address-end-address (size) library text :start-address-end-address (size) data :start-address-end-address (size) ...- Thread information
----------- "thread-name" daemon prio= priority jid=hash-value tid= thread-ID nid= nativeID status [start-address...end-address] java.lang.Thread.State: current-status-of-thread# stack=[stack-start-address..YellowPage-address..RedPage-address..stack-end-address] [user cpu time=user-time ms, kernel cpu time=kernel-time ms] [blocked count=block-count, waited count=standby-count] at class-name.method-name(method-information) ...
- #
-
Information of current-status-of-thread is output only if JDK 6 is the base and the version is 08-10 or later.
The output contents are as follows:
- thread-name
-
The thread name specified in the constructor of the Thread class is output.
-
daemon: In the case of the daemon thread, thread name is output as "daemon".
-
priority: The priority set in the Thread#setPriority is output.
-
hash-value: The value same as the one obtained by invoking System.identityHashCode() is output as 8-digit hexadecimal.
-
thread-ID: Memory address of thread object.
-
nativeID: Thread ID of the OS level.
-
status: Thread state.
runnable: Running or executable thread
in Object.wait(), waiting for monitor entry or waiting on condition: Thread waiting for monitor lock
sleeping: Thread in the suspended state
-
start-address: The top-level stack address of the Java frame is output as hexadecimal.
-
end-address: The top-level stack address with JavaLock is output as hexadecimal.
-
user-time: The user time since the thread is started is output in milliseconds.
-
kernel-time: The kernel time since the thread is started is output in milliseconds.
-
block-count: The number of times the process is blocked since the thread is started is output.
-
standby- count: The number of times the process is pending since the thread is started is output.
-
- current-status-of-thread
-
The message indicating the current status of thread is output. The contents of the message correspond to the java.lang.Thread.State enumerated type.
- stack-start- address
-
The stack start address is output in hexadecimals.
- YellowPage-address
-
The first address of the stack Yellow guard page is output in hexadecimals.
- RedPage-address
-
The first address of the stack Red guard page is output in hexadecimals.
- stack-end-address
-
The stack end address is output in hexadecimals.
- class-name
-
The class name is output.
- method-name
-
The method name is output.
- method-information
-
The following method information is output:
-
Native Method
The information is output in the case of the native method.
-
File name: Line number
The information is output when the Java method is compiled with the line number.
-
Unknown Source
The information is output when the Java method is compiled without the line number.
-
- Java monitor dump
Java monitor ------------ lock-object@hash-code owner-information standby-state:standby-thread-count standby-thread-information
The output contents are explained below:
- lock-object
-
The class name of the object to be locked is output.
- hash-code
-
The hash code to be obtained with Object.hashCode is output.
- owner-information
-
-
owner "thread-name"thread-ID
When the monitor has an owner, owner "thread-name"thread-ID is output.
-
no owner
When the monitor does not have an owner, "no owner" is output.
-
- standby-state
-
-
... waiting to enter
This state is displayed when the monitor is waiting for method execution.
-
... waiting to be notified
This state is displayed when the monitor is waiting for notification.
-
- standby-thread-count
-
The thread count is output.
- standby-thread-information
-
The information is output in the form of "thread-name" thread-ID.
- Information on the number of JNI global references
JNI Information --------------- JNI global references: JNI-global-reference-count
The output contents are explained below:
- JNI global reference count
-
The number of global references maintained by JavaVM are output.
- Note:
-
Since the JNI global reference is reused even in JavaVM, the numeric value does not reduce even after issuing the DeleteGlobalRef function supported by JNI to delete the JNI global reference. Even if the NewGlobalRef function is issued to create a new JNI global reference, the numeric value does not increase if the JNI global reference reused by JavaVM is allocated.
Explicit heap information and Explicit memory block information
Explicit Heap Status
--------------------
max EH_MAX, total EH_TOTAL, used EH_USED, garbage EH_GARB (EH_PER1 used/max, EH_PER2 \
used/total, EH_PER3 garbage/used), EM_NUMS spaces exist
Explicit Memories(EM_MGR_PTR)
"EM_NAME" eid=EID(EM_PTR)/EM_TYPE, total EM_TOTAL, used EM_USED, garbage EM_GARB \
(EM_PER1 used/total, EM_PER2 garbage/used, FL_BLOCKS blocks) EM_STAT
deployed objects
_______________Size__Instances__FreeRatio__Class______________
ISIZE INUM FRATIO CNAME
...
AISIZE AINUM total
... Note the following:
-
A blank line exists between the Explicit heap information and Explicit memory block information.
-
The output order for the Explicit memory block information (which Explicit memory block will output) is not defined.
-
Two one-byte character spaces exist before "EM_NAME".
-
Four one-byte character spaces exist before deployed objects.
-
ISIZE is aligned at the end of "e" of _________________Size_.
-
INUM is aligned at the end of the final "s" of __Instances.
-
FRATIO is aligned at the end of "o" of __FreeRatio__.
-
CNAME is aligned at the end of the second "_" which is at the beginning of __Class________________.
-
Four one-byte character spaces exist before memory map.
-
A blank line exist as the last line. As a result, a blank line exist between the output of each Explicit memory block.
Footer
Full thread dump completed. EEE MMM dd hh:mm:ss yyyy#
- #
-
EEE represents a day, MMM a month, and dd a date. hh represents hours, mm minutes, ss seconds, and yyyy represents a year.
The following table describes the comparison of the extended thread dump information:
|
Output information |
Standard thread dump |
Extended thread dump |
|---|---|---|
|
Header |
N |
Y |
|
System settings |
N |
Y |
|
Operation environment |
N |
Y |
|
Memory information (in Windows only) |
N |
Y |
|
Java heap information |
N |
Y |
|
Internal memory map information for JavaVM |
N |
Y |
|
Internal memory size information for JavaVM |
N |
Y |
|
Application environment |
N |
Y |
|
Library information |
N |
Y |
|
Thread information |
Y |
Y#1 |
|
Java monitor dump |
N |
Y |
|
Information on the number of JNI global references |
Y |
Y |
|
Explicit heap information |
N |
Y |
|
Explicit memory block information |
N |
Y |
|
Footer |
N |
Y |
|
Thread dump output destination |
Standard output |
Standard output#2 JavaVM log file |
- Legend:
-
Y: Information is output.
N: Information is not output.
- #1
-
Information such as the start and end address of stack is output.
- #2
-
The information is output when the -XX:+HitachiThreadDumpToStdout option is specified.
Precautions
-
When the output to the directory specified in the environment variable JAVACOREDIR fails, the information is output in current directory.
-
When the output to the current directory fails, the information is output as standard error output. In this case, the thread dump is not output as the standard output.
-
When [+|-] in the following options is specified as "-", part of the thread information is not output:
Option name
Information not to be output
hash-value
user-time, kernel-time
block-count, standby-count