关于javacrashh的信息
本篇文章给大家谈谈javacrashh,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java程序崩溃找不到原因?
- 2、我的Java应用为什么Crash
- 3、eclipse 打开java 崩溃
- 4、JVM崩溃是什么原因
- 5、Java程序执行了一部分,突然中断,报如下错误,应该怎么解决
java程序崩溃找不到原因?
好像是java的虚拟内存溢出了,检查你的代码是否有死循环或其他不规范的地方
我的Java应用为什么Crash
android framework分为java和native两层
native运行于C的runtime,高效。一般java层只是封装,通过jni访问native底层HAL,driver的crash也会导致上层的crash
,有效利用Log信息并对其进行分析与实时的监控管理,对于分析Android手机发生Crash的原因具有极为重要的作用。
Android Log 文件类型
由于Android上的应用程序千差万别,出现的问题也不尽相同。不过Bug类型还是有规律可循的,可以根据生成的Log文件找到相应的错误,通常错误信息里记录了错误的大致位置,据此可以捕获到问题的关键信息。
Log文件记录着每次操作的信息,在出现问题后可以借助log信息分析以达到解决问题的目的,Log文件类型主要分为以下几种:
(1) Logcat: Main缓存日志,通过运行logcat命令,可以获得系统中使用的标记和优先级的列表,也可以加上过滤器进行表达式限制,只输出测试人员及研发人员感兴趣的标记-优先级组合。
……………………
(2) Bugreport: Java应用程序Crash时会产生一个Bugreport文件,该文件主要包括三个方面的内容:
Dumpstate:内存信息,Cpu信息,Procrank信息,系统日志,Vm Trace信息等。
Build.Prop:当前版本、当前命令、显示系统Build的一些属性等;
Dumpsys:Dump Of Service Meminfo(显示某个进程更详细的内存消耗情况以及Native And Java (Dalvik)堆栈的统计数) ;
(3) Crashdump: 每次Crash都会产生一个Crashdump文件,文件包括主日志,Java 堆栈信息,本地调用堆栈,虚拟机/进程堆,Log缓存,内存信息,进程列表,Modem信息,Adb Log等信息;
(4) Bratlog: 测试用例及详细信息;
(5) Logalong: 事件,如手机通讯功能信息等;
(6) Pullfs: Traces(Java 堆栈信息);
(7) Procrank: Uss(Unique Set Size) 值,进程独自占用的物理内存。
eclipse 打开java 崩溃
这句话:
# The crash happened outside the Java Virtual Machine in native code.
是在说,进程崩溃发生在 JVM 之外的 native 代码,因此这是第三方的 dll / so 库的问题,不是 Java 的毛病。具体原因不清楚,本身这个 dump core 错误只是给 JVM 的开发支持人员看的,我们作为应用程序开发人员是看不懂它的日志的,除非你同时也精通 C / C++ 或汇编。
看上去你使用 -server 方式启动 eclipse,是想让 eclipse 得到更好的性能,它本身会导致 jvm 申请更多的内存,可能会挤压其它应用程序的内存需求,比如当你在同一台机器又开另一个程序来 debug 时。一般来说 -server 方式是给专职服务器用的,它们基本上不存在把进程在前台和后台之间频繁切换,也不存在多个应用程序抢内存的事情。
当内存紧张时 JVM 本身的内置的 API 的 dll 部分也经常会报告错误,比如读取一个 jar 会打开一个文件输入流都可能出现未知异常,但一般 jvm 知道这件事,它不会说:崩溃发生在 jvm 之外。
JVM崩溃是什么原因
Java的应用有时候会因为各种原因Crash,这时候会产生一个类似java_errorpid.log的错误日志。可以拿到了
这个日志,怎样分析Crash的原因呢?下面我们来详细讨论如何分析java_errorpid.log的错误日志。
一. 如何得到这个日志文件
如果有一个严重的错误引起Java进程非正常退出,我们叫Crash,这时候会产生一个日志文件。缺省情况下,这个
文件会产生在工作目录下。但是,可以在Java启动参数通过下面的设置,来改变这个文件的位置和命名规则。例如:
java -XX:ErrorFile=/var/log/java/java_error_%p.log
就将这个错误文件放在/var/log/java下,并且以java_error_pid.log的形式出现。
二.产生错误的原因
造成严重错误的原因有多种可能性。Java虚拟机自身的Bug是原因之一,但是这种可能不是很大。在绝大多数情况下,是由于系统的库文件、API或第三方的库文件造成的;系统资源的短缺也有可能造成这种严重的错误。在发生了Crash之后,如果无法定位根本原因,也应该迅速找到Work Around的方法。
三.对日志文件的分析
首先要检查日志的文件头:例如,下面是从一个客户发过来的错误日志的文件头
Java程序执行了一部分,突然中断,报如下错误,应该怎么解决
似乎是Tomcat出现了问题,你能否把那个:(D:\Java\apache-tomcat-6.0.20\bin\hs_err_pid6076.log)文件中的最后日志记录上传上来看看?好像是内存托管出现了异常,和Java虚拟机没有关系
javacrashh的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javacrashh的信息别忘了在本站进行查找喔。