首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法对我的java应用程序运行jstack -l

无法对我的java应用程序运行jstack -l
EN

Stack Overflow用户
提问于 2014-09-22 17:41:11
回答 1查看 1.1K关注 0票数 2

我的应用程序卡住了,然后我想检查线程状态。但是我不能通过jstack -l 33822从我的应用程序中获取线程转储。

代码语言:javascript
运行
复制
Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding

然后,我使用-F尝试进行线程转储。我得到一个错误,如下:

代码语言:javascript
运行
复制
    Attaching to process ID 33822, please wait...
    Debugger attached successfully.
    Server compiler detected.
    JVM version is 23.21-b01
    Deadlock Detection:
    sun.jvm.hotspot.debugger.UnmappedAddressException: 3780320
            at sun.jvm.hotspot.debugger.PageCache.checkPage(PageCache.java:208)
            at sun.jvm.hotspot.debugger.PageCache.getData(PageCache.java:63)
            at sun.jvm.hotspot.debugger.DebuggerBase.readBytes(DebuggerBase.java:217)
            at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.readCInteger(LinuxDebuggerLocal.java:482)
            at sun.jvm.hotspot.debugger.DebuggerBase.readCompOopAddressValue(DebuggerBase.java:459)
            at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.readCompOopHandle(LinuxDebuggerLocal.java:442)
            at sun.jvm.hotspot.debugger.linux.LinuxAddress.getCompOopHandleAt(LinuxAddress.java:125)
            at sun.jvm.hotspot.oops.Oop.getKlassForOopHandle(Oop.java:231)
            at sun.jvm.hotspot.oops.ObjectHeap.newOop(ObjectHeap.java:380)
            at sun.jvm.hotspot.runtime.JavaThread.getThreadObj(JavaThread.java:331)
            at sun.jvm.hotspot.runtime.JavaThread.getCurrentParkBlocker(JavaThread.java:383)
            at sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:82)
            at sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:39)
            at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:52)
            at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
            at sun.jvm.hotspot.tools.JStack.run(JStack.java:60)
            at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
            at sun.jvm.hotspot.tools.JStack.main(JStack.java:86)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:601)
            at sun.tools.jstack.JStack.runJStackTool(JStack.java:136)
            at sun.tools.jstack.JStack.main(JStack.java:102)
    sun.jvm.hotspot.debugger.UnmappedAddressException: 10
            at sun.jvm.hotspot.debugger.PageCache.checkPage(PageCache.java:208)
            at sun.jvm.hotspot.debugger.PageCache.getData(PageCache.java:63)
            at sun.jvm.hotspot.debugger.DebuggerBase.readBytes(DebuggerBase.java:217)
            at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.readCInteger(LinuxDebuggerLocal.java:482)
            at sun.jvm.hotspot.debugger.DebuggerBase.readCompOopAddressValue(DebuggerBase.java:459)
            at sun.jvm.hotspot.debugger.linux.LinuxDebuggerLocal.readCompOopHandle(LinuxDebuggerLocal.java:442)
            at sun.jvm.hotspot.debugger.linux.LinuxAddress.getCompOopHandleAt(LinuxAddress.java:125)
            at sun.jvm.hotspot.oops.Oop.getKlassForOopHandle(Oop.java:231)
            at sun.jvm.hotspot.oops.ObjectHeap.newOop(ObjectHeap.java:356)
            at sun.jvm.hotspot.oops.NarrowOopField.getValue(NarrowOopField.java:44)
            at sun.jvm.hotspot.oops.OopUtilities.threadOopGetParkBlocker(OopUtilities.java:294)
            at sun.jvm.hotspot.runtime.JavaThread.getCurrentParkBlocker(JavaThread.java:385)
            at sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:82)
            at sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:39)
            at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:52)
            at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
            at sun.jvm.hotspot.tools.JStack.run(JStack.java:60)
            at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
            at sun.jvm.hotspot.tools.JStack.main(JStack.java:86)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:601)
            at sun.tools.jstack.JStack.runJStackTool(JStack.java:136)
            at sun.tools.jstack.JStack.main(JStack.java:102)
    Can't print deadlocks:10

它是JVM的defect吗?

EN

回答 1

Stack Overflow用户

发布于 2015-09-16 19:49:54

你确定线程转储不会发生吗?我们得到这个错误,但在一小段等待之后,我们仍然得到一个线程转储

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25970990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档