| .\" Copyright (c) 2019, 2020, Oracle and/or its affiliates. All rights reserved. |
| .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| .\" |
| .\" This code is free software; you can redistribute it and/or modify it |
| .\" under the terms of the GNU General Public License version 2 only, as |
| .\" published by the Free Software Foundation. |
| .\" |
| .\" This code is distributed in the hope that it will be useful, but WITHOUT |
| .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| .\" version 2 for more details (a copy is included in the LICENSE file that |
| .\" accompanied this code). |
| .\" |
| .\" You should have received a copy of the GNU General Public License version |
| .\" 2 along with this work; if not, write to the Free Software Foundation, |
| .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| .\" |
| .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| .\" or visit www.oracle.com if you need additional information or have any |
| .\" questions. |
| .\" |
| .\" Automatically generated by Pandoc 2.19.2 |
| .\" |
| .\" Define V font for inline verbatim, using C font in formats |
| .\" that render this, and otherwise B font. |
| .ie "\f[CB]x\f[R]"x" \{\ |
| . ftr V B |
| . ftr VI BI |
| . ftr VB B |
| . ftr VBI BI |
| .\} |
| .el \{\ |
| . ftr V CR |
| . ftr VI CI |
| . ftr VB CB |
| . ftr VBI CBI |
| .\} |
| .TH "JHSDB" "1" "2023" "JDK 21" "JDK Commands" |
| .hy |
| .SH NAME |
| .PP |
| 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) |
| .SH SYNOPSIS |
| .PP |
| \f[V]jhsdb\f[R] \f[V]clhsdb\f[R] [\f[V]--pid\f[R] \f[I]pid\f[R] | |
| \f[V]--exe\f[R] \f[I]executable\f[R] \f[V]--core\f[R] |
| \f[I]coredump\f[R]] |
| .PP |
| \f[V]jhsdb\f[R] \f[V]hsdb\f[R] [\f[V]--pid\f[R] \f[I]pid\f[R] | |
| \f[V]--exe\f[R] \f[I]executable\f[R] \f[V]--core\f[R] |
| \f[I]coredump\f[R]] |
| .PP |
| \f[V]jhsdb\f[R] \f[V]debugd\f[R] (\f[V]--pid\f[R] \f[I]pid\f[R] | |
| \f[V]--exe\f[R] \f[I]executable\f[R] \f[V]--core\f[R] |
| \f[I]coredump\f[R]) [\f[I]options\f[R]] |
| .PP |
| \f[V]jhsdb\f[R] \f[V]jstack\f[R] (\f[V]--pid\f[R] \f[I]pid\f[R] | |
| \f[V]--exe\f[R] \f[I]executable\f[R] \f[V]--core\f[R] \f[I]coredump\f[R] |
| | \f[V]--connect\f[R] \f[I][server-id\[at]]debugd-host\f[R]) |
| [\f[I]options\f[R]] |
| .PP |
| \f[V]jhsdb\f[R] \f[V]jmap\f[R] (\f[V]--pid\f[R] \f[I]pid\f[R] | |
| \f[V]--exe\f[R] \f[I]executable\f[R] \f[V]--core\f[R] \f[I]coredump\f[R] |
| | \f[V]--connect\f[R] \f[I][server-id\[at]]debugd-host\f[R]) |
| [\f[I]options\f[R]] |
| .PP |
| \f[V]jhsdb\f[R] \f[V]jinfo\f[R] (\f[V]--pid\f[R] \f[I]pid\f[R] | |
| \f[V]--exe\f[R] \f[I]executable\f[R] \f[V]--core\f[R] \f[I]coredump\f[R] |
| | \f[V]--connect\f[R] \f[I][server-id\[at]]debugd-host\f[R]) |
| [\f[I]options\f[R]] |
| .PP |
| \f[V]jhsdb\f[R] \f[V]jsnap\f[R] (\f[V]--pid\f[R] \f[I]pid\f[R] | |
| \f[V]--exe\f[R] \f[I]executable\f[R] \f[V]--core\f[R] \f[I]coredump\f[R] |
| | \f[V]--connect\f[R] \f[I][server-id\[at]]debugd-host\f[R]) |
| [\f[I]options\f[R]] |
| .TP |
| \f[I]pid\f[R] |
| The process ID to which the \f[V]jhsdb\f[R] tool should attach. |
| The process must be a Java process. |
| To get a list of Java processes running on a machine, use the |
| \f[V]ps\f[R] command or, if the JVM processes are not running in a |
| separate docker instance, the \f[B]jps\f[R] command. |
| .TP |
| \f[I]executable\f[R] |
| The Java executable file from which the core dump was produced. |
| .TP |
| \f[I]coredump\f[R] |
| The core file to which the \f[V]jhsdb\f[R] tool should attach. |
| .TP |
| \f[I][server-id\[at]]debugd-host\f[R] |
| An optional server ID and the address of the remote debug server |
| (debugd). |
| .TP |
| \f[I]options\f[R] |
| The command-line options for a \f[V]jhsdb\f[R] mode. |
| See \f[B]Options for the debugd Mode\f[R], \f[B]Options for the jstack |
| Mode\f[R], \f[B]Options for the jmap Mode\f[R], \f[B]Options for the |
| jinfo Mode\f[R], and \f[B]Options for the jsnap Mode\f[R]. |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| Either the \f[I]pid\f[R] or the pair of \f[I]executable\f[R] and |
| \f[I]core\f[R] files or the \f[I][server-id\[at]]debugd-host\f[R] must |
| be provided for \f[V]debugd\f[R], \f[V]jstack\f[R], \f[V]jmap\f[R], |
| \f[V]jinfo\f[R] and \f[V]jsnap\f[R] modes. |
| .SH DESCRIPTION |
| .PP |
| You can use the \f[V]jhsdb\f[R] 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. |
| .PP |
| \f[B]Note:\f[R] |
| .PP |
| Attaching the \f[V]jhsdb\f[R] tool to a live process will cause the |
| process to hang and the process will probably crash when the debugger |
| detaches. |
| .PP |
| The \f[V]jhsdb\f[R] tool can be launched in any one of the following |
| modes: |
| .TP |
| \f[V]jhsdb clhsdb\f[R] |
| Starts the interactive command-line debugger. |
| .TP |
| \f[V]jhsdb hsdb\f[R] |
| Starts the interactive GUI debugger. |
| .TP |
| \f[V]jhsdb debugd\f[R] |
| Starts the remote debug server. |
| .TP |
| \f[V]jhsdb jstack\f[R] |
| Prints stack and locks information. |
| .TP |
| \f[V]jhsdb jmap\f[R] |
| Prints heap information. |
| .TP |
| \f[V]jhsdb jinfo\f[R] |
| Prints basic JVM information. |
| .TP |
| \f[V]jhsdb jsnap\f[R] |
| Prints performance counter information. |
| .TP |
| \f[V]jhsdb\f[R] \f[I]command\f[R] \f[V]--help\f[R] |
| Displays the options available for the \f[I]command\f[R]. |
| .SH OPTIONS FOR THE DEBUGD MODE |
| .TP |
| \f[V]--serverid\f[R] \f[I]server-id\f[R] |
| An optional unique ID for this debug server. |
| This is required if multiple debug servers are run on the same machine. |
| .TP |
| \f[V]--rmiport\f[R] \f[I]port\f[R] |
| Sets the port number to which the RMI connector is bound. |
| If not specified a random available port is used. |
| .TP |
| \f[V]--registryport\f[R] \f[I]port\f[R] |
| Sets the RMI registry port. |
| This option overrides the system property |
| \[aq]sun.jvm.hotspot.rmi.port\[aq]. |
| If not specified, the system property is used. |
| If the system property is not set, the default port 1099 is used. |
| .TP |
| \f[V]--hostname\f[R] \f[I]hostname\f[R] |
| 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 |
| \[aq]java.rmi.server.hostname\[aq]. |
| If not specified, the system property is used. |
| If the system property is not set, a system hostname is used. |
| .SH OPTIONS FOR THE JINFO MODE |
| .TP |
| \f[V]--flags\f[R] |
| Prints the VM flags. |
| .TP |
| \f[V]--sysprops\f[R] |
| Prints the Java system properties. |
| .TP |
| no option |
| Prints the VM flags and the Java system properties. |
| .SH OPTIONS FOR THE JMAP MODE |
| .TP |
| no option |
| Prints the same information as Solaris \f[V]pmap\f[R]. |
| .TP |
| \f[V]--heap\f[R] |
| Prints the \f[V]java\f[R] heap summary. |
| .TP |
| \f[V]--binaryheap\f[R] |
| Dumps the \f[V]java\f[R] heap in \f[V]hprof\f[R] binary format. |
| .TP |
| \f[V]--dumpfile\f[R] \f[I]name\f[R] |
| The name of the dumpfile. |
| .TP |
| \f[V]--histo\f[R] |
| Prints the histogram of \f[V]java\f[R] object heap. |
| .TP |
| \f[V]--clstats\f[R] |
| Prints the class loader statistics. |
| .TP |
| \f[V]--finalizerinfo\f[R] |
| Prints the information on objects awaiting finalization. |
| .SH OPTIONS FOR THE JSTACK MODE |
| .TP |
| \f[V]--locks\f[R] |
| Prints the \f[V]java.util.concurrent\f[R] locks information. |
| .TP |
| \f[V]--mixed\f[R] |
| Attempts to print both \f[V]java\f[R] and native frames if the platform |
| allows it. |
| .SH OPTIONS FOR THE JSNAP MODE |
| .TP |
| \f[V]--all\f[R] |
| Prints all performance counters. |