On Wed, 10 Feb 2021 21:12:19 GMT, Chris Plummer <cjplum...@openjdk.org> 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

Reply via email to