问题描述
经过一段时间运行我的Java服务器应用程序后,我在Solaris上遇到了Oracle Java虚拟机的奇怪行为.通常,当jvm hs_err_pid.log文件发生崩溃时(位置由-XX:ErrorFilejvm参数确定,如下所述:如何禁止创建hs_err_pid文件?
但在我的情况下,文件没有创建,唯一剩下的是core核心转储文件.
使用pstack和pflags标准的Solaris工具,我能够从core文件中收集有关崩溃的更多信息(包含在下面).
试过的解决方案
试图找到hs_err_pid.log整个文件系统中的所有文件,但找不到任何文件(甚至在应用程序工作目录之外).即:
find / -name "hs_err_pid*"
我试图找到与jvm相关的jvm错误,但我找不到类似于这种情况的有趣内容.
hs_err_pid.log文件丢失了,当然OS平台也不同了.core文件中提取了堆转储jmap并使用Eclipse MAT进行了分析.我发现了一个泄漏(添加到HashMap的元素,在核心转储1,4 M元素时永远不会被清除).然而,这并不能解释为什么hs_err_pid.log没有生成文件,也没有jvm崩溃.LinkedList):
java -Xmx1444m Test结果java.lang.OutOfMemoryError: Java heap space,java -Xmx2048m Test结果java.lang.OutOfMemoryError: Java heap space,java -Xmx3600m Test 核心转储的结果.这个问题
有没有人遇到类似jvm的问题,如何在这种情况下继续查找实际发生的事情(即在什么情况下核心从jvm转储而没有hs_err_pid.log创建文件)?
解决这个问题的任何提示或指针都会非常有用.
提取的标志 …
在开发人员指南中,可以说a Fragment可以在运行时以编程方式添加到现有的ViewGroup.我的问题是:这ViewGroup与申请有何关联?
到目前为止,我已经尝试ViewGroup在描述应用程序布局的xml文件中声明一个.但是当我尝试Fragment使用该public abstract FragmentTransaction add (int containerViewId, Fragment fragment, String tag)函数添加一个时,我的应用程序崩溃(不是立即崩溃,而是在onCreate我的应用程序的功能结束时).
我真正想要做的是Fragment在我的应用程序中管理多个视图(实现为),并根据用户的选择在它们之间切换.我应该在我的方法中添加(或更改)什么?
提前感谢您花费时间来帮助我.