1.概述
之前也提及到死机,由OOPS导致的,当然也有由于死锁导致的panic,分析途径都是一样的,主要是配置如何检测。
2.实际例子
在实际使用中,主要是由于相互请求对方的锁,导致线程卡死。 配置参考:
Kernel hacking → Lock debugging (spinlocks, mutexes, etc.)
CONFIG_LOCKDEP=y #追踪锁的依赖关系,定位死锁路径
CONFIG_DETECT_HUNG_TASK=y #检测hung task(卡死的线程)触发panic
CONFIG_PAINC_ON_HUNG_TASK=y #检测到hung task后触发kernel Panic。
CONFIG_DEBUG_INFO=y #生成调试符号,用于后续定位
CONFIG_FRAME_POINTER=y #确保栈回溯完整
核心步骤:开启栈帧回溯,调试符号,将对应的检测项加入。 分析步骤,还是一样,通过addr2line + vmlinux(带调试符号) + 触发dump地址,去锁定目标。
您还没有登录,请您登录后发表评论。