jhsdb jstack cannot work correctly
Yasumasa Suenaga
yasuenag at gmail.com
Wed Aug 3 12:20:48 UTC 2016
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 at 9-ea/Assert.java:32)
at sun.jvm.hotspot.oops.ConstMethod.getLineNumberFromBCI(jdk.hotspot.agent at 9-ea/ConstMethod.java:297)
at sun.jvm.hotspot.oops.Method.getLineNumberFromBCI(jdk.hotspot.agent at 9-ea/Method.java:282)
at sun.jvm.hotspot.tools.PStack.getJavaNames(jdk.hotspot.agent at 9-ea/PStack.java:239)
at sun.jvm.hotspot.tools.PStack.run(jdk.hotspot.agent at 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
More information about the serviceability-dev
mailing list