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