android native ndk崩溃定位
2016-03-28 16:18
375 查看
一、崩溃问题
03-28 15:41:01.004: I/DEBUG(30042): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
03-28 15:41:01.004: I/DEBUG(30042): Revision: '11'
03-28 15:41:01.004: I/DEBUG(30042): ABI: 'arm'
03-28 15:41:01.004: I/DEBUG(30042): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x400014
03-28 15:41:01.030: I/DEBUG(30042): r0 ffffffff r1 003ffff4 r2 00000001 r3 b6f5cfac
03-28 15:41:01.030: I/DEBUG(30042): r4 00400000 r5 ffffff28 r6 00400043 r7 b6f50650
03-28 15:41:01.030: I/DEBUG(30042): r8 00000000 r9 0000000c sl b6f54df4 fp 00000000
03-28 15:41:01.030: I/DEBUG(30042): ip b40f1dc0 sp a3bff758 lr b6efa7a9 pc b6f30bf0 cpsr 200f0030
03-28 15:41:01.031: I/DEBUG(30042): backtrace:
03-28 15:41:01.031: I/DEBUG(30042): #00 pc 00048bf0 /system/lib/libc.so (ifree+47)
03-28 15:41:01.031: I/DEBUG(30042): #01 pc 000127a7 /system/lib/libc.so (free+10)
03-28 15:41:01.031: I/DEBUG(30042): #02 pc 00035e9b
03-28 15:41:01.031: I/DEBUG(30042): #03 pc 00035f39 /*/*.so
03-28 15:41:01.031: I/DEBUG(30042): #04 pc 00014cb1 /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #05 pc 00014ccf /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #06 pc 0002ba91 /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #07 pc 0002bc79 /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #08 pc 0003c7db /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #09 pc 0003cbe3 /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #10 pc 0002928d /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #11 pc 000347ab /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #12 pc 0001406d /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #13 pc 000140c5 /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #14 pc 0002799f /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #15 pc 00028349 /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #16 pc 0000c8eb /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #17 pc 000087a1 /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #18 pc 0000b2c9 /*/*.so
二、工具命令
cd /*/android-ndk-r10c/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin
./arm-linux-androideabi-addr2line -e /*/obj/local/armeabi/test.so 0x00035e9b
注意要在obj目录下,否则得不到发现错误的代码文件与行数
三、结果分析与代码修改
/android/*/../../src/test.cpp:91
查看test.cpp的91行位置,发现是delete 指针时发生崩溃,原因是指针没有进行NULL的初始化。
四、验证
运行程序,重复之前的操作,并无发现有崩溃现象。
03-28 15:41:01.004: I/DEBUG(30042): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
03-28 15:41:01.004: I/DEBUG(30042): Revision: '11'
03-28 15:41:01.004: I/DEBUG(30042): ABI: 'arm'
03-28 15:41:01.004: I/DEBUG(30042): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x400014
03-28 15:41:01.030: I/DEBUG(30042): r0 ffffffff r1 003ffff4 r2 00000001 r3 b6f5cfac
03-28 15:41:01.030: I/DEBUG(30042): r4 00400000 r5 ffffff28 r6 00400043 r7 b6f50650
03-28 15:41:01.030: I/DEBUG(30042): r8 00000000 r9 0000000c sl b6f54df4 fp 00000000
03-28 15:41:01.030: I/DEBUG(30042): ip b40f1dc0 sp a3bff758 lr b6efa7a9 pc b6f30bf0 cpsr 200f0030
03-28 15:41:01.031: I/DEBUG(30042): backtrace:
03-28 15:41:01.031: I/DEBUG(30042): #00 pc 00048bf0 /system/lib/libc.so (ifree+47)
03-28 15:41:01.031: I/DEBUG(30042): #01 pc 000127a7 /system/lib/libc.so (free+10)
03-28 15:41:01.031: I/DEBUG(30042): #02 pc 00035e9b
03-28 15:41:01.031: I/DEBUG(30042): #03 pc 00035f39 /*/*.so
03-28 15:41:01.031: I/DEBUG(30042): #04 pc 00014cb1 /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #05 pc 00014ccf /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #06 pc 0002ba91 /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #07 pc 0002bc79 /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #08 pc 0003c7db /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #09 pc 0003cbe3 /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #10 pc 0002928d /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #11 pc 000347ab /*/*.so
03-28 15:41:01.032: I/DEBUG(30042): #12 pc 0001406d /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #13 pc 000140c5 /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #14 pc 0002799f /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #15 pc 00028349 /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #16 pc 0000c8eb /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #17 pc 000087a1 /*/*.so
03-28 15:41:01.033: I/DEBUG(30042): #18 pc 0000b2c9 /*/*.so
二、工具命令
cd /*/android-ndk-r10c/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin
./arm-linux-androideabi-addr2line -e /*/obj/local/armeabi/test.so 0x00035e9b
注意要在obj目录下,否则得不到发现错误的代码文件与行数
三、结果分析与代码修改
/android/*/../../src/test.cpp:91
查看test.cpp的91行位置,发现是delete 指针时发生崩溃,原因是指针没有进行NULL的初始化。
四、验证
运行程序,重复之前的操作,并无发现有崩溃现象。
相关文章推荐
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- List集合数据排序
- android listview的单选事件
- android 权限明细
- android studio 在win10上弹出框过大,无法进行下一步
- WindowManager addView不上去的问题?
- android studio 子工程模块编译可以通过,运行时却找不道子工程包名解决
- Android 通知栏Notification的整合 全面学习
- AOSP sourcecode 使用Android Studio打开
- android中activity的生命周期
- Android5.0+(CollapsingToolbarLayout)
- Android 疑难杂症之获取listView Item上面组件的值
- android属性动画常用方法总结
- android自定义加载数据动画dialog和简单的timer计时器
- Android_关于屏幕适配经验总结
- 【Android】沉浸式状态栏实现
- Android判断同一个类的两个对象的内容是否相同
- Failed to resolve: com.android.support:support-v4:23.1.1
- android 音乐播放器
- Android Drawable 那些不为人知的高效用法