小编pkk*_*pkk的帖子

在Solaris上没有创建hs_err_pid.log文件并从jvm转储核心

问题描述

经过一段时间运行我的Java服务器应用程序后,我在Solaris上遇到了Oracle Java虚拟机的奇怪行为.通常,当jvm hs_err_pid.log文件发生崩溃时(位置由-XX:ErrorFilejvm参数确定,如下所述:如何禁止创建hs_err_pid文件?

但在我的情况下,文件没有创建,唯一剩下的是core核心转储文件.

使用pstackpflags标准的Solaris工具,我能够从core文件中收集有关崩溃的更多信息(包含在下面).

试过的解决方案

  • 试图找到hs_err_pid.log整个文件系统中的所有文件,但找不到任何文件(甚至在应用程序工作目录之外).即:

    find / -name "hs_err_pid*"

  • 我试图找到与jvm相关的jvm错误,但我找不到类似于这种情况的有趣内容.

  • 问题看起来有点类似于:Java VM:1.6.0_17和1.6.0_18都可重现SIGSEGV,如何报告?但我仍然无法确认这一点,因为hs_err_pid.log文件丢失了,当然OS平台也不同了.
  • (编辑)正如在分析java核心转储问题的工具的答案之一中所建议的那样,我已经从core文件中提取了堆转储jmap并使用Eclipse MAT进行了分析.我发现了一个泄漏(添加到HashMap的元素,在核心转储1,4 M元素时永远不会被清除).然而,这并不能解释为什么hs_err_pid.log没有生成文件,也没有jvm崩溃.
  • (EDIT2) 正如Darryl Miles所建议的那样,-Xmx限制已被检查(测试包含的代码无限期地将对象添加到a 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创建文件)?

解决这个问题的任何提示或指针都会非常有用.

提取的标志 …

java jvm solaris segmentation-fault jvm-crash

6
推荐指数
1
解决办法
2万
查看次数

将片段添加到ViewGroup

在开发人员指南中,可以说a Fragment可以在运行时以编程方式添加到现有的ViewGroup.我的问题是:这ViewGroup与申请有何关联?

到目前为止,我已经尝试ViewGroup在描述应用程序布局的xml文件中声明一个.但是当我尝试Fragment使用该public abstract FragmentTransaction add (int containerViewId, Fragment fragment, String tag)函数添加一个时,我的应用程序崩溃(不是立即崩溃,而是在onCreate我的应用程序的功能结束时).

我真正想要做的是Fragment在我的应用程序中管理多个视图(实现为),并根据用户的选择在它们之间切换.我应该在我的方法中添加(或更改)什么?

提前感谢您花费时间来帮助我.

java android fragment

4
推荐指数
1
解决办法
4739
查看次数

标签 统计

java ×2

android ×1

fragment ×1

jvm ×1

jvm-crash ×1

segmentation-fault ×1

solaris ×1