关于javacrashh的信息

博主:adminadmin 2023-01-16 06:03:07 723

本篇文章给大家谈谈javacrashh,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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的信息别忘了在本站进行查找喔。