我正在使用JMAP在执行Java程序时创建JVM的堆转储。然后使用JHAT我在浏览器中打开转储详细信息。
现在,我可以看到内存转储的许多细节,但我不知道如何简单地查看程序变量值及其值。你能指导我吗?我只需要使用命令行来显示变量名称和值。
提前致谢!
答案 0 :(得分:2)
最简单的方法是使用jvisualvm:转到文件菜单>加载>选择"堆转储"在下拉框中选择您的转储文件。
现在,您可以浏览各种类并查看其字段的值。
答案 1 :(得分:0)
浏览器更友好,您可以在这里找到快速教程
http://petermodzelewski.blogspot.in/2013/06/short-jhat-tutorial-diagnosing.html
用于命令行用法
http://docs.oracle.com/javase/7/docs/technotes/tools/share/jhat.html
[编辑]
第1步:让应用程序继续运行
第2步:找到进程ID(pID --say 4416) 第3步:从(JDKHOME)
运行以下命令jmap -dump:live,file = snapshot.11212013 4416
运行此功能后,您应该收到一条消息
创建了heatdump
步骤4:执行以下命令启动jHat(
jhat -J-Xmx1024m snapshot.11212013
你应该收到一条消息说
快照已解决。 在端口7000上启动HTTP服务器 服务器准备就绪。
步骤5:打开浏览器:
http://localhost:7000/
步骤6:默认情况下,显示所有类的链接
第7步:搜索您的课程(查找浏览器选项)
步骤8:点击链接应该到一个页面,在那里你可以看到所有变量,引用,子类及其内存使用情况
-