zoukankan      html  css  js  c++  java
  • Android5.0L下因sensorservice crash导致systemserver重新启动的第二种场景分析

    一、出问题的场景

    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

  • 相关阅读:
    7月17日
    7月16日学习记录
    7月15日学习记录
    git 学习
    投稿相关
    ubuntu16.04 安装以及要做的事情
    python学习使用
    图像相关
    不识别移动硬盘
    深度学习
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5079859.html
Copyright © 2011-2022 走看看