Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JMAP获取heapdump时出现异常_Java_Exception_Jmap - Fatal编程技术网

Java 使用JMAP获取heapdump时出现异常

Java 使用JMAP获取heapdump时出现异常,java,exception,jmap,Java,Exception,Jmap,当我使用 jmap-F-dump:format=b,file=/tmp/heapdump/before.hprof 10737 Attaching to process ID 10737, please wait... Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

当我使用

jmap-F-dump:format=b,file=/tmp/heapdump/before.hprof 10737

Attaching to process ID 10737, please wait...
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at sun.tools.jmap.JMap.runTool(JMap.java:179)
    at sun.tools.jmap.JMap.main(JMap.java:110)
Caused by: java.lang.RuntimeException: Type "nmethodBucket*", referenced in VMStructs::localHotSpotVMStructs in the remote VM, was not present in the remote VMStructs::localHotSpotVMTypes table (should have been caught in the debug build of that VM). Can not continue.
    at sun.jvm.hotspot.HotSpotTypeDataBase.lookupOrFail(HotSpotTypeDataBase.java:361)
    at sun.jvm.hotspot.HotSpotTypeDataBase.readVMStructs(HotSpotTypeDataBase.java:252)
    at sun.jvm.hotspot.HotSpotTypeDataBase.<init>(HotSpotTypeDataBase.java:87)
    at sun.jvm.hotspot.bugspot.BugSpotAgent.setupVM(BugSpotAgent.java:568)
    at sun.jvm.hotspot.bugspot.BugSpotAgent.go(BugSpotAgent.java:494)
    at sun.jvm.hotspot.bugspot.BugSpotAgent.attach(BugSpotAgent.java:332)
    at sun.jvm.hotspot.tools.Tool.start(Tool.java:163)
    at sun.jvm.hotspot.tools.HeapDumper.main(HeapDumper.java:77)
正在附加到进程ID 10737,请稍候。。。
线程“main”java.lang.reflect.InvocationTargetException中出现异常
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
位于sun.tools.jmap.jmap.runTool(jmap.java:179)
位于sun.tools.jmap.jmap.main(jmap.java:110)
原因:java.lang.RuntimeException:类型“nmethodBucket*”,在远程VM中的VMStructs::localHotSpotVMStructs中引用,在远程VMStructs::localHotSpotVMTypes表中不存在(应该在该VM的调试生成中捕获)。无法继续。
位于sun.jvm.HotSpotTypeDataBase.lookupOrFail(hostpottypedatabase.java:361)
位于sun.jvm.HotSpotTypeDataBase.readVMStructs(hostpottypedatabase.java:252)
位于sun.jvm.HotSpotTypeDataBase。(hostpottypedatabase.java:87)
位于sun.jvm.hotspot.bugspot.BugSpotAgent.setupVM(BugSpotAgent.java:568)
位于sun.jvm.hotspot.bugspot.BugSpotAgent.go(BugSpotAgent.java:494)
位于sun.jvm.hotspot.bugspot.BugSpotAgent.attach(BugSpotAgent.java:332)
位于sun.jvm.hotspot.tools.Tool.start(Tool.java:163)
位于sun.jvm.hotspot.tools.HeapDumper.main(HeapDumper.java:77)

有人知道如何解决这个问题吗?

我看到了相同的错误,因为我到jmap的路径与到java进程的路径不同(即,针对两个不同的版本)


用我的JDK的完整路径运行jmap解决了这个问题。

如果使用OpenJDK,则需要安装debuginfo包

在Centos中,这与 -
sudo debuginfo安装java-1.8.0-openjdk
-或者
sudo-yum安装java-1.8.0-openjdk-debuginfo.x86_64

看 -
-

谢谢,我遇到了同样的问题,这是因为我使用了不同的jdk版本来运行jmap。我看到了这个错误,尽管只安装了一个jdk,并且与流程使用的相同。