Android 死机问题分析方法收集

 

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层错误以及原因:

  1. Java.lang.NullPointerException:  
  2. 空指针异常  
  3. java.lang.ClassNotFoundException:  
  4. 找不到类抛出的异常  
  5. java.lang.ArithmeticException:  
  6. 一个整数“除以零”时抛出的异常  
  7. java.lang.ArrayIndexOutOfBoundsException:  
  8. 数组越界访问以后抛出的异常  
  9. java.lang.IllegalArgumentException:  
  10. 传入非法参数抛出的异常  
  11. java.lang.IllegalAccessException:  
  12. 当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常  
  13. java.lang.SecturityException:  
  14. 安全异常。由安全管理器抛出,用于指示违反安全情况的异常  
  15. java.lang.RuntimeException  
  16. 运行时异常。是所有Java虚拟机正常操作期间可以被抛出的异常的父类。  
  17.  java.lang.NumberFormatException:  
  18. 字符串转换为数字异常:  
  19. java.lang.StackOverflowError:  
  20. 堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。  
  21. java.lang.RuntimeException   
  22. java.lang.OutOfMemoryError:  
  23. 内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。  
  24. java.lang.IOException:  
  25. 输入输出异常  
  26. java.lang.AbstractMethodError:  
  27. 抽象方法错误。当应用试图调用抽象方法时抛出。  
  28. java.lang.ClassFormatError:  
  29. 类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。  
  30. java.lang.InstantiationError:  
  31. 实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常.  
  32. java.lang.InternalError:内部错误。用于指示Java虚拟机发生了内部错误。  
  33. java.lang.NoSuchMethodError  
  34. 方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。  
  35. java.lang.VirtualMachineError  
  36. 虚拟机错误。用于指示虚拟机被破坏或者继续执行操作所需的资源不足的情况  
  37. java.lang.ClassCastException  
  38. 类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。  
  39. java.lang.InterruptedException  
  40. 被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。  
  41. java.lang.IllegalStateException  
  42. 违法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。  
  43. java.lang.ExceptionInInitializerError  
  44. 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的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

Signal     Value     Action   Comment

──────────────────────────────────────────────────────────────────────

SIGHUP        1       Term    Hangup detected on controlling terminal

                              or death of controlling process

SIGINT        2       Term    Interrupt from keyboard

SIGQUIT       3       Core    Quit from keyboard

SIGILL        4       Core    Illegal Instruction

SIGABRT       6       Core    Abort signal from abort(3)

SIGFPE        8       Core    Floating point exception

SIGKILL       9       Term    Kill signal

SIGSEGV      11       Core    Invalid memory reference

SIGPIPE      13       Term    Broken pipe: write to pipe with no

                              readers

SIGALRM      14       Term    Timer signal from alarm(2)

SIGTERM      15       Term    Termination signal

SIGUSR1   30,10,16    Term    User-defined signal 1

SIGUSR2   31,12,17    Term    User-defined signal 2

SIGCHLD   20,17,18    Ign     Child stopped or terminated

SIGCONT   19,18,25    Cont    Continue if stopped

SIGSTOP   17,19,23    Stop    Stop process

SIGTSTP   18,20,24    Stop    Stop typed at terminal

SIGTTIN   21,21,26    Stop    Terminal input for background process

SIGTTOU   22,22,27    Stop    Terminal output for background process


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  
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/dc3120/article/details/87872868