Crash
介绍
Crash是由Dave Anderson开发和维护的一个内存转储分析工具,广泛应用于内核问题定位。
安装
在CentOS操作系统下,通过yum安装Crash相关组件。
yum install crash kernel-debug*-`uname -r`
其中Kernel的版本号需要和生成vmcore的Kernel版本完全一致。
使用方式
- 开启Crash调试crash $path1/vmlinux $path2/vmcore   - Crash调试的vmcore需要和vmlinux同属一个内核。
- $path1/vmlinux为未压缩的内核镜像。对于默认的系统内核,在CentOS 7.6和openEuler中,path1通常为“/usr/lib/debug/lib/modules/`uname -r`”;对于重编的内核,则位于编译内核的源码目录。
- $path2/vmcore是用转储功能获得的转储文件。
 
- Crash调试命令(crash) command *args   进入调试会出现“(crash)”,command是需要执行的调试命令,*args是部分调试命令需要的参数。 常用参数如下: 命令 用途 bt 打印函数调用栈信息。 log 打印系统消息缓冲区,如log | tail -n 30。 ps 显示进程的状态,>表示活跃的进程,如ps | grep RU。 dis 对给定函数或者地址进行反汇编,如dis -l [func | addr]。 whatis 搜索数据或者类型的信息,如:whatis [struct | union | typedef | symbol]。 sym 转换虚拟地址为符号。 
父主题: 分析工具