crash簡介
crash是redhat的工程師開發的,主要用來離線分析linux內核轉存文件,它整合了gdb工具,功能非常強大。可以查看堆棧,dmesg日志,內核數據結構,反匯編等等。crash支持多種工具生成的轉存文件格式,如kdump,LKCD,netdump和diskdump。同時crash還可以調試運行時系統,直接運行crash即可。
crash安裝以及系統配置
1, 配置內核支持kdump
- 配置內核啟動參數
vim /etc/default/grub
修改crashkernel=128M
grub2-mkconfig -o /boot/grub2/grub.cfg
命令配置啟動參數
- 開啟kdump服務
systemctl start kdump # 開啟服務
systemctl enable kdump # 設置開機啟動
- 重啟系統
查看kdump服務狀態systemctl status kdump # 查看服務狀態
2, 安裝crash工具
yum install crash
3, 安裝內核調試信息
- 查看內核版本
uname -a
-
下載相應內核的調試信息
去http://debuginfo.centos.org/ 查找相同內核版本的調試信息並下載下來。 -
下載kernel-debuginfo文件
- 然后執行安裝
rpm -ivh kernel-debuginfo-common-x86_64-3.10.0-862.el7.x86_64.rpm
rpm -ivh kernel-debuginfo-3.10.0-862.el7.x86_64.rpm
4, 安裝內核源碼
如何下載相應內核版本的源代碼,參考 https://www.jianshu.com/p/e3d67a1df2a4
至此,crash調試環境就配置完成了。
簡單的使用例子
- 使用上面配置完場的環境,直接執行
crash
命令,可以調試正在運行的系統。
- crash常見命令,crash內執行help,可以查看常見的命令。
crash工具功能非常強大,需要慢慢摸索。據說,crash工具可以解決99%的內核崩潰問題,后續慢慢領會其威力吧。