JHSDB(1)
πΈ JHSDB(1) β the JDK Commands era, bestie edition πΈ
okay so this is the jhsdb page from the JDK Commands manual, and it's genuinely one of the most "handle with care" tools in the whole JDK. Let's get into it π
β¨ NAME β¨
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). that's the whole vibe. π₯
β¨ SYNOPSIS β¨
WARNING: Thedebugdsubcommand and--connectoptions are deprecated. They will be removed in a future release. ngl bestie, don't build your whole personality on these π
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]
and here's what all those little placeholders mean π
pidβ the process ID to which thejhsdbtool should attach. The process must be a Java process. To get a list of Java processes running on a machine, use thepscommand or, if the JVM processes are not running in a separate docker instance, thejpscommand. π«Άexecutableβ the Java executable file from which the core dump was produced.coredumpβ the core file to which thejhsdbtool 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 ajhsdbmode. See Options for thedebugdMode, Options for thejstackMode, Options for thejmapMode, Options for thejinfoMode, and Options for thejsnapMode. (they're all below, don't stress π)
Note: Either thepidor the pair ofexecutableandcorefiles or the[server-id@]debugd-hostmust be provided fordebugd,jstack,jmap,jinfoandjsnapmodes. pick one, bestie, you can't just show up with nothing β
β¨ 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. yes, that's real, that's the actual disclaimer, we're living on the edge today π
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. that is not a drill. do not do this to anything you love π
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. when in doubt, ask for help, it's giving self-care π
β¨ OPTIONS FOR THE DEBUGD MODE β¨
--serveridserver-id β an optional unique ID for this debug server. This is required if multiple debug servers are run on the same machine. (yes, they'll fight otherwise π₯΄)--rmiportport β sets the port number to which the RMI connector is bound. If not specified a random available port is used.--registryportport β 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 port1099is used. π--hostnamehostname β 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. it's giving layers of fallbacks, she's thorough π
β¨ 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. no thoughts, just everything at once β¨
β¨ OPTIONS FOR THE JMAP MODE β¨
no optionβ prints the same information as Solarispmap.--heapβ prints the java heap summary.--binaryheapβ dumps the java heap in hprof binary format.--dumpfilename β 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. they're just waiting, bestie, be nice π₯Ί
β¨ OPTIONS FOR THE JSTACK MODE β¨
--locksβ prints thejava.util.concurrentlocks information.--mixedβ attempts to print both java and native frames if the platform allows it. key words: attempts and if π
β¨ OPTIONS FOR THE JSNAP MODE β¨
--allβ prints all performance counters. all of them. every single one. slay π₯
and that's the whole page, bestie! π¦ stay safe, don't attach to live processes, and remember she's experimental and unsupported π
this gorgeous little manual page is from the JDK Commands manual, version JDK 25.0.5.0.3, dated 2026 β mwah, kiss kiss, see you in the next release π
π¦ where this page comes from
- arch rolling: jdk25-openjdk 25.0.5.0.3.u1-1 Β· LicenseRef-Java
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms