2013-11-20 9 views
17
का उपयोग कर लेने

मैं निम्न अपवाद प्राप्त जब मैं एक heapdumpअपवाद है जब एक heapdump jmap

jmap एफ -dump का उपयोग कर लेते हैं: प्रारूप = ख, फ़ाइल =/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) 

कोई भी इसे हल करने के बारे में जानता है?

उत्तर

28

मुझे एक ही त्रुटि दिखाई दे रही थी क्योंकि jmap का मेरा मार्ग जावा प्रक्रिया के पथ के समान नहीं था (यानी दो अलग-अलग संस्करणों को लक्षित करना)।

मेरे जेडीके के पूर्ण पथ के साथ jmap चलाना इसे हल किया गया।

+0

धन्यवाद, मैं एक ही मुद्दे में भाग गया और यह था, क्योंकि मैं करने के लिए एक अलग JDK संस्करण का उपयोग कर रहा था जेएमएपी चलाएं। – Scot

+2

मुझे यह त्रुटि दिखाई देती है, हालांकि केवल एक जेडीके स्थापित है और यह वही है जो प्रक्रिया का उपयोग करता है। – jan

0

यदि ओपनजेडीके का उपयोग किया जाता है, तो इसे डीबगिनो-पैकेज की स्थापना की आवश्यकता होती है। sudo debuginfo-install java-1.8.0-openjdk - -

Centos में इस साथ काम करता है या sudo yum install java-1.8.0-openjdk-debuginfo.x86_64

देखें - https://bugzilla.redhat.com/show_bug.cgi?id=1010786#c15 - amazon linux - install openjdk-debuginfo?

संबंधित मुद्दे