Hi all,

I use "jhsdb jstack" command in JDK 9 EA b129.
But it does not seem to work fine.

I encountered two problems:

  1. AssertionFailure: illegal bci
  2. Normal mode cannot work


1. AssertionFailure: illegal bci
   I saw error stack as below with JDK 9 EA b129 Linux x64:
-------------------
0x00007fe06bd270c2      * java.lang.Object.wait(long) bci:-520544688 
(Interpreted frame)
0x00007fe06bd1a443      sun.jvm.hotspot.utilities.AssertionFailure: illegal bci
        at 
sun.jvm.hotspot.utilities.Assert.that(jdk.hotspot.agent@9-ea/Assert.java:32)
        at 
sun.jvm.hotspot.oops.ConstMethod.getLineNumberFromBCI(jdk.hotspot.agent@9-ea/ConstMethod.java:297)
        at 
sun.jvm.hotspot.oops.Method.getLineNumberFromBCI(jdk.hotspot.agent@9-ea/Method.java:282)
        at 
sun.jvm.hotspot.tools.PStack.getJavaNames(jdk.hotspot.agent@9-ea/PStack.java:239)
        at 
sun.jvm.hotspot.tools.PStack.run(jdk.hotspot.agent@9-ea/PStack.java:112)
-------------------

   jhsdb can parse compiled frame correctly. It seems to be a problem for 
interpreter frame only.
   What is the cause of this problem?
   interpretedVFrame in HotSpot has changed the location to store BCP?


2. Normal mode cannot work
   "jhsdb jstack" should work as normal mode without being added --mixed option.
   However, this command always works as mixed mode.
   I think we can fix as below:
-------------------
diff -r 5acd2b561936 
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/JStack.java
--- a/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/JStack.java     
Tue Aug 02 20:55:27 2016 -0700
+++ b/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/JStack.java     
Wed Aug 03 21:18:57 2016 +0900
@@ -68,6 +68,10 @@
     }

     public void runWithArgs(String... args) {
+        // We should recover these mode to default value.
+        mixedMode = false;
+        concurrentLocks = false;
+
         int used = 0;
         for (int i = 0; i < args.length; i++) {
             if (args[i].equals("-m")) {
-------------------


Has someone worked for them?
If not so, and patch of 2. is correct, I file it to JBS and upload webrev.


Thanks,

Yasumasa


Reply via email to