Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

现象
通过adb安装搜狐视频之后打开apk没进入界面之后系统就Crash,导致Android重启。

Crash Log:
--------- beginning of crash
01-21 19:31:22.786   174   174 F libc    : Fatal signal 11 (SIGSEGV), code 1, fault addr 0x8 in tid 174 (surfaceflinger)
01-21 19:31:22.862  1152  1303 D DataRequestActivity: net connect spend time : 1
01-21 19:31:22.888   209   209 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-21 19:31:22.888   209   209 F DEBUG   : Build fingerprint: 'Android/rk3288/rk3288:6.0.1/3.0.02/kris05101452:user/platform-keys'
01-21 19:31:22.888   209   209 F DEBUG   : Revision: '0'
01-21 19:31:22.888   209   209 F DEBUG   : ABI: 'arm'
01-21 19:31:22.888   209   209 F DEBUG   : pid: 174, tid: 174, name: surfaceflinger  >>> /system/bin/surfaceflinger <<<
01-21 19:31:22.888   538   622 W NativeCrashListener: Couldn't find ProcessRecord for pid 174
01-21 19:31:22.888   209   209 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x8
01-21 19:31:22.892   209   209 F DEBUG   :     r0 b7db6f00  r1 b7fbdec0  r2 592c0592  r3 0000000a
01-21 19:31:22.892   209   209 E DEBUG   : AM write failed: Broken pipe
01-21 19:31:22.892   209   209 F DEBUG   :     r4 b2b49348  r5 00000000  r6 00000000  r7 b7db7b54
01-21 19:31:22.892   209   209 F DEBUG   :     r8 b7db6f00  r9 b7fbdec0  sl b2b4a580  fp b2b49348
01-21 19:31:22.892   209   209 F DEBUG   :     ip beffc618  sp beffcaf0  lr b2b425eb  pc 00000008  cpsr 600f0010
01-21 19:31:22.896   209   209 F DEBUG   : 
01-21 19:31:22.896   209   209 F DEBUG   : backtrace:
01-21 19:31:22.896   209   209 F DEBUG   :     #00 pc 00000008  <unknown>
01-21 19:31:22.896   209   209 F DEBUG   :     #01 pc 0000c5e9  /system/lib/hw/hwcomposer.rk30board.so (_Z14hwc_try_policyP11_hwcContextP22hwc_display_contents_1i+56)
01-21 19:31:22.896   209   209 F DEBUG   :     #02 pc 0000f68f  /system/lib/hw/hwcomposer.rk30board.so
01-21 19:31:22.896   209   209 F DEBUG   :     #03 pc 0000fba1  /system/lib/hw/hwcomposer.rk30board.so
01-21 19:31:22.896   209   209 F DEBUG   :     #04 pc 00025c57  /system/lib/libsurfaceflinger.so
01-21 19:31:22.896   209   209 F DEBUG   :     #05 pc 0001be5d  /system/lib/libsurfaceflinger.so
01-21 19:31:22.896   209   209 F DEBUG   :     #06 pc 0001b3cb  /system/lib/libsurfaceflinger.so
01-21 19:31:22.896   209   209 F DEBUG   :     #07 pc 0001b165  /system/lib/libsurfaceflinger.so
01-21 19:31:22.896   209   209 F DEBUG   :     #08 pc 000135a1  /system/lib/libutils.so (_ZN7android6Looper9pollInnerEi+456)
01-21 19:31:22.897   209   209 F DEBUG   :     #09 pc 000136bb  /system/lib/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+130)
01-21 19:31:22.897   209   209 F DEBUG   :     #10 pc 00018601  /system/lib/libsurfaceflinger.so
01-21 19:31:22.897   209   209 F DEBUG   :     #11 pc 0001ad8d  /system/lib/libsurfaceflinger.so (_ZN7android14SurfaceFlinger3runEv+8)
01-21 19:31:22.897   209   209 F DEBUG   :     #12 pc 00000e45  /system/bin/surfaceflinger
01-21 19:31:22.897   209   209 F DEBUG   :     #13 pc 00016631  /system/lib/libc.so (__libc_init+44)
01-21 19:31:22.897   209   209 F DEBUG   :     #14 pc 00000cac  /system/bin/surfaceflinger

调试

通过objdump定位具体是哪个函数出现了问题:

#prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-objdump -d -S out/target/product/rk3288/symbols/system/lib/hw/hwcomposer.rk30board.so  > ~/objdump.txt
找到对应函数是: hwc_try_policy()@rk_hwcomposer.cpp

