Hi Jini,

Thank you for your advices. I try to add the test case and modify the copyright year to 2017. Basically, I agree with your idea, but I think that the separator line should finally be the same as the output of the jstack command. I worry which is better way.

Thanks,
Chihiro

On 2017/06/08 16:42, Jini George wrote:
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



--

Chihiro Ito | Principal Consultant | +81.90.6148.8815
Oracle <http://www.oracle.com> Consultant
ORACLE Japan | Akasaka Center Bldg. | Motoakasaka 1-3-13 | 1070051 Minato-ku, Tokyo, JAPAN

Oracle is committed to developing practices and products that help protect the environment <http://www.oracle.com/commitment>

Reply via email to