问题分析之信息收集
信息收集
分析问题的第一个步骤,即获取到问题发生的相关信息:
核心思路
一个比较泛的分析思路:目标无非是找到问题点,然后针对性的处理,则需要的就是通过各种途径来缩小范围
原则:在分析的过程中会有遇到各种合理的猜测,则需要通过添加log、对比实验,反证法等方式来证实;
整体需要对系统框架有基础认知,对大体path流程,有基础认知;
- 问题发生现场信息;
- 问题现象是什么?出现概率是怎样的?严重程度如何?
- log信息,基本符合如下三个原则:
- 对于逻辑类问题需要log信息;
- ANR问题,则需要logcat、trace、binder等信息;
- NE、KE,则需要log信息 + symbol 库,NE需要对应的symbol so,KE需要对应的vmlinux;
- HWT类问题,interrupt信息,打印信息,lock信息?
- 对于数据类问题需要各个环节的data数据流找到问题异常环节;
- audio 有杂音、串音、无声音,则需要从audiotrack、audioflinger、hal、kernel、I2S\模拟输出、DSP、功放等环节dump数据确认问题环节;
- display 花屏、抖帧、帧率低、显示效果问题,则需要从输入、缩放、显示效果、输出模块等各个环节确认问题情况;
- 与外设有关的问题,需要做AB实验对比;
- 蓝牙类问题:
- logcat、HCI log、空中包;
- 对比不同品牌手机测试,主要小米、华为、苹果、vivo、oppo这些手机蓝牙相关都不同;
- 蓝牙类问题:
- 对于逻辑类问题需要log信息;
一般套路
- 问题现象是怎样的?什么模块的问题?客户关心痛点?
- 严重程度如何?复现概率?影响面?
- 是否可以稳定复测到?复测方法,关键复测路径?
- 是否有抓取到log信息?kernel log? logcat? trace?其他debug信息?
- 是否近期新出现问题?
- 软件层面近期做过哪些事情?如有必要,采用二分法倒版本排查问题?
- HW层面近期做过哪些改动?AB实验排查?
- 环境差异?
- 是否有对比平台?可否做ABBA实验证明问题?出现在SW、HW?
- 初步根据反馈的问题现象,确认分析路径?
- 是否为蓝牙问题?
- 是否有使用多个手机对比实验?
- 蓝牙电话问题还是蓝牙音乐问题?命令延迟响应?不响应?串音?(logcat + hci log,如有数据问题则需要dump数据)
- 是否为NE/KE/HWT等问题?
- 简单查看log中堆栈信息,确认问题模块;
- 是否有对应符号库?
- 根据堆栈使用相关工具找到code位置:
- 查看是否有assert?BUGON?等主动触发?
- 是否有内存使用问题?大多数情况
- 是否存在随机崩溃?HW问题较多,emmc、ddr问题可能性是有的;
- 是否为audio类问题?
- 无声音、串音、杂音等问题主要排查各个环节的数据问题;
- audio多为需求设计类问题,即项目初期,根据需求和当前支持的HW情况设计思路;
- 是否为display问题?
- 调屏类问题
- SOC 输出:LVDS\MIPI\RGB
- 屏:LVDS\MIPI\TTL
- 转接IC:MIPI转LVDS、LVDS转TTL==
- 分体机使用的IC:941、927、928、947、948、924、926==
- 花屏、黑屏、绿屏、白屏等问题,多为某个环节的配置参数与src不匹配导致;
- 这种的话,就要先找到错误的环节,然后取相关log分析;
- 抖帧、回帧、撕裂类问题,多为时间同步问题;
- 需要trace信息;
- 如果取数据比较慢,可以添加buffer数量;
- 最好还是找到不匹配的环节,添加同步机制;
- 闪白线、黑线等可能为带宽问题;
- dump带宽的占用情况,DS-5是个好工具;
- 调屏类问题
- 是否为USB问题?
- 眼图不过?
- 驱动能力?预加重功能?
- HW调整;
- U盘类问题?不识别、断连
- 中断–kernel – uevent --文件系统 – 上层应用,逐个环节排查;
- carplay、carlife、亿连、XX互联等互联类应用
- 认证问题
- 切换mode问题
- 眼图不过?
- 是否为蓝牙问题?
这个整理可以看做是一个泛泛而谈的东西,也可以说是处理很多问题后的一些共性内容;