Crash工具
crash 简介
crash 是一款可用来离线分析 linux 内核转存文件的工具,它整合了部分 gdb 的功能,可以查看堆栈、dmesg 日志、内核数据结构、反汇编等等,功能非常强大。crash 可支持多种工具生成的转存文件格式,例如 kdump、netdump、diskdump 等,而且还可以分析虚拟机 Xen 和 Kvm 上生成的内核转存文件
crash 与 linux 内核紧密耦合,需要与 linux 内核匹配。如果你的内核版本较新,crash 很可能无法解析,可以尝试安装最新的 crash 工具
使用 crash 来调试 vmcore,至少需要两个参数:
- 未压缩的内核映像文件 vmlinux。认位于
/usr/lib/debug/lib/modules/$(uname -r)/vmlinux
,由内核调试信息包提供 - 内存转储文件 vmcore,由 kdump 或 sysdump 转存的内核奔溃现场快照
(1)安装 kernel-debug
(2)进入 core 文件所在路径, 执行如下命令:
常用命令
查看系统中所有进程的信息
查看进程的内存映射情况
查看所有CPU的状态
查看内核模块信息
查看某个函数的调用栈
列出所有可用的命令
分析崩溃发生的位置
查看内存使用信息
常见问题
- vmcore 和 vmlinux 出现不匹配问题的解决方法
PAE 物理地址扩展,软件包 kernel-PAE-debuginfo