On Wed, 10 Feb 2021 21:12:19 GMT, Chris Plummer <[email protected]> wrote:
>> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/utilities/PointerLocation.java
>> line 247:
>>
>>> 245: stackThread.getStackBase(),
>>> stackThread.lastSPDbg(),
>>> 246:
>>> stackThread.getStackBase().addOffsetTo(-stackThread.getStackSize()),
>>> 247: stackThread);
>>
>> When we print a JavaThread, in the verbose block,
>> the final argument to tty.format in line 247, I wonder what that prints?
>>
>> We then call printThreadInfoOn() which will first print the quoted thread
>> name,
>> so maybe we don't need that item.
>> Or maybe we want the JavaThread.toString()?
>
> `stackThread.toString()` ends up in `VMObject.toString()`:
>
> public String toString() {
> return getClass().getName() + "@" + addr;
> }
> And here's an example output:
> hsdb> + findpc 0x0000152f45df6000
> Address 0x0000152f45df6000: In java stack
> [0x0000152f45df8000,0x0000152f45df6580,0x0000152f45cf7000] for thread
> sun.jvm.hotspot.runtime.JavaThread@0x0000152f3c026f70:
> "main" #1 prio=5 tid=0x0000152f3c026f70 nid=0x308e waiting on condition
> [0x0000152f45df6000]
> java.lang.Thread.State: TIMED_WAITING (sleeping)
> JavaThread state: _thread_blocked
> So I think the `stackThread` argument is doing what was intended, and there
> is no duplication in the output.
Great, thanks.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2111