首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到jvm

连接到jvm
EN

Stack Overflow用户
提问于 2013-05-18 22:08:41
回答 1查看 471关注 0票数 1

我想访问jvm堆来遍历对象。我发现下面的example是如何做到这一点的。我使用jdk1.7.0_11

我尝试了以下代码:

代码语言:javascript
复制
public static void main(String[] args) {
    RuntimeMXBean runtimeBean = ManagementFactory.getRuntimeMXBean();
    System.out.println(runtimeBean.getVmName());
    System.out.println(runtimeBean.getVmVendor());
    System.out.println(runtimeBean.getVmVersion());
    String jvmName = runtimeBean.getName();
    BugSpotAgent agent = new BugSpotAgent();
    agent.attach(Integer.parseInt(jvmName.split("@")[0])); // exception here!!!!

    VM.initialize(null, false);
    VM vm = VM.getVM();

    System.out.println(vm.getVMInternalInfo());

    ObjectHeap heap = vm.getObjectHeap();
    heap.iterate(new CustomHeapVisitor());
}

输出如下:

代码语言:javascript
复制
Java HotSpot(TM) 64-Bit Server VM
Oracle Corporation
23.6-b04

和例外:

代码语言:javascript
复制
   Exception in thread "main" sun.jvm.hotspot.debugger.DebuggerException: Windbg Error: AttachProcess failed!
    at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.attach0(Native Method)
    at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal.attach(WindbgDebuggerLocal.java:152)
    at sun.jvm.hotspot.bugspot.BugSpotAgent.attachDebugger(BugSpotAgent.java:789)
    at sun.jvm.hotspot.bugspot.BugSpotAgent.setupDebuggerWin32(BugSpotAgent.java:712)
    at sun.jvm.hotspot.bugspot.BugSpotAgent.setupDebugger(BugSpotAgent.java:515)
    at sun.jvm.hotspot.bugspot.BugSpotAgent.go(BugSpotAgent.java:492)
    at sun.jvm.hotspot.bugspot.BugSpotAgent.attach(BugSpotAgent.java:331)
    at mishanesterenko.jdi.Main.main(Main.java:27)

还应该做些什么才能使其正常工作呢?最后,我想访问堆中的jvm对象图并搜索该图。

EN

回答 1

Stack Overflow用户

发布于 2013-11-21 16:21:18

代码语言:javascript
复制
agent.attach(Integer.parseInt(jvmName.split("@")[0])); // exception here!!!!

关于上面,我认为你应该传递另一个jvm进程id,而不是当前的进程id。

您可以删除此行:

代码语言:javascript
复制
VM.initialize(null, false);

所以,我可以很好地工作。

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

https://stackoverflow.com/questions/16625191

复制
相关文章

相似问题

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