RFR: 8322811: jcmd System.dump_map help info has conflicting statements

Chris Plummer cjplummer at openjdk.org
Mon Jun 10 17:23:16 UTC 2024


On Fri, 7 Jun 2024 10:40:07 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:

> @dholmes-ora this is one of yours.
> 
> This was a tad annoying to fix (fix is simple though), since the jcmd framework has no good way to allow for default parameters that are not used literally. E.g. in this case, the real value for the file name will contain the process pid, which of course cannot be hard-coded.
> 
> New output:
> 
> 
> Syntax : System.dump_map [options]
> 
> Options: (options must be specified using the <key> or <key>=<value> syntax)
>         -H : [optional] Human readable format (BOOLEAN, false)
>         -F : [optional] file path (STRING, vm_memory_map_<pid>.txt)

jcmd.l should also have been fixed. It currently reads:


options:

    -H: (Optional) Human readable format (BOOLEAN, false)
    -F: (Optional) File path (STRING, "vm_memory_map_.txt")


Note thet `<pid>` is missing. You can use the changes for [JDK-8323546](https://bugs.openjdk.org/browse/JDK-8323546)  as a model on how to specify and describe the default parameter.

src/hotspot/share/services/diagnosticCommand.cpp line 1211:

> 1209:   } else {
> 1210:     name = _filename.value();
> 1211:   }

This code should be considering if a default it specified or not, in case the specified value is identical to what is contained in `default_filename`.  With the current solution, if the user literally specifies vm_memory_map_<pid\>.txt, the <pid> part will be expanded to the actual pid. See how [JDK-8323546](https://bugs.openjdk.org/browse/JDK-8323546) handled this.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/19596#issuecomment-2158908825
PR Review Comment: https://git.openjdk.org/jdk/pull/19596#discussion_r1633575756


More information about the serviceability-dev mailing list