Jstack挂起并且无法捕获堆栈信息

dem*_*guy 5 java freeze jstack

我的java程序挂在那里,我无法调试它。这是我尝试过的

  1. jstack $pid,挂起并且从不响应
  2. jstack -F $pid 与/proc/sys/kernel/yama/ptrace_scope == 0. 得到下面的错误
Error: -F option used
Cannot connect to core dump or remote debug server. Use jhsdb jstack instead
Run Code Online (Sandbox Code Playgroud)
  1. 然后我尝试了jhsdb jstack --pid $pid。仍然永远挂着,我得到了
Attaching to process ID 123212, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 11+28
Deadlock Detection:
Run Code Online (Sandbox Code Playgroud)

我按后CTRL+C。我有:

Attaching to process ID 123212, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 11+28
Deadlock Detection:

java.lang.RuntimeException: VM.initialize() was not yet called
    at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VM.getVM(VM.java:460)
    at jdk.hotspot.agent/sun.jvm.hotspot.types.basic.BasicTypeDataBase.findDynamicTypeForAddress(BasicTypeDataBase.java:299)
    at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VirtualBaseConstructor.instantiateWrapperFor(VirtualBaseConstructor.java:102)
    at jdk.hotspot.agent/sun.jvm.hotspot.oops.Metadata.instantiateWrapperFor(Metadata.java:73)
    at jdk.hotspot.agent/sun.jvm.hotspot.oops.MetadataField.getValue(MetadataField.java:43)
    at jdk.hotspot.agent/sun.jvm.hotspot.oops.MetadataField.getValue(MetadataField.java:40)
    at jdk.hotspot.agent/sun.jvm.hotspot.oops.Klass.getNextLinkKlass(Klass.java:131)
    at jdk.hotspot.agent/sun.jvm.hotspot.classfile.ClassLoaderData.find(ClassLoaderData.java:96)
    at jdk.hotspot.agent/sun.jvm.hotspot.classfile.ClassLoaderDataGraph.find(ClassLoaderDataGraph.java:61)
    at jdk.hotspot.agent/sun.jvm.hotspot.memory.SystemDictionary.getAbstractOwnableSynchronizerKlass(SystemDictionary.java:116)
    at jdk.hotspot.agent/sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:84)
    at jdk.hotspot.agent/sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:39)
    at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:62)
    at jdk.hotspot.agent/sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
    at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.run(JStack.java:67)
    at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:260)
    at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:223)
    at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
    at jdk.hotspot.agent/sun.jvm.hotspot.tools.JStack.runWithArgs(JStack.java:90)
    at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJSTACK(SALauncher.java:259)
    at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:450)
Can't print deadlocks:VM.initialize() was not yet called
Exception in thread "main" java.lang.RuntimeException: VM.initialize() was not yet called
    at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VM.getVM(VM.java:460)

Run Code Online (Sandbox Code Playgroud)