Hi Chihiro,
Thank you for making this useful change. Your changes look good.
It would be great though if you could add a test case for this. Could
you also modify the copyright year to 2017 ? One additional suggestion:
The addition of the thread name makes the separator lines unaligned in
the pstack/jstack --mixed cases. Like:
----------------- "Service Thread" nid=16051 -----------------
and
----------------- nid=16052 -----------------
So I am wondering if it would make sense to have the name printed out on
a separate line to keep the separator lines aligned. But this is a nit,
and I would leave it to you to decide on this.
Thanks,
Jini (Not a (R)eviewer)
On 6/7/2017 3:16 PM, chihiro ito wrote:
Hi all,
I changed to output Java thread name in jhsdb jstack as following.
jhsdb jstack --pid 25879
"main" nid=25884: (state = BLOCKED)
jhsdb jstack --mixed --pid 25879
----------------- "main" nid=25884 -----------------
Could you possibly review for this following small change? If review
is ok, please commit this as cito.
Source:
diff --git
a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/PStack.java
b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/PStack.java
---
a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/PStack.java
+++
b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/PStack.java
@@ -86,6 +86,13 @@
try {
CFrame f = cdbg.topFrameForThread(th);
out.print("----------------- ");
+ JavaThread jthread = (JavaThread) proxyToThread.get(th);
+ if (jthread != null) {
+ out.print("\"");
+ out.print(jthread.getThreadName());
+ out.print("\" ");
+ }
+ out.print("nid=");
out.print(th);
out.println(" -----------------");
while (f != null) {
diff --git
a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/StackTrace.java
b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/StackTrace.java
---
a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/StackTrace.java
+++
b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/StackTrace.java
@@ -75,7 +75,9 @@
for (JavaThread cur = threads.first(); cur != null; cur =
cur.next(), i++) {
if (cur.isJavaThread()) {
Address sp = cur.getLastJavaSP();
- tty.print("Thread ");
+ tty.print("\"");
+ tty.print(cur.getThreadName());
+ tty.print("\" nid=");
cur.printThreadIDOn(tty);
tty.print(": (state = " + cur.getThreadState());
if (verbose) {
Regards,
Chihiro