---
title: Crash
description: "Crash是由Dave Anderson开发和维护的一个内存转储分析工具，广泛应用于内核问题定位。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenggrf/ref/kunpenggrffaq_10_0005.html
sourcePath: /source/zh/kunpenggrf/ref/kunpenggrffaq_10_0005.html
indexId: e4630a8563440f313c2ad33b50e9e7fba6e868548d73d3285bdb8c3aeee2bad152
---
# 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 | 转换虚拟地址为符号。 |
