1.问题综述
KERNEL问题一般来说变现为下面四部分:
?驱动
?稳定性
?性能
?功耗
驱动就不用说了,一般涉及就是智能机外设调试。稳定性一般表现为平台的健壮性,是否会无故重启等各种偶然性现象。当然,偶然性现象深入分析,
也会存在必然的因果联系。性能问题一般表现问,系统响应速度。功耗问题一般就是待机最低功耗,和平均电流功耗。
2.分析工具
问题的分析离不开工具,展讯智能平台目前采用的LOG分析工具为SLOG,13A之后的版本都是SLOG功能比较完善的版本,大概的目录结构如下:
external_storage------对应T卡
internal_storage------对应手机U盘
常用的LOG存储介质为external_storage,因为空间大,但是如果本身SD卡挂载有问题的话,就必须选择internal_storage了
sysdump------kernel层级的LOG,分析此LOG工具主要是crash
coredump-------native层级的LOG,对应ANDROID的FRAMEWORK/JNI/HAL部分
hprofs-----JAVA堆,分析此LOG工具主要是DDMS
2.external_storage目录下的内容
拿到抓取的LOG分析的第一步,就是从external_storage中的misc开始分析,首先确定对应这份LOG的问题是否是一个KERNEL问题。
顺便说一下其他的几个目录代表的内容。CPx代表是哪个CPU,上面LOG的截图表示是双核CPU。kernel目录下存放的是KERNEL有
问题时候的LOG。进入MISC目录:
分析LOG的入口就是cmdline这个txt文档,打开此文档后搜索“androidboot.mode”,根据其后的赋值就可以确定出现
问题是否在kernel层级,其赋值一般是下面4类:
panic
watchdog
special
unkown
一般来说,panic, watchdog会导致reboot,毫无疑问是kernel层级的问题;如果是special则说明是framework层级
问题;unkown一般是应用层级【JAVA】问题。
3.打串口LOG
13A之后的版本,打串口LOG,不需要修改NV了,在KERNEL CONFIG中配置下面的宏开关:
?CONFIG_SERIAL_SPRD_UART_CONSOLE
就可以了;一般情况下,死机,功耗问题必须开串口LOG。
4.有用的在线调试手段
?lookat
?Ps
?Top
?Procrank
?strace
5.有用的kernel信息
?/proc/meminfo
?/proc/(进程号)/…
?/proc/interrupts
?/irq/(中断号)/…
阅读(3185) | 评论(0) | 转发(0) |