RFR(XS): 8218947: jdb threads command should print threadID in decimal, not hex

Chris Plummer chris.plummer at oracle.com
Thu Feb 14 06:54:49 UTC 2019


Hi David,

I can update the man page. Can you point me to where it is in the 
source? I haven't been able to find it. It seems to be out of date in 
other ways also. This is what the output looks like (with my fix).

main[1] threads
Group system:
   (java.lang.ref.Reference$ReferenceHandler)908 Reference Handler running
   (java.lang.ref.Finalizer$FinalizerThread)909  Finalizer cond. waiting
   (java.lang.Thread)910                         Signal Dispatcher running
Group main:
   (java.lang.Thread)1                           main running (at 
breakpoint)
Group InnocuousThreadGroup:
   (jdk.internal.misc.InnocuousThread)911        Common-Cleaner cond. 
waiting

Note there is no index printed as the docs suggest. Also, the docs don't 
even mention having the threadID printed.

I found this change very useful while using jdb to debug the JDWP debug 
agent. If I don't push it, it will likely just stay as an uncommitted 
change in my local repo indefinitely since I continue to find use for it.

As for the status of jdb, it is supported and we do actively fix it. 
It's greatest use is probably in testing JDI, since a large number of 
JDI tests do so using jdb. Also, I've been using it a lot lately to test 
loom debugging support I've been adding to the JDWP debug agent.

I don't know about needing a CSR request. The rules for needing one 
elude me. I consider you the expert in that area. :)

thanks,

Chris

On 2/13/19 8:53 PM, David Holmes wrote:
> <offlist>
>
> pps. You'll also need to update the man page as it has an example 
> showing the hex:
>
>      threads
>               List the threads that are currently running. For each 
> thread, its name and current status are printed and
>               an index that can be used in other commands. In this 
> example, the thread index is 4, the thread is an
>               instance of java.lang.Thread, the thread name is main, 
> and it is currently running.
>
>               4. (java.lang.Thread)0x1 main      running
>
> Is this change really worth bothering with? What's the status of jdb 
> (I was surprised to seem this is all an example!) ? Does this need a 
> CSR request?
>
> Cheers,
> David
> On 14/02/2019 2:36 pm, David Holmes wrote:
>> PS.
>>
>>   return MessageOutput.format("object description and hex id",
>>
>> Need to change the message too!
>>
>> David
>>
>> On 14/02/2019 2:32 pm, David Holmes wrote:
>>> Hi Chris,
>>>
>>> On 14/02/2019 1:37 pm, Chris Plummer wrote:
>>>> Hi,
>>>>
>>>> Please review the following:
>>>>
>>>> http://cr.openjdk.java.net/~cjplummer/8218947/webrev
>>>> https://bugs.openjdk.java.net/browse/JDK-8218947
>>>
>>> Are there times you may want to correlate those thread ids with ones 
>>> in other logs/tools that are in hex?
>>>
>>> That aside:
>>>
>>> java.lang.Long.toString
>>>
>>> you don't need the java.lang part (it's always implicitly imported).
>>>
>>> Thanks,
>>> David
>>> -----
>>>
>>>> Tested by running the following on all supported platforms:
>>>>
>>>> open/test/hotspot/jtreg/vmTestbase/nsk/jdb
>>>> open/test/jdk/com/sun/jdi
>>>>
>>>> thanks,
>>>>
>>>> Chris





More information about the serviceability-dev mailing list