900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Android第二十五课 native程序异常crash 定位

Android第二十五课 native程序异常crash 定位

时间:2019-01-24 06:30:50

相关推荐

Android第二十五课 native程序异常crash 定位

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

附录:

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

参考

/blog/1463035

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。