153、平台 Camera 稳定性调试:Kernel Panic、HAL Crash、ANR 的问题定位方法论

153、平台 Camera 稳定性调试:Kernel Panic、HAL Crash、ANR 的问题定位方法论 153、平台 Camera 稳定性调试:Kernel Panic、HAL Crash、ANR 的问题定位方法论一、从一次半夜的Kernel Panic说起凌晨两点,QA丢过来一台机器,说“相机打开就黑屏,然后重启”。我接上串口线,log里最后一行是:[ 123.456789] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010 [ 123.456790] Internal error: Oops: 96000004 [#1] PREEMPT SMP [ 123.456791] PC is at cam_sensor_power_up+0x1c/0x120 [camera_sensor]看到这个PC地址,我第一反应是“又是哪个驱动没判空”。但这次不一样——PC指向的是cam_sensor_power_up函数偏移0x1c处,反汇编一看,是访问了某个结构体成员,而这个结构体指针是NULL。问题出在:sensor驱动在probe阶段注册了power_up回调,但probe本身因为某个GPIO配置失败,导致sensor_dev结构体被部分初始化,power_up回调里直接用了未初始化的指针。这种问题,光看log是不够的。你得学会“读尸体”——也就是分析crash dump。下面我展开讲讲这类问题的定位套路,全是实战里摔