A number of jhsdb subcommands accept a subset of the same command-line parameters - a pid or else an executable and optionally a core file. These commands share a common help method which simply reports:
--exe executable image name
--core path to coredump
--pid pid of process to attach
This doesn't make it clear that "pid" and "exe" are mutually exclusive, or that "core" only goes with "exe". It also doesn't tell you whether names/paths can be absolute or relative etc.
The standalone tools (jstack, jinfo, jmap etc) used to provide much clearer usage information in their help output e.g. jstack from 8:
Usage:
jstack [-l] <pid>
(to connect to running process)
jstack -F [-m] [-l] <pid>
(to connect to a hung process)
jstack [-m] [-l] <executable> <core>
(to connect to a core file)
jstack [-m] [-l] [server_id@]<remote server IP or hostname>
(to connect to a remote debug server)
Options:
-F to force a thread dump. Use when jstack <pid> does not respond (process is hung)
-m to print both java and native frames (mixed mode)
-l long listing. Prints additional information about locks
-h or -help to print this help message
while the SA commands don't necessarily have the exact same functionality as the standalone commands, the help/usage information could be clearer.