android 常见死机问题-如何分析
https://blog.csdn.net/lansefeiyang08/article/details/17438759
android 动态库死机调试方法
https://blog.csdn.net/andyhuabing/article/details/7074979
android 常见死机问题--log分析
https://blog.csdn.net/YinYueRenZhangWenDa/article/details/52474791
Android 开机log以及常见异常
https://blog.csdn.net/Easyhood/article/details/79771006
高通平台Linux kernel死机解题心得
https://blog.csdn.net/forever_2015/article/details/77434580
android测试手机不显示崩溃日志
https://blog.csdn.net/qq_37879717/article/details/78969344
暗码开启保存log的功能
华为手机调试Android程序崩溃不打印Log
https://blog.csdn.net/qq_29840797/article/details/48861979
步骤
- 在拨号界面输入:*#*#2846579#*#*
- 工程菜单
- 后台设置
- LOG设置
- LOG打开
- 重启手机
高通平台android系统死机了,kernel log抓不全,无法看到死机时的log,这个有什么办法抓到
https://bbs.csdn.net/topics/392076464
android抓取各种log的方法
https://blog.csdn.net/matthewei6/article/details/50596983
Android 启动问题 黑屏 死机 解决方法
https://blog.csdn.net/kahncc/article/details/83824202
模拟器 AVD
Android 死锁解题案例 - 【01】
https://blog.csdn.net/forever_2015/article/details/52653301
Android 开机log以及常见异常
https://blog.csdn.net/Easyhood/article/details/79771006
下面列举一些常见android程序发生错误时抛出的异常,查找关键字xxxException可以快速定位android层错误以及原因:
- Java.lang.NullPointerException:
- 空指针异常
- java.lang.ClassNotFoundException:
- 找不到类抛出的异常
- java.lang.ArithmeticException:
- 一个整数“除以零”时抛出的异常
- java.lang.ArrayIndexOutOfBoundsException:
- 数组越界访问以后抛出的异常
- java.lang.IllegalArgumentException:
- 传入非法参数抛出的异常
- java.lang.IllegalAccessException:
- 当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常
- java.lang.SecturityException:
- 安全异常。由安全管理器抛出,用于指示违反安全情况的异常
- java.lang.RuntimeException
- 运行时异常。是所有Java虚拟机正常操作期间可以被抛出的异常的父类。
- java.lang.NumberFormatException:
- 字符串转换为数字异常:
- java.lang.StackOverflowError:
- 堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。
- java.lang.RuntimeException
- java.lang.OutOfMemoryError:
- 内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。
- java.lang.IOException:
- 输入输出异常
- java.lang.AbstractMethodError:
- 抽象方法错误。当应用试图调用抽象方法时抛出。
- java.lang.ClassFormatError:
- 类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。
- java.lang.InstantiationError:
- 实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常.
- java.lang.InternalError:内部错误。用于指示Java虚拟机发生了内部错误。
- java.lang.NoSuchMethodError
- 方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。
- java.lang.VirtualMachineError
- 虚拟机错误。用于指示虚拟机被破坏或者继续执行操作所需的资源不足的情况
- java.lang.ClassCastException
- 类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。
- java.lang.InterruptedException
- 被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。
- java.lang.IllegalStateException
- 违法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。
- java.lang.ExceptionInInitializerError
- 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。
Android Tombstone/Crash的log分析和定位
https://www.cnblogs.com/hrhguanli/p/4050263.html
Android Native Crash 分析指南
https://www.jianshu.com/p/dda4bce94a1a
数组分配内存过大导致SIGSEGV信号(段错误)
https://www.jianshu.com/p/9215bc884edc
三、分析与解决
SIGSEGV:指示进程进行了一次无效的内存引用(通常说明程序有错,若访问了一个未经初始化的指针)。名字SEGV代表“段违例”(segmentation violation).
SIGSEGV的默认动作是终止+core
—— 《UNIX环境高级编程》
对于不正确的内存处理,计算机程序可能抛出SIGSEGV。操作系统可能使用信号栈向一个处于自然状态的应用程序通告错误,在一个程序接收到SIGSEGV时的默认动作是异常终止。这个动作也许会结束进程,但是可能生成一个核心文件以帮助调试。
SIGSEGV可以被捕获。也就是说,应用程序可以请求它们想要的动作,以替代默认发生的动作。这样的动作可以是忽略它、调用一个函数,或恢复默认的动作。在一些情形下,忽略SIGSEGV导致未定义的行为。
在以后调试过程中,如果再遇到SIGSEGV信号导致的段错误,就要仔细检查程序中内存的使用,避免内存的非法引用。
作者:guotianqing
链接:https://www.jianshu.com/p/9215bc884edc
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
如何捕捉并分析SIGSEGV的现场
https://www.cnblogs.com/thammer/p/6026919.html
linux下程序对SIGSEGV信号的默认处理方式是产生coredump并终止程序,可以参考man 7 signal
|
Linux 常见死机原因
https://blog.csdn.net/guomsh/article/details/8750058
分析如何查找Linux死机的原因
https://blog.csdn.net/hu_jinghui/article/details/80162260
https://blog.csdn.net/konglongaa/article/details/82718450
Kernel Panic
X 的问题还好办,可是如果 RPWT 碰到 Kernel Panic,那可真是上天无路入地无门,撞墙的心都有 :evil: .
一般引起 Kernel Panic 的原因很多,但是都比较罕见。例如硬件问题 (irqconfilct, bad block, hightemperature),软件问题(错误的 mod,内核的 Bug),或者文件系统不支持(没有内建 ext4 支持却挂载ext4 的 root 分区),硬件的变动(如添加/更换内存,不支持架构的cpu),错误的驱动。
Kernel Panic 的表现形式也是多种多样:启动失败,不正常的长时间 io 操作,键盘灯的不正常频闪,wireless 等指示灯错误闪烁,无响应(请区别 xorg crash 情况),彻底锁死,黑屏,reisub 大法不灵 等等。
linux系统很卡的基本排查方法
https://blog.csdn.net/zhubaoJay/article/details/60959667
通过Android trace文件分析死锁ANR
https://blog.csdn.net/oujunli/article/details/9102101
Android 系统(115)---死机问题分析
https://blog.csdn.net/zhangbijun1230/article/details/80763403
Android的死机、重启问题分析方法
https://blog.csdn.net/jinlu7611/article/details/50592385
Android的死机、重启问题分析方法
1. 死机现象
1.1 死机定义
当手机长时间无法再被用户控制操作时,我们称为死机。在这里我们强调长时间,如果是短时间,归结为性能问题。
1.2 死机表现
* 用户操作手机无任何响应,如触摸屏幕,按键操作等。
* 手机屏幕黑屏,无法点亮屏幕。
* 手机界面显示内容和用户输入不相干。
1. 系统简图
当用户对手机进行操作时,对应的数据流将是下面一个概括的流程图
* HW 如传感器,触摸屏(TP),物理按键(KP)等感知到用户操作后,触发相关的中断(ISR)传递给Kernel,Kernel相关的driver 对这些中断进行处理后,转化成标准的InputEvent。
* UserSpace 的System Server中的Input System则持续监听Kernel传递上来的原始InputEvent,对其进行进一步的处理后,变成上层APP可直接处理的Input Event,如button点击,长按,滑动等等。
* APP 对相关的事件进行处理后,请求更新相关的逻辑界面,而这个则由System Server中的WMS 等来负责。
* 相关的逻辑界面更新后,则会请求SurfaceFlinger来产生FrameBuffer数据,SurfaceFlinger则会利用GPU 等来计算生成。
* DisplaySystem/Driver 则会将FrameBuffer中的数据更新显示出来,这样用户才能感知到他的操作行为。
---------------------
作者:jinlu7611
来源:CSDN
原文:https://blog.csdn.net/jinlu7611/article/details/50592385
版权声明:本文为博主原创文章,转载请附上博文链接!