Android程序崩溃退出的时候,会将崩溃的堆栈信息保存在/data/tombstones目录下。该目录需要ROOT权限才能够访问。所以为了访问该路径,手机必须先ROOT破解。jni或者java代码崩溃的信息都被记录。该目录下会有九个tombstones_0(1-9),生成的崩溃信息会循环写入该文件中,测试之前可以讲所有的文件删除,就可以得到唯一的一个崩溃日志。生成的文件记录了详细的堆栈信息。
        为了拷贝到电脑上,需要通过adb shell进入手机终端,然后su,获取root权限,接着拷贝文件到sdcard上,退出adb shell,之后,通过adb pull /sdcard/tombstone_00 E:    拷贝到E盘
    该文件详细记录了代码崩溃时候的具体信息,包括了崩溃的堆栈,如果能够获取到该信息,就可以通知堆栈了解崩溃点的信息,但是一般情况下,我们看不到该文件。

当我们发现/data目录为空的情况下,实际上表示我们没有root访问权限,(root是最高级的访问权限,而不是启动的时候的访问文件的权限,这个权限需要对android手机进行权限进行破解)

注意
    查看tombstons文件,发现很多情况下,没有提供源码错误的函数名称和源码的错误行号,可以通过ndk-stack.exe 程序对崩溃日志再次定位
    $NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump tombstons
例子
D:\Development\Android\android-ndk-r10b\ndk-stack.exe–sym armeabi-v7a –dump E:\docs\tombston_01 > E:/detail.txt

附录:
    不同的手机遇到空指针的时候,处理的方式是不一样的,小米手机直接闪退,而华为平板依然能够直接运行,跳过崩溃的错误,说明测试多种机型的重要性。

参考
http://cmzx3444.iteye.com/blog/1463035

转载于:https://blog.51cto.com/fengyuzaitu/2307378

Android第二十五课 native程序异常crash 定位相关推荐

  1. android 猜歌游戏报告,Android第二十五期 - 猜歌小游戏

    周五开会时,有人提出在团队中采用结对开发的Agile实践.     当然团队里有人说,如果让新手与水平高的人结对,基本上就是知识的单向传递了,对于新手来说的确是个不错的学... //#include ...

  2. OpenGL教程翻译 第二十五课 天空盒

    第二十五课 天空盒 背景 天空盒是用于增强场景表现力的一个常用技术,它一般通过在相机周围包裹一个纹理来实现.这个纹理通常是一些天空.山川或者摩天大楼等等,下面是游戏 Half-Life 中使用天空盒的 ...

  3. 用OpenInventor实现的NeHe OpenGL教程-第二十五课

    用OpenInventor实现的NeHe OpenGL教程-第二十五课           NeHe教程在这节课中向我们介绍了如何从文件加载3D模型,并且平滑的从一个模型变换为另一个模型.两个模型之间 ...

  4. NeHe OpenGL第二十五课:变形

    NeHe OpenGL第二十五课:变形 变形和从文件中加载3D物体: 在这一课中,你将学会如何从文件加载3D模型,并且平滑的从一个模型变换为另一个模型.   欢迎来到这激动人心的一课,在这一课里,我们 ...

  5. C语言编程>第二十五周 ① 给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个“*”号。

    例题:给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个"*"号. 例如,形参s所指的字符串为:albc45sdtg56f,则执行结果为:a*1b*c ...

  6. C语言编程>第二十五周 ② 下列程序中,函数fun的功能是:将大写字母转换为对应小写字母之后的第五个字母,若为小写字母为v~z,使小写字母的值减21,转换后的小写字母作为函数值返回。

    例题:下列程序中,函数fun的功能是:将大写字母转换为对应小写字母之后的第五个字母,若为小写字母为v-z,使小写字母的值减21,转换后的小写字母作为函数值返回. 例如,若形参是字母A,则转换为小写字母 ...

  7. Android 第十五课 如何使用LitePal从SQLite数据库中删除数据(十四课用来保留讲解如何向SQLite数据库中存入数据)

    使用LitePal删除数据的方式主要有两种,第一种就是直接调用已存对象的delete()方法,所谓已存储对象就是调用过save()方法的对象,或者说是通过LitePal提供的查询API查出来的对象,都 ...

  8. 新版标准日本语中级_第二十五课

    语法   1. 出席の予定です:在跟出席.努力等表示动作的名词进行组合时,除使用~する外,还可以使用の. さらに,張一心もゲスト審査員として出席の予定です(并且,张一心也将作为嘉宾评委出席) 皆さんの ...

  9. 第二十五课.元学习MetaLearning

    目录 元学习介绍 相似度对比的应用:Few-shot Learning 问题概述 孪生网络SiameseNetwork Learning Pairwise Similarity Scores Trip ...

最新文章

  1. 下载vs2008 beta2的新方法
  2. redis学习之redis基本数据类型以及Jedis
  3. VCAP-DCA 510 经验分享
  4. MySQL导入导出命令
  5. SAP固定资产相关的一些表
  6. createprocess重启程序_win32取CreateProcess启动程序的返回值
  7. 如何巧妙的运用好弹簧布局SpringLayout?
  8. Wait 线程阻塞 与 Notify、NotifyAll 线程唤醒
  9. 相亲交友源码中,音频AAC解码的实现代码
  10. (转载)高速ADC的关键指标:量化误差、offset/gain error、DNL、INL、ENOB、分辨率、RMS、SFDR、THD、SINAD、dBFS、TWO-TONE IMD...
  11. 数据挖掘之航空公司客户价值分析
  12. windows 搭建代理服务器 - Apache httpd
  13. c# FileHelper 对文件压缩解压,压缩包加密
  14. 拉格朗日乘数法 和 KTT条件
  15. 微软危急: 20年转型未果 复兴路上最大敌人是自己
  16. [cocos2d-iphone]ios6截图问题
  17. 浅析支付宝钱包支付流程
  18. 刷相关搜索软件_【亚马逊排名算法】搜索加购为什么能提升关键词排名?
  19. 【LSSVM回归预测】基于matlab麻雀算法优化LSSVM回归预测【含Matlab源码 1128期】
  20. Typora去除波浪线

热门文章

  1. 【Axure视频教程】预览时打开本地文件(播放视频、引用html、打开pdf…)
  2. PHP Mysql字符集utf8mb4支持Emoji表情
  3. 设计模式之外观模式(C# / JavaScript / PHP / Java / Python / C++ 演示代码)
  4. 5G时代:连接和计算无处不在数据释放价值
  5. python科研_高效做科研,Python 零基础教程
  6. 不用循环随机数方法模拟美国强力球彩票
  7. 关于TF卡、SDHC标准和 class 速度等级分析
  8. Oracle创建序列方法
  9. MFC EnterCriticalSection 卡死问题
  10. 手机哪里有记事本 手机记事本在哪里找