1、经典博文
序号 | 名称 | 链接 |
---|---|---|
1 | kernel panic , Oops 等cpu异常的分析与定位 | https://www.jianshu.com/p/db13bddf4bc0 |
2 | 内核调试技巧–kernel panic | https://www.xuebuyuan.com/1609308.html |
3 | kernel panic 分析解决方法 | http://blog.chinaunix.net/uid-26377382-id-4284174.html |
4 | Linux driver oops异常的处理 | https://blog.youkuaiyun.com/zuiaikg703/article/details/48346355 |
2、学习总结
用户空间进程挂掉定位
10-25 14:13:58.588 183 655 D gralloc : Isfb=0, [800,1280,800,3200], fmt=1, byte_stride=3200
10-25 14:13:58.594 670 670 D ILog : onScanEvent --->connect_success ☞. (DetecterPresenter.java:396)
10-25 14:13:58.596 670 1323 D CameraHal: reprocessFrame(971): src info--> frame_width: 640 frame_height: 368 frame_width: 640
10-25 14:13:58.598 564 586 I ActivityManager: Displayed com.iandos.registration/.ui.detecter.DetecterActivity: +1s211ms (total +3s679ms)
10-25 14:13:58.610 183 1031 D gralloc : Isfb=0, [800,1280,800,3200], fmt=1, byte_stride=3200
10-25 14:13:58.614 229 229 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
10-25 14:13:58.614 229 229 F DEBUG : Build fingerprint: 'Android/rk3288/rk3288:6.0.1/MXC89K/binn.chen10251030:userdebug/test-keys'
10-25 14:13:58.614 229 229 F DEBUG : Revision: '0'
10-25 14:13:58.614 229 229 F DEBUG : ABI: 'arm'
10-25 14:13:58.614 229 229 F DEBUG : pid: 670, tid: 1315, name: CamHalCallbckTh >>> com.iandos.registration <<<
10-25 14:13:58.614 229 229 E DEBUG : AM write failed: Broken pipe
10-25 14:13:58.614 229 229 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
10-25 14:13:58.624 229 229 F DEBUG : r0 00000000 r1 ffffffe0 r2 b6e70973 r3 b6e7ef28
10-25 14:13:58.624 229 229 F DEBUG : r4 93c75000 r5 93c75000 r6 00000000 r7 b83d80b0
10-25 14:13:58.624 229 229 F DEBUG : r8 958ef82c r9 00000010 sl 957f1000 fp 96159578
10-25 14:13:58.624 229 229 F DEBUG : ip b6ea4be0 sp 958ef810 lr 9848a83f pc 9848a87c cpsr 600f0030
10-25 14:13:58.633 229 229 F DEBUG :
10-25 14:13:58.633 229 229 F DEBUG : backtrace:
10-25 14:13:58.633 229 229 F DEBUG : #00 pc 0000487c /system/vendor/lib/libdual_camera.so (_ZN16JNICameraContext11copyAndPostEP7_JNIEnvRKN7android2spINS2_7IMemoryEEEi+103)
10-25 14:13:58.633 229 229 F DEBUG : #01 pc 00004973 /system/vendor/lib/libdual_camera.so (_ZN16JNICameraContext8postDataEiRKN7android2spINS0_7IMemoryEEEP21camera_frame_metadata+58)
10-25 14:13:58.633 229 229 F DEBUG : #02 pc 0000432b /system/vendor/lib/libdual_camera.so
10-25 14:13:58.633 229 229 F DEBUG : #03 pc 0001da7d /system/lib/hw/camera.rk30board.so (_ZN7android14AppMsgNotifier14callbackThreadEv+400)
10-25 14:13:58.633 229 229 F DEBUG : #04 pc 0001dc49 /system/lib/hw/camera.rk30board.so
10-25 14:13:58.633 229 229 F DEBUG : #05 pc 00010855 /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+112)
10-25 14:13:58.633 229 229 F DEBUG : #06 pc 000417c7 /system/lib/libc.so (_ZL15__pthread_startPv+30)
10-25 14:13:58.633 229 229 F DEBUG : #07 pc 00019313 /system/lib/libc.so (__start_thread+6)
10-25 14:13:58.792 564 582 D Tethering: interfaceLinkStateChanged wlan0, true
10-25 14:13:58.792 564 582 D Tethering: interfaceStatusChanged wlan0, true
10-25 14:13:58.794 564 646 D WIFI : Registering NetworkFactory
10-25 14:13:58.794 564 646 D WIFI_UT : Registering NetworkFactory
如上错误可以使用命令:
$ ./prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-addr2line -C -f -s -e out/target/product/rk3288/obj/SHARED_LIBRARIES/libdual_camera_intermediates/LINKED/libdual_camera.so 0000487c
_JNIEnv::NewByteArray(int)
jni.h:870
$ ./prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin/arm-eabi-addr2line -C -f -s -e out/target/product/rk3288/obj/SHARED_LIBRARIES/libdual_camera_intermediates/LINKED/libdual_camera.so 00004973
JNICameraContext::postData(int, android::sp<android::IMemory> const&, camera_frame_metadata*)
com_ice_dual_camera_IceDualCamera.cpp:212
kernel中挂掉定位
概述
- kernel挂掉有堆栈信息打印
- 若堆栈信息不能定位,若最近改了什么东西,回退修改再确认
- 确定代码位置后,在代码中添加打印堆栈信息,查看调用流程,确认问题位置
借用工具分析
- gdb
- objdump