首页 > 移动平台 > 详细

Android5.0L下因sensorservice crash导致systemserver重启的另外一种场景分析

时间:2015-07-03 17:30:34      阅读:327      评论:0      收藏:0      [点我收藏+]

一、出问题的场景

1、Sensorservice线程正在处理compass sensor事件的过程中,检查了一次buffer的指针的有效性,并在稍后会传递到AKM获取数据的函数接口中使用

2、Sensorservice线程所在进程的负责跨进程通信的Binder线程在sensorservice线程检查buffer指针之后没有真正使用之前,

收到了disable compass sensor的请求,从log中可以看到compass  sensor先是被disabledisable的同时会free上面sensorservice检查过并正在使用的buffer指针,同时置空buffer指针

3、紧接着sensorservice线程继续执行AKM获取数据的函数接口,并使用到了已经被disable置空的buffer指针,然后产生异常


二、具体log和代码

Disable compass sensorfree buffer的代码:

技术分享

技术分享

Free buffer 3ms之后sensorservice马上因为访问空指针异常的log

技术分享

 传递buffer指针并使用的代码:

技术分享

   使用buffer指针产生异常的地方log

技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android5.0L下因sensorservice crash导致systemserver重启的另外一种场景分析

原文:http://blog.csdn.net/songjinshi/article/details/46742903

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!