核心用法
本技能提供完整的 Linux 内核崩溃调试流程,基于 crash utility 对 vmcore 内存转储进行事后分析。核心工作流包括:sys 确认崩溃原因、log 查看内核日志、bt 分析调用栈、struct 检查数据结构、kmem 进行内存诊断。支持交互式与 Agent 安全模式两种执行方式,后者通过封装脚本避免阻塞。
显著优点
- 专业深度:覆盖 x86_64/ARM64 双架构,ARM64 场景完整解决 KASLR、物理基址、虚拟地址位等复杂参数推导
- 多维度诊断:集成 KASAN、Kmemleak、Kprobes、page_owner 等内核调试子系统
- 实战导向:提供死锁分析(锁地址推导)、三层内存泄漏排查、堆栈溢出检测等典型场景标准化流程
- Agent 友好:内置
agent-crash.sh封装器,支持安全批处理与输出截断,适配自动化分析
潜在局限
- 环境依赖严苛:vmlinux 必须与 vmcore 内核版本完全匹配,且需开启
CONFIG_DEBUG_INFO - ARM64 配置复杂:需手动推导 vabits_actual、phys_offset、kimage_voffset 等参数,门槛较高
- 部分功能需内核重编:KASAN、Kmemleak、page_owner 等工具需重新编译内核并启用调试选项
- 实时调试风险:
wr命令可修改运行内核内存,存在生产环境误操作风险
适合人群
- Linux 内核开发工程师与维护者
- 操作系统底层故障排查专家
- 云原生基础设施 SRE 与内核级运维工程师
- 安全研究员(逆向分析内核崩溃样本)
常规风险
- 数据泄露:vmcore 包含完整内核内存,可能暴露密钥、凭证、用户数据,需严格访问控制与加密存储
- 误操作破坏:
wr及 GDB 透传命令可修改运行内核状态,生产环境禁用 - 版本不匹配导致分析失败:vmlinux 与 vmcore 版本差异会造成符号解析错误,需严格校验
- 敏感信息残留:分析完成后需安全擦除(
shred)vmcore 文件,建议优先使用makedumpfile -d过滤敏感页