5.8.1 When a Signal Occurs
When a signal occurs, the items shown below are output to the log. The JavaVM extended contents are included in the output contents.
-
Abnormal termination location and signal type#
-
Current thread information
-
Save destination address of signal information#
-
Signal information
-
siginfo information# (in UNIX)
-
Register information
-
Information saved from the beginning of the stack
-
Command code information
-
Stack trace
-
Thread information
-
VM status
-
Memory information#
-
Usage status of Java heap#
-
Card table map address display
-
Polling page address display
-
Large pages allocation failure information
-
CodeCache information
-
Event information
-
Library
-
Command and VM parameters#
-
Environment variable
-
Registered signal handlers
-
Machine information#
-
System name, CPU, actual memory and VM information
-
Time information#
-
Command line of the javatrace startup command# (in UNIX)
- #
-
These are the output contents extended by Hitachi.
Each output contents are described below.
- Organization of this subsection
-
(1) Abnormal termination location and signal type
Any one of the following contents are output in compliance with the status at the time of abnormal termination. These contents are extended by JavaVM.
(a) When a signal is detected
The following message is output:
# # A fatal error has been detected by the Java Runtime Environment:
The following contents are output:
Contents output when a signal is detected
# # A fatal error has been detected by the Java Runtime Environment: # # Occurred-signal-name (signal-number) at pc=PC-address, pid=Process-ID, tid=Thread-ID # # JRE version :(jre version information) # Java VM: Java HotSpot(TM) VM-type (Sun-version-information-Hitachi-version-information-build-date mixed modeOS-name-CPU-type) # Problematic frame: # <type-code> <library-name-where-signal-occurred+Offset #
- Note:
-
When you are able to extract a function name where the signal occurred, that function name and offset may be displayed in continuation to library-name-where-signal-occured+offset.
(b) When an internal logical error occurs
The following contents are output:
Contents output when an internal logical error occurs
# # Internal Error (file-name:number-of-lines or internal-error-code), pid=process-ID, tid=thread-ID # Internal logical Error: Internal logical error message # # JRE version: JRE-version-information # Java VM: Java HotSpot(TM) VM-type (Sun-version-information-Hitachi-version-information-build-date mixed modeOS-name-CPU-type compressed-OOP) # # core-file-information
- Note:
-
Either a combination of the file name and number of lines or the Internal Error code is output to the Internal Error. In Internal logical Error, any one of fatal error, guarantee(logical type)failed, or Error is output, according to the type of the internal logical error.
(2) Current thread information
The following three types of information are output to the messages according to the thread type:
Current thread (address): thread-name "thread-name" [_state, id=thread-ID, stack(start-address,end-address)] Or Current thread (address): thread-name [_id=thread-ID, stack(start-address,end-address)] Or Current thread is native thread
(3) Save destination address of the signal information
The following contents are output. These contents are extended by JavaVM.
siginfo address: address, context address: address
(4) Signal information
The following contents are output.
- In Windows
-
EXCEPTION_ACCESS_VIOLATION(Read violation)
siginfo: ExceptionCode=signal-number, reading address address
EXCEPTION_ACCESS_VIOLATION(Write violation)
siginfo: ExceptionCode=signal-number, writing address address
EXCEPTION_ACCESS_VIOLATION(Others)
siginfo: ExceptionCode=signal-number, ExceptionInformation=additional-information
Other than EXCEPTION_ACCESS_VIOLATION
siginfo: ExceptionCode=signal-number, ExceptionInformation=additional-information-1 additional-information-2 ...
- In UNIX
siginfo:si_signo= occurred-signal-number (occurred-signal-name), si_errno: number, si_code: number(signal-reason-type), si_addr: address
(5) siginfo information (in UNIX)
The following contents are output. These contents are extended by JavaVM.
siginfo structure dump (location: siginfo-address) siginfo-address siginfo-address siginfo-address siginfo-address ... siginfo-address siginfo-address siginfo-address siginfo-address
- Note:
-
The siginfo-address is output in hexadecimal.
(6) Register information
The following contents are output. However, these contents are not output in the case of internal logical errors.
Registers: register-information ...
- Note:
-
In UNIX, different BSP register value and debugger (gdb) value are output. This is because, in debugger, the contents of the backing store area that indicates BSP is output and the position that indicates BSP is modified.
(7) Information saved from the top of stack
The following contents are output. However, these contents are not output in the case of internal logical errors.
Top of Stack: (sp=Address-of-stack-pointer) Address: Saved-contents ...
- Note:
-
saved-contents are output in hexadecimal.
(8) Stack trace
The following contents are output. However, these contents are not output when the Current thread is other than JavaThread.
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) Stack-trace ...
(9) Thread information
The following contents are output:
Java Threads: ( => current thread ) address JavaThread "thread-name" [state, id=thread-ID, stack(start-address,end-address)] : =>address JavaThread "thread-name" [state, id=thread-ID, stack(start-address,end-address)] Other Threads: address thread-name [stack(start-address,end-address)] [id=thread-ID] :
(10) VM status
The following contents are output.
VM state: current-status VM Mutex/Monitor currently owned by a thread: <mutexs/moniter>
- Note:
-
The lock information may be output in continuation with this information.
(11) Memory information
The following contents are output. These contents are extended by JavaVM.
Memory: secure-memory-function:addressStart-address - End-address (size: size) ... Heap Size: secured-memory-size Alloc Size: memory-size-in-use Free Size: unused-memory-size
memory-securing-function is either mmap()or malloc(). The address is displayed in hexadecimal.
The unit of each type of memory size is bytes.
(12) Java heap usage status
The following contents are output. These contents are extended by JavaVM.
Heap# Java-heap-information
- #
-
The header section differs between the extended thread dump and the error report file.
For the extended thread dump
Heap Status
-----------
For the error report file
Heap
(13) Card table map address display
The following contents are output.
Card table byte_map: [address,address] byte_map_base: address
(14) Polling page address display
The following contents are output.
Polling page: address
(15) Large pages allocation failure information
If memory allocation by using the mmap() function fails, the number of failures is output.
Large page allocation failures have occurred number-of-times times
(16) CodeCache information
The following contents are output.
CodeCache: size=total-size used=used-size max_used=maximum-size free=free-space-size bounds [bottom, commit-addr, reserve-addr] total_blobs=total-number-of-CodeBlobs nmethods=total-number-of-methods adapters=total-number-of-adapters compilation: enabled or disabled
(17) Event information
All contents of the event buffer are output.
event-type-name (number-of-events events): event-record :
Event information is managed in a ring buffer, and the maximum number of events retained per event type is 10. If the number of events is 0, No events is output to event-record.
The following are examples of output for each event-type that can be output.
-
Compilation events
JIT compilation information
Compilation events (10 events): Event: 0.923 Thread 0x00002aaab2f01800 389 b java.io.FileOutputStream::write (12 bytes) Event: 0.923 Thread 0x00002aaab2f01800 nmethod 389 0x00002aaaac3ea490 code [0x00002aaaac3ea5e0, 0x00002aaaac3ea668] :
-
GC Heap History
Information before GC and information after GC
GC Heap History (4 events): Event: 23.719 GC heap before {Heap before GC invocations=0 (full 0): def new generation max 154880K, total 9664K, used 345K (0.2% used/max, 3.6% used/total) :
-
Deoptimization events
Deoptimization information
Deoptimization events (10 events): Event: 0.818 Thread 0x00002aaaaba7e000 Uncommon trap 24 fr.pc 0x00002aaaac3d1eec Event: 0.818 Thread 0x00002aaaaba7e000 Uncommon trap 54 fr.pc 0x00002aaaac3d0dd8 :
-
Internal exceptions
Internal exception information
Internal exceptions (2 events): Event: 0.025 Thread 0x00002aaaaba7e000 Threw 0x00000000db606140 at /hotspot/src/share/vm/prims/jni.cpp:4008 Event: 0.061 Thread 0x00002aaaaba7e000 Threw 0x00000000db649980 at /hotspot/src/share/vm/prims/jvm.cpp:1167 :
-
Events
Class loader information and other information
Events (10 events): Event: 0.080 loading class 0x00002aaab302e990 Event: 0.080 loading class 0x00002aaab302e990 done Event: 4.286 Executing VM operation: EnableBiasedLocking Event: 4.286 Executing VM operation: EnableBiasedLocking done :
(18) Libraries
The list of loaded libraries is output in continuation to the following contents.
Dynamic libraries: libraries ...
(19) Command and VM parameters
The following contents are output. These contents are extended by JavaVM.
Command : command-line Java Home Dir : JDK-execution-environment-install-directory Java DLL Dir : JDK-library-install-directory Sys Classpath : system-class-path User Args : command-option-1 command-option-2 ...
(20) Environment variables
The following contents are output.
Environment Variables: environment-variable=value ...
(21) Registered signal handlers
The following contents are output.
Signal Handlers: signal-type: [signal-handler-address], sa_mask[0]= mask-signal, sa_flags=special-flag ... Changed Signal Handlers - signal-type: [signal-handler-address], sa_mask[0]=signal-mask, sa_flags=special-flag ...
- The meaning of output contents are as follows:
-
-
signal-type: It is the signal name defined in /usr/include/sys/signal.h.
-
signal-handler-address: It is the signal handler address output in hexadecimal. It may also be displayed in the library-name+offset format.
-
signal-mask: It is the value where the sa_mask field value of the structure extracted by sigaction() is output in hexadecimal.
-
special-flag: It is the value where the sa_flags field value of the structure extracted by sigaction() is output in hexadecimal.
-
(22) Machine information
The following contents are output. These contents are extended by JavaVM.
Host: host-name:IP-address
- Note:
-
Multiple IP addresses may be displayed in IP-address.
(23) System name, CPU, actual memory, and VM information
The following contents are output.
In Windows
OS:OS-version CPU: number-of-CPUs-that-can-be-used, CPU-type Memory:actual-memory-information vm_info:VM-information
In UNIX
OS:OS version [uname:uname output] [libc:version-number-of-libc(at-times-version number-is-not-output)] [rlimit:limit-value] [load average:load-average] [/proc/meminfo:/proc/meminfo contents] CPU:number-of-CPUs-that-can-be-used,CPU-type Memory:actual-memory-information vm_info:VM-information
The following contents are output:
time: execution-date elapsed time: execution-time seconds (formatted-execution-time-output)
- Note:
-
An example of the execution date is as follows:
Example: Wed Aug 25 14:55:04 2004
It is difficult to understand the execution time given only in unit of seconds, so the execution time is output in (formatted-execution-time-output) in the format of days, hours, minutes, and seconds.
(Example) elapsed time: 900 seconds (0d 0h 15m 0s)
(24) Command line of javatrace start command (in UNIX)
The following contents are output. These contents are extended by JavaVM.
# You can get further information from javatrace.log file generated # by using javatrace command. # usage: javatrace core-file-name loadmodule-name [out-file-name] [-l(library-name)...] # Please use javatrace command as follows and submit a bug report # to Hitachi with javatrace.log file: #[installation-directory/bin/javatrace core-file load-module]