当前位置:网站首页>Crash使用

Crash使用

2022-06-10 05:21:00 鑫鑫缺点金

环境搭建

1.crash工具编译

sudo apt-get install libaio-dev  libncurses5-dev  zlib1g-dev liblzma-dev  flex bison byacc m4 bison g++-multilib gcc-multilib lib32ncurses5-dev lib32z1-dev

2.安装termcap libary

1)下载termcap

wget http://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz

2)解压

tar -zxv -f  termcap-1.3.1.tar.gz

3)安装

cd termcap-1.3.1
./configure

3.下载crash源码

https://github.com/crash-utility/crash
https://github.com/crash-utility/crash.git

4.编译crash工具

cd  crash-master/crash-master	
make target=ARM64
sudo make install

5、如果需要回退代码

git reset --hard 0ab7ac3bea5deaa3da894247ffab9ef2433c1b9b

启动

根据环境搭建我们我门编译了crash可执行程序,共两个,一个是调试ARM的,一个是ARM64的,
看你调试的target是ARM还是ARM64,再决定用哪个,这里将调试的ARM的命名为carsh,将调试的ARM64的命名为crash64.
启动crash需要两个文件,一个是coredump(dump)这里是SYS_COREDUMP、一个是vmlinux(符号表)。

将vmlinux和SYS_COREDUMP放入crash可执行程序的同一目录中,启动:

crash vmlinux SYS_COREDUMP

结果如下
在这里插入图片描述

这时就可以输入各种调试命令了

常规调试

常用命令
crash使用GDB作为他的内部引擎,crash中的很多命令和语法都与GDB相同。如果曾经使用过GDB,就会发现crash并不是很陌生。
如果想获得crash 更多的命令和相关命令的详细说明,可以使用crash的内部命令help来获取:

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

命令拓展

扩展命令
crash支持拓展命令,具体看crash拓展命令的说明

两个有助于分析问题的命令
请添加图片描述
编译拓展命令库
在拓展命令的官网下载源码,放入crash源码里面的extensions目录,比如将trace.c放入extensions目录。
然后在crash源码目录下输入如下命令:

make extensions

编译好后,就会有so库生成,文件放在extensions目录,比如trace.so
请添加图片描述
使用拓展命令
进入到crash后,在crash命令行图展

extend <path-to> /xxx.so

请添加图片描述
crash即可支持对应的命令了。

独有功能-查看ftrace(下次在写)

原网站

版权声明
本文为[鑫鑫缺点金]所创,转载请带上原文链接,感谢
https://jinxinxin.blog.csdn.net/article/details/125207988