当前位置: 移动技术网 > IT编程>移动开发>Android > Android 下 Kernel Debug (Qualcomm Chipset)

Android 下 Kernel Debug (Qualcomm Chipset)

2018年10月26日  | 移动技术网IT编程  | 我要评论

你来我网,3维性感别墅,全系大宗师

android 下 kernel debug (qualcomm chipset) 。

1. 背景

本文面向linux/android的kernel debug技术。

涉及linux kernel,android native,android framework。

主要集中于泛用的技术而不是针对在某个模块上的特有技术,涉及一些qualcomm chipset相关的debug技术

不包含需要使用jtag的debug ,不包含面向android app的debug

debug工作量在现今android产品开发中占据很大比例,对于问题的解决速度也是成败的关键。

(1)bug的主要来源

aosp

vendor

continuous integration

customization

(2)理解系统的组成

system architecture (msm8974 )

(3)debug第一步是需要定位bug发生在哪里。

在msm8974上,有多个处理器,运行着不同的系统

krait (4 cores, similar to arm cortex-a15)

lk, linux, android,trustzone

cortex m3

resource power manager (rpm)

clock/power 管理

boot 主控cpu

arm9

wifi/bt

multimedia (camera,audio/video codecs)

hexagon/dsp

modem

audio/sensor

qdss (qualcomm debug sub system)

2. bug分类和对策

bug分类 (kernel space )

(1) kernel panic

linux kernel的致命错误,在 debug build上会触发ramdump, 导致系统重启

关联log 文件: last kmsg

(2)hw watchdog

krait或其他处理器陷入不正常状态(卡住了),在debug build 上会触发ramdump,系统重启

关联文件: parsed ramdmup

(3)freeze

系统不相应ui/hard-key输入

(4)shutdown

系统关机

rst_stat ,last kmsg

(5)subsystem bug

krait以外的系统的问题,在debug build上会触发ramdump, 系统重启

关联文件: parsed ramdmup

3. 经验杂谈

(1)泛用debug技术

jtag on-device debugging

连接device到jtag debugger,在线debug。

本文不涉及这部分

on-device logging

ddms/logcat

linux dmesg

linux debugfs, sysfs, procfs

offline debug

ramdump parser

t32 simulator

(2)hw watchdog

what is watchdog

possible cause

deadlock/livelock

stressful kernel work

interrupt flooding

unclock register access

bus hang

(3)log

log是最经济的解析工具。

设计时要充分考虑各位异常情况,并在异常路径上输出充分的信息

解析log时要考虑到smp的影响,要考虑cpu hang住的情况

memory log –parse log from ramdump

借助console log进行debug

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网