RFR: 8335154: jcmd VM.classes -verbose=false does not set verbose to false

Kevin Walls kevinw at openjdk.org
Wed Jun 26 12:43:09 UTC 2024


On Wed, 26 Jun 2024 12:29:18 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> VM.classes uses:
>> 
>> 995    VM_PrintClasses vmop(output(), _verbose.is_set());
>> 
>> _verbose.is_set() is wrong: it could be set, but set to false.
>> 
>> _verbose.value() should be used (see other examples such as StringtableDCmd::execute).
>> 
>> With this change -verbose=false will turn off verbose mode like all other DCmds which accept -verbose
>> 
>> bash-4.2$ jcmd 20193 VM.classes -verbose=false | wc -l
>> 2490
>> bash-4.2$ jcmd 20193 VM.classes -verbose=true | wc -l
>> 90258
>
> src/hotspot/share/services/diagnosticCommand.cpp line 995:
> 
>> 993: 
>> 994: void ClassesDCmd::execute(DCmdSource source, TRAPS) {
>> 995:   VM_PrintClasses vmop(output(), _verbose.value());
> 
> What if it wasn't set?

It has a default value...  Generally "false" for _verbose DCmdArguments.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/19901#discussion_r1654745341


More information about the serviceability-dev mailing list