常见Android Native崩溃及错误原因

http://www.droidsec.cn/%E5%B8%B8%E8%A7%81android-native%E5%B4%A9%E6%BA%83%E5%8F%8A%E9%94%99%E8%AF%AF%E5%8E%9F%E5%9B%A0/

Android上的Crash可以分两种:

1、Java Crash
java代码导致jvm退出,弹出“程序已经崩溃”的对话框,最终用户点击关闭后进程退出。
Logcat 会在“AndroidRuntime”tag下输出Java的调用栈。

2、Native Crash
通过NDK,使用C/C++开发,导致进程收到错误信号,发生Crash,Android 5.0之前进程直接退出(闪退) , Android 5.0之后会弹“程序已崩溃”的对话框。

Logcat 会在“debug”tag下输出dump信息:

  • 错误信号:11是信号量sigNum,SIGSEGV是信号的名字,SEGV_MAPERR是SIGSEGV下的一种类型。
  • 寄存器快照:进程收到错误信号时保存下来的寄存器快照,其中PC寄存器存储的就是下个要运行的指令(出错的位置)。
  • 调用栈:#00是栈顶,#02是栈底,#02调用#01调用#00方法,#00的方法时libspirit.so中的Spirit类下的testCrash方法,出错的地方是testCrash方法内汇编偏移17(不是行号哦!)

时间: 2024-10-09 22:08:54

常见Android Native崩溃及错误原因的相关文章

Android APP native 崩溃分析之令人困惑的 backtrace

完美无缺的代码逻辑,一定能产生完美无缺的程序吗?答案是否定的.从软件的层面来看,也许只有二进制才永远不会欺骗你. 现象 近期,业务方反馈了一个奇怪的崩溃问题,认为信息不足,无法解决. Signal: 11 (SIGSEGV), Code: 1 (SEGV_MAPERR) r0 993ff520 r1 dc3170c4 r2 00000000 r3 dabe3e08 r4 993ff520 r5 00000005 r6 00000290 r7 000007ac r8 e83253a0 r9 000

coreseek常见错误原因及解决方法

coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索.论坛/站内搜索.数据库搜索.文档/文献检索.信息检索.数据挖掘等应用场景,用户可以免费下载使用 本文为大家整理了coreseek/sphinx中文检索引擎的常见问题和解决方法,感兴趣的同学参考下. Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协

[开源类库/项目] android保存崩溃时的错误信息log至本地【源码+jar包+使用说...

不知大家是否经常遇到这种情况:自己的项目有时会在没有连接到电脑时发生崩溃,好不容易发现的bug结果连接到电脑时又复现不出来了:又或者自己写的一个功能在开机启动时产生小bug导致崩溃,而刚启动的机器想让他打出log又不是那么容易.此时我们有必要将程序的崩溃信息写入本地的文件,方便我们做bug的修复.本项目为开源共同讨论的,奉上项目源码(有javadoc),以及打包好的jar包还有jar包的使用手册. 如果看官自行阅读源码,代码均有注释,应该简明易懂.如果看官想直接使用,请看下文的使用手册.推荐直接

TCP/IP 某些最常见的错误原因码 (errno)列表

对于在基于 UNIX 的环境中的 TCP/IP 用户,下表列出了某些最常见的错误原因码 (errno).它不是完整的错误列表.可以在文件 /usr/include/sys/errno.h 中找到 Errno.针对每一种操作系统给出了errno 号码. 基于 UNIX 的 TCP/IP errno Errno Errno号码 AIX HP-UX Solaris UnixWare Linux 说明 EINTR 4 4 4 4 4 系统调用中断. EAGAIN 11 11 11 11 11 资源临时不

Android Monkey: “No activities found to run, monkey aborted”错误原因

用monkey测试app时,输入命令adb shell monkey -p  com.example.test -v -500 发现报错, 错误输入: :Monkey: seed=13 count=500 :IncludeCategory: android.intent.category.LAUNCHER :IncludeCategory: android.intent.category.MONKEY No activities found to run, monkey aborted 检查后发

TCP/IP 最常见的错误原因码 (errno)列表

对于在基于 UNIX 的环境中的 TCP/IP 用户,下表列出了某些最常见的错误原因码 (errno).它不是完整的错误列表.可以在文件 /usr/include/sys/errno.h 中找到 Errno.针对每一种操作系统给出了errno 号码. 基于 UNIX 的 TCP/IP errno Errno Errno号码 AIX HP-UX Solaris UnixWare Linux 说明 EINTR 4 4 4 4 4 系统调用中断. EAGAIN 11 11 11 11 11 资源临时不

Android开发面试经——4.常见Android进阶笔试题(更新中...)

Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/finddreams/article/details/44301359 上一篇文章我们已经了解了Android笔试的一些基础题目, [<Android开发面试经——2.常见Android基础笔试题> ] (http://blog.csdn.net/finddreams/a

Android Native crash日志分析

在Android应用crash的类型中,native类型crash应该是比较难的一种了,因为大家接触的少,然后相对也要多转几道工序,所有大部分对这个都比较生疏.虽然相关文章也有很多了,但是我在刚开始学的过程中还是遇到一些问题,下面一一记录,以便将来翻阅. 分析native crash 日志需要几个东西: addr2line,objdump,ndk-stack等几个工具 带symbols的so文件 log log native crash的日志都是从一行星号(*** *** *** *** ***

Android捕获崩溃异常

开发中最让人头疼的是应用突然爆炸,然后跳回到桌面.而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里.但平时使用的时候给你闹崩溃,那你就欲哭无泪了. 那么今天主要讲一下如何去捕捉系统出现的Unchecked异常.何为Unchecked异常呢,换句话说就是指非受检异常,它不能用try-catch来显示捕捉. 我们先从Exception讲起.Exception分为两类:一种是CheckedException,一种是UncheckedException