我正在尝试获取JVM的线程转储。我使用了top命令和ps aux来找到进程ID和pid [root]用户。
所以我运行以下命令来获取线程转储
须藤-u根jstack -F PID > threaddump1.txt
但是我正在遵循以下异常---------------------------------
附加到进程时出错:似乎不是HotSpot VM(在远程进程中找不到符号“ gHotSpotVMTypes”)
sun.jvm.hotspot.debugger.DebuggerException: Doesn't appear to be a HotSpot VM (could not find symbol "gHotSpotVMTypes" in remote process)** at sun.jvm.hotspot.HotSpotAgent.setupVM(HotSpotAgent.java:411) at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:305) at sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:140) at sun.jvm.hotspot.tools.Tool.start(Tool.java:185) at sun.jvm.hotspot.tools.Tool.execute(Tool.java:118) at sun.jvm.hotspot.tools.JStack.main(JStack.java:92) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at sun.tools.jstack.JStack.runJStackTool(JStack.java:140) at sun.tools.jstack.JStack.main(JStack.java:106)
任何帮助,建议或意见,我们深表感谢。
好。我终于可以找出问题所在。tomcat在docker下运行。所以我必须在docker中运行命令。我遵循以下提到的步骤。
1. Access the docker 2. Find the PID of tomcat by running command within docker. 3. Run command /<oracle path>/bin/jstack PID >> filename