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
转换虚拟地址为符号。
父主题: 分析工具