美文网首页
mac上 jmap命令 Can't attach symboli

mac上 jmap命令 Can't attach symboli

作者: Always_July | 来源:发表于2021-09-19 18:11 被阅读0次

    当前版本

    mac 版本 BigSur 11.4
    java 版本 1.8.0_191

    现象

    zhenghong@localhost  ~  jmap -heap 30096
    Attaching to process ID 30096, please wait...
    Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach symbolicator to the process
    sun.jvm.hotspot.debugger.DebuggerException: sun.jvm.hotspot.debugger.DebuggerException: Can't attach symbolicator to the process
        at sun.jvm.hotspot.debugger.bsd.BsdDebuggerLocal$BsdDebuggerLocalWorkerThread.execute(BsdDebuggerLocal.java:169)
        at sun.jvm.hotspot.debugger.bsd.BsdDebuggerLocal.attach(BsdDebuggerLocal.java:287)
        at sun.jvm.hotspot.HotSpotAgent.attachDebugger(HotSpotAgent.java:671)
        at sun.jvm.hotspot.HotSpotAgent.setupDebuggerDarwin(HotSpotAgent.java:659)
        at sun.jvm.hotspot.HotSpotAgent.setupDebugger(HotSpotAgent.java:341)
        at sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:304)
        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.HeapSummary.main(HeapSummary.java:49)
        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:498)
        at sun.tools.jmap.JMap.runTool(JMap.java:201)
        at sun.tools.jmap.JMap.main(JMap.java:130)
    Caused by: sun.jvm.hotspot.debugger.DebuggerException: Can't attach symbolicator to the process
        at sun.jvm.hotspot.debugger.bsd.BsdDebuggerLocal.attach0(Native Method)
        at sun.jvm.hotspot.debugger.bsd.BsdDebuggerLocal.access$100(BsdDebuggerLocal.java:65)
        at sun.jvm.hotspot.debugger.bsd.BsdDebuggerLocal$1AttachTask.doit(BsdDebuggerLocal.java:278)
        at sun.jvm.hotspot.debugger.bsd.BsdDebuggerLocal$BsdDebuggerLocalWorkerThread.run(BsdDebuggerLocal.java:144)
    

    问题原因

    JDK-8160376 DebuggerException: Can't attach symbolicator to the process

    解决方法,使用新版本jdk

    华为云jdk下载镜像地址

    下载jdk11安装

    ./jmap -heap 30677
    Error: -heap option used
    Cannot connect to core dump or remote debug server. Use jhsdb jmap instead
    

    jmap命令不支持, 使用 jhsdb代替

     ./jhsdb jmap --heap --pid 30877
    Attaching to process ID 30877, please wait...
    Error attaching to process: java.lang.RuntimeException: can't determine target's VM version : field "_reserve_for_allocation_prefetch" not found in type ThreadLocalAllocBuffer
    sun.jvm.hotspot.debugger.DebuggerException: java.lang.RuntimeException: can't determine target's VM version : field "_reserve_for_allocation_prefetch" not found in type ThreadLocalAllocBuffer
        at jdk.hotspot.agent/sun.jvm.hotspot.HotSpotAgent.setupVM(HotSpotAgent.java:436)
        at jdk.hotspot.agent/sun.jvm.hotspot.HotSpotAgent.go(HotSpotAgent.java:306)
        at jdk.hotspot.agent/sun.jvm.hotspot.HotSpotAgent.attach(HotSpotAgent.java:141)
        at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:185)
        at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:118)
        at jdk.hotspot.agent/sun.jvm.hotspot.tools.JMap.main(JMap.java:176)
        at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJMAP(SALauncher.java:326)
        at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:455)
    Caused by: java.lang.RuntimeException: can't determine target's VM version : field "_reserve_for_allocation_prefetch" not found in type ThreadLocalAllocBuffer
    
    
    

    现在报另外一个报错,我启动进程使用的java8,改成java11。

    
    ./jhsdb jmap --heap --pid 31103
    Attaching to process ID 31103, please wait...
    Debugger attached successfully.
    Server compiler detected.
    JVM version is 11+28
    
    using thread-local object allocation.
    Garbage-First (G1) GC with 8 thread(s)
    
    Heap Configuration:
       MinHeapFreeRatio         = 40
       MaxHeapFreeRatio         = 70
       MaxHeapSize              = 125829120 (120.0MB)
       NewSize                  = 1363144 (1.2999954223632812MB)
       MaxNewSize               = 75497472 (72.0MB)
       OldSize                  = 5452592 (5.1999969482421875MB)
       NewRatio                 = 2
       SurvivorRatio            = 8
       MetaspaceSize            = 21807104 (20.796875MB)
       CompressedClassSpaceSize = 1073741824 (1024.0MB)
       MaxMetaspaceSize         = 17592186044415 MB
       G1HeapRegionSize         = 1048576 (1.0MB)
    
    Heap Usage:
    G1 Heap:
       regions  = 120
       capacity = 125829120 (120.0MB)
       used     = 13631488 (13.0MB)
       free     = 112197632 (107.0MB)
       10.833333333333334% used
    G1 Young Generation:
    Eden Space:
       regions  = 14
       capacity = 27262976 (26.0MB)
       used     = 14680064 (14.0MB)
       free     = 12582912 (12.0MB)
       53.84615384615385% used
    Survivor Space:
       regions  = 0
       capacity = 0 (0.0MB)
       used     = 0 (0.0MB)
       free     = 0 (0.0MB)
       0.0% used
    G1 Old Generation:
       regions  = 0
       capacity = 98566144 (94.0MB)
       used     = 0 (0.0MB)
       free     = 98566144 (94.0MB)
       0.0% used
    

    相关文章

      网友评论

          本文标题:mac上 jmap命令 Can't attach symboli

          本文链接:https://www.haomeiwen.com/subject/jskpgltx.html