Linux的kdump分析

news2024/11/28 22:42:46

文章目录

  • 一 系统环境
  • 二 下载和安装kerner-debuginfo
  • 三 启动crash
  • 四 crash常用命令

一 系统环境

进行kdump分析的主机是CentOS-7.9系统。

[root@canway ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
[root@canway ~]# uname -r
3.10.0-1160.el7.x86_64

检查 crash 工具的安装。

[root@canway ~]# rpm -qa|grep crash
crash-7.2.3-11.el7.x86_64

如果没有安装,则使用 yum 安装。

yum install -y crash

二 下载和安装kerner-debuginfo

查看 vmcore-dmesg.txt 文件,得到生成vmcore转储文件主机的内核版本信息。

在这里插入图片描述

接着下载软件的rpm包,按照下列的格式。

wget http://debuginfo.centos.org/${centos的版本号}/x86_64/kernel-debuginfo-${内核版本}.rpm
wget http://debuginfo.centos.org/${centos的版本号}/x86_64/kernel-debuginfo-common-x86_64-${内核版本}.rpm

本次分析的主机是centos6系统,内核是 2.6.32-431.el6.x86_64 。
所以获取软件包的命令如下:

wget http://debuginfo.centos.org/6/x86_64/kernel-debuginfo-2.6.32-431.el6.x86_64.rpm
wget http://debuginfo.centos.org/6/x86_64/kernel-debuginfo-common-x86_64-2.6.32-431.el6.x86_64.rpm

接着进行安装

rpm -ivh kernel-debuginfo-common-x86_64-2.6.32-431.el6.x86_64.rpm kernel-debuginfo-2.6.32-431.el6.x86_64.rpm

安装后,检查目录 /usr/lib/debug/lib/modules/ 下是否有对应内核版本的 vmlinux 文件

在这里插入图片描述

三 启动crash

启动命令:

crash 需要分析的vmcore文件 对应内核的vmlinux文件

[root@canway opt]# crash /opt/vmcore /usr/lib/debug/lib/modules/2.6.32-431.el6.x86_64/vmlinux

启动命令后,进入交互式命令行界面:

在这里插入图片描述

各项参数的意义为:

Kernel——表示调试内核的位置和版本信息
DUMPFILE——表示所分析的内存转储镜像
CPUS——表示本机的CPU数目
DATE——表示内核崩溃发生的时间
UPTIME——表示内核已正常运行的时间
LOAD AVERAGE——表示内核崩溃时系统的负载
TASKS——表示内核崩溃时系统运行的任务数
NODENAME——表似乎内核崩溃的机器的主机名
RELEASE——表示内核的发布版本
VERSION——表示内核的其他版本信息
MACHINE——表示CPU架构和主频信息
MEMORY——表示发生内核崩溃的系统的内存大小
PANIC——表示崩溃的类型。可能有SysRq,即通过系统请求造成的内核崩溃;Oops,表示内核发生了不可预测或不正确的行为,这时会杀死相应的进程,内核可能恢复正常,也可能处于一种不确定的状态,进而导致内核的Panic;Pannic,内核崩溃,即发生了严重且不可修复的错误,如发生了非法的地址访问,强制加载或卸载内核模块,以及硬件错误等等
PID——表示导致内核崩溃的的进程号
COMMAND——表示导致内核崩溃的进程名称
TASK——表示导致内核崩溃的进程访问的内存地址
CPU——表示导致内核崩溃的进程占用的CPU数目
STATE——表示导致内核崩溃的进程的运行状态

以上信息可用于初步分析内核崩溃的原因,内核态有三种出错情况,分别是bug, oops和panic。bug属于轻微错误,oops代表某一用户进程出现错误,需要杀死用户进程,这时如果用户进程占用了某些信号锁,这些信号锁将永远不会得到释放,这会导致系统潜在的不稳定性。Panic是严重错误,代表整个系统崩溃。深入的分析需要使用更多的命令进行追踪和查找,并需要对内核的运行机制和内核开发编程有一定的了解。

四 crash常用命令

help——查看命令的帮助信息,也可用man命令
h——查看历史命令,相当于shell下的history
log——该命令用于打印出内存的日志信息
bt——该命令用于获取当前线程的调用堆栈
foreach bt——该命令用于获取所有线程的调用堆栈
ps——该命令用于查看内核崩溃时的进程信息
vm——该命令用于查看当前的内核上下文的虚拟内存信息
files——该命令用于查看当前的内核上下文中打开的文件
exit or q——退出Crash

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/367595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧新零售网络解决方案,助力新零售企业数智化转型

随着数字化时代的不断发展,新零售连锁业务模式“线上线下”融合发展,数据、设备在逐渐增加,门店数量也会随着企业规模的扩大而增加,但由于传统网络架构不稳定、延时、容量小影响服务质量(QoS)、分支设备数量…

【java】Spring Cloud --Spring Cloud Alibaba 教程

文章目录Spring Cloud Alibaba是什么Spring Cloud AlibabaSpring Cloud Alibaba 组件Spring Cloud Alibaba 的应用场景Spring Cloud 两代实现组件对比Spring Cloud Alibaba 版本依赖Spring Cloud Alibaba 组件版本关系Spring Cloud Alibaba NacosNacos 的特性服务发现服务健康监…

写博客有哪些好用的工具和软件?

写博客有哪些好用的工具和软件? 在各种平台上写文章,要有一个好用的编辑器,使用简单方便、不用花很多时间排版、能预览效果等。此外,文章还需要配图片、动图和视频等,所以需要好用的截图软件、视频录制和剪辑软件。 …

ME1M 报表Layout调整

众所周知,SAP的许多报表都可以选择以ALV的格式输出,ALV格式界面友好,业务人员可以按照自己的需求去调整报表输出格式,同时也方便导出到本地文件。大多数报表的选择界面上都有一个字段scope of list, 将其改成ALV: 偏偏…

该学会是自己找bug了(vs调试技巧)

前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍c语言初阶的最后一篇.有关调试的重要性. 金句分享…

Linux基本介绍与常用操作指令

参考链接: Linux面试必备20个常用命令_无 羡ღ的博客-CSDN博客_linux常用命令 1. Linux简介 Linux是一个支持多用户、多任务、多线程和多CPU的操作系统,特点是免费、稳定、高效, 一般运行在大型服务器上。 1.1 常用目录简介 /:根目…

【storybook】你需要一款能在独立环境下开发组件并生成可视化控件文档的框架吗?(一)

storybook介绍入门说说用法prop-types.stories.jsx介绍 你肯定用过ant-design或者elemenUI中的一款UI组件库, 你肯定打开过它们的官网, 你是否好奇过,页面上展示的案例, 你为啥可以操作,还能查看源码供你CV?它们是…

Docker之路(6.docker容器数据卷、具名挂载匿名挂载、权限挂载)

1. 什么是容器数据卷 如果数据都在容器中,那么容器删除后,数据就会丢失! 所以希望容器的数据能够存到本地 容器之间可以又一个数据共享的技术! Docker容器中产生的数据,可以同步到本地,这就是卷技术。 就是…

Nacos Ignore the empty nacos configuration and get it based on dataId

1.配置错误 dataId问题 启动日志: 使用properties格式的文件: Ignore the empty nacos configuration and get it based on dataId[xxx-server] & group[DEFAULT_GROUP] Ignore the empty nacos configuration and get it based on dataId[xxx-s…

【Redis中bigkey你了解吗?bigkey的危害?】

一.Redis中bigkey你了解吗?bigkey的危害? 如果面试官问到了这个问题,不必惊慌,接下来我们从什么是bigkey?bigkey划分的类型?bigkey危害之处? 二.什么是bigkey?会有什么影响&#xff…

九头蛇hydra爆破http示例

使用hydra执行http表单暴力破解 通过浏览器自带分析得知: 提交地址:http://10.0.0.115/student_attendance/ajax.php?action=login 提交方式:POST 提交数据:username=a&password=a 服务响应:3 根据以上收集的信息就可以使用hydra进行密码爆破 hydra 10.0.0.115 http…

【第一章:Spring概述、特点、IOC容器、IOC操作bean管理(基于xml方式创建对象,注入属性)】

第一章:Spring概述、特点、IOC容器、IOC操作bean管理(基于xml方式创建对象,注入属性) 1.Spring是什么? ①Spring是一款主流的java EE 轻量级开源框架。 ②广义的Spring:Spring技术栈,Spring不再…

华为OD机试题,用 Java 解【计算最大乘积】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

【基础算法】哈希表(开放寻址法)

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…

聚观早报|饿了么星选停止运营;百度2022财报全年营收1236.75亿元

今日要闻:饿了么星选停止运营;百度2022财报全年营收1236.75亿元;微软收购暴雪获力挺;全国首例!这一代练平台被叫停;现代汽车已开始在美国生产电动汽车 饿了么星选停止运营 2 月 22 日,饿了么旗下…

使用Vite创建VUE项目

使用Vite来创建vue项目 很久没有接触前端的技术了,一下子就冒出来很多技术,有的根本没见过呀,vue变成了3,vue-cli也变得不好用了,说vite很好用,那就创建个项目试试吧。 有一点前提哈,电脑上要…

华为OD机试题,用 Java 解【磁盘容量排序】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

【100个 Unity实用技能】 | 将Dictionary字典中的数据序列化 到Unity Inspector监视器面板

Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案&#xff…

【vue2每日小知识】实现store中modules模块的封装与自动导入

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:省去我们store仓库中分模块时的需要每次导入index的问题 目录 【前言】在store中如何简…

UART 串口通信实验

目录 一、UART 简介 1、 UART 通信格式 二、I.MX6U UART 简介 1、硬件原理 2、寄存器 UARTx_UCR1(x1~8) UARTx_UCR2​ UARTx_UCR3​ UARTx_USR2​ 其他寄存器 三、代码编写 1、编写bsp_uart.h 2、编写bsp_uart.c 3、main 不管是单片机开发还是嵌入式 Linux 开发&a…