Jhsdb - Analyzing the Core Dump of a Crashed JVM
Introducing Jhsdb
jhsdb - attach to a Java process or launch a postmortem debugger to analyze the content of a core dump from a crashed Java Virtual Machine (JVM)
Synopsis
jhsdb clhsdb [--pid pid | --exe executable --core coredump]
jhsdb hsdb [--pid pid | --exe executable --core coredump]
jhsdb debugd (--pid pid | --exe executable --core coredump) [options]
jhsdb jstack (--pid pid | --exe executable --core coredump | --connect [server-id@]debugd-host) [options]
jhsdb jmap (--pid pid | --exe executable --core coredump | --connect [server-id@]debugd-host) [options]
jhsdb jinfo (--pid pid | --exe executable --core coredump | --connect [server-id@]debugd-host) [options]
jhsdb jsnap (--pid pid | --exe executable --core coredump | --connect [server-id@]debugd-host) [options]
pid
The process ID to which the jhsdb
tool should attach. The process must be a Java process. To get a list of Java processes running on a machine, use the ps
command or, if the JVM processes are not running in a separate docker instance, the jps command.
executable
The Java executable file from which the core dump was produced.
coredump
The core file to which the jhsdb
tool should attach.
[server-id@]debugd-host
An optional server ID and the address of the remote debug server (debugd).
options
The command-line options for a jhsdb
mode.
See Options for the debugd Mode,
Options for the jstack Mode,
Options for the jmap Mode,
Options for the jinfo Mode,
and Options for the jsnap Mode.
Note:
Either the pid or the pair of executable and core files or the [server-id@]debugd-host
must be provided for debugd
, jstack
, jmap
, jinfo
and jsnap
modes.
Description
You can use the jhsdb
tool to attach to a Java process or to launch a postmortem debugger to analyze the content of a core-dump from a crashed Java Virtual Machine (JVM). This command is experimental and unsupported.
Note:
Attaching the jhsdb
tool to a live process will cause the process to hang and the process will probably crash when the debugger detaches.
The jhsdb
tool can be launched in any one of the following modes:
jhsdb clhsdb
Starts the interactive command-line debugger.
jhsdb hsdb
Starts the interactive GUI debugger.
jhsdb debugd
Starts the remote debug server.
jhsdb jstack
Prints stack and locks information.
jhsdb jmap
Prints heap information.
jhsdb jinfo
Prints basic JVM information.
jhsdb jsnap
Prints performance counter information.
jhsdb
command --help
Displays the options available for the command.
Options for the debugd Mode
--serverid
server-id
An optional unique ID for this debug server. This is required if multiple debug servers are run on the same machine.
--rmiport
port
Sets the port number to which the RMI connector is bound. If not specified a random available port is used.
--registryport
port
Sets the RMI registry port. This option overrides the system property 'sun.jvm.hotspot.rmi.port'. If not specified, the system property is used. If the system property is not set, the default port 1099 is used.
--hostname
hostname
Sets the hostname the RMI connector is bound. The value could be a hostname or an IPv4/IPv6 address. This option overrides the system property 'java.rmi.server.hostname'. If not specified, the system property is used. If the system property is not set, a system hostname is used.
Options for the jinfo Mode
--flags
Prints the VM flags.
--sysprops
Prints the Java system properties.
no option
Prints the VM flags and the Java system properties.
Options for the jmap Mode
no option
Prints the same information as pmap
.
--heap
Prints the java
heap summary.
--binaryheap
Dumps the java
heap in hprof
binary format.
--dumpfile
name
The name of the dumpfile.
--histo
Prints the histogram of java
object heap.
--clstats
Prints the class loader statistics.
--finalizerinfo
Prints the information on objects awaiting finalization.
Options for the jstack Mode
--locks
Prints the java.util.concurrent
locks information.
--mixed
Attempts to print both java
and native frames if the platform allows it.
Options for the jsnap Mode
--all
Prints all performance counters.
Last update: September 14, 2021