int hwc_try_policy(hwcContext * context,hwc_display_contents_1_t * list,int dpyID)
{int ret;for(int i = 0;i < HWC_POLICY_NUM;i++){
......ret = context->fun_policy[i]((void*)context,list);if(!ret){break; // find the Policy}}return ret;
}

添加Log,发现crash在context->fun_policy,再打印context->fun_policy地址,
结果crash的时候地址被修改,说明有其他地方把这个地址的内容给改写了!

解决方法
像这种问题比较难处理,而且特别像这种复杂的和硬件相关的HWC模块,需要非常熟悉才能找到问题点。
幸好更新了rk的最新HWC code之后问题得到了解决。

[RK3288][Android6.0] 调试笔记 --- 播放搜狐视频会Crash问题相关推荐

  1. [RK3288][Android6.0] 调试笔记 --- touch无法获取坐标点

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 有网友遇到调试touch的时候能触发中断,但无法获取坐标点 具体可参考文章 [RK3288][An ...

  2. [RK3288][Android6.0] 调试笔记 --- AndroidTool低格无效问题

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 现象: 之前文章 [RK3288][Android6.0] 调试笔记 - AndroidTool两 ...

  3. [RK3288][Android6.0] 调试笔记 --- 电池电量一直显示100%

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 之前文章[RK3288][Android6.0] 调试笔记 - 伪电池驱动添加 阐述了如何添加一个 ...

  4. [RK3288][Android6.0] 调试笔记 --- WiFi芯片AP6356S添加

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 背景: RK3288 Android6.0平台对AP6356S的支持不是很完善,直接修改wifi ch ...

  5. gpio驱动广播Android,[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】

    Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 由于板子没有lcd无法得知sd卡升级是否完成,因此使用LED显示. Recovery中升级完成后控 ...

  6. [RK3288][Android6.0] 调试笔记 --- 双屏显示内核Patch

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 根据5.1的双屏显示patch,在android6.0上修改了下,因为没硬件环境,所以未经验证,仅供参 ...

  7. [RK3288][Android6.0] 调试笔记 --- RT5640录音时的Codec寄存器列表

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 Codec: RT5640 此文给调试RT5640播放无声音的朋友做参考. RT5640用的是RT ...

  8. [RK3288][Android6.0] 调试笔记 --- 调试串口的更换

    Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 假设项目有需求要将调试串口uart2 改成 uart1, 改动如下 (还未验证,先分享给大家,有问 ...

  9. [RK3288][Android6.0] 调试笔记 --- 软硬键盘同时使用【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/78748313 Platform: RK3288  OS: Android 6.0  Kern ...

  10. android 系统gpu 调试_[RK3288][Android6.0] 调试笔记 --- 读取当前DDR和GPU频率方法

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 ddr和gpu的clock都受dvfs模块管控, 所以只要执行: root@rk3288:/ # ...

最新文章

  1. 小程序加载大图片 使用widthFix时,图片先拉伸然后才显示完全
  2. diy高性能存储服务器,diy存储服务器
  3. 手动初始化设置3PAR存储系统
  4. ASCII,unicode, utf8 ,big5 ,gb2312,gbk,gb18030等几种常用编码区别
  5. spring事务(Transaction)的七种事务传播行为及五种隔离级别
  6. origin如何绘制双y轴曲线_Origin用矩阵绘制多层曲面映射图
  7. python .py文件变为.so文件进行加密
  8. node.js详解Http服务器
  9. 假设以带头结点的循环链表表示队列_JavaScript数据结构之链表--设计
  10. java设计模式之美_《设计模式之美》-笔记
  11. 方法参数关键字:params、ref及out
  12. 简体,繁体中文互转类
  13. xlsxwriter进度条php,PHP_XLSXWriter
  14. CNC加工中心的刀具补偿详解
  15. 儿童手工制作日历_变废为宝的手工日历小台历制作教程
  16. 测试人员应看重「业务测试能力」
  17. 关于uniapp获取ios客户端平台安全距离(底部导航条)的方法
  18. anchor-free方法总结
  19. 安全面试之安全基础(二)
  20. 复函数积分的共轭等于其共轭的积分

热门文章

  1. (九) LBP特征提取
  2. f分布表完整图a=0.01_SQL数据库完整性
  3. iOS AVPlayer的那些坑
  4. MATLAB画图线性,颜色和数据点
  5. 你该知道的杂志分区和影响因子及最新表格下载
  6. mysql的填充因子_SQL SERVER中,什么是填充因子?
  7. 四阶龙格库塔法的基本思想_四阶龙格—库塔法的原理及其应用
  8. 社交网络分析——信息传播模型(附带三个模型的python实现)
  9. ARM 内核寄存器 和 基本汇编语言讲解
  10. 《HTML与CSS设计》课程总结,网页设计课程学习心得总结