当前位置: 首页 > news >正文

【ARM Linux 系统稳定性分析入门及渐进 1.3 -- Crash 工具调用】

文章目录

      • Crash 工具的调用
        • 在实时系统上运行 crash
        • 自动查找内核对象文件
      • 内核构建要求
    • Crash 工具的调用输出
        • 成功调用示例

Crash 工具的调用

在使用 crash 工具分析转储文件时,至少需要两个参数

  1. 内核对象文件名:通常称为内核 namelist。在最初从内核源代码构建时,其名称是 vmlinux。在 RHEL3 系统中,该文件被复制到 /boot 目录,并附加上操作系统的版本号,例如 vmlinux-2.4.21-4.elsmp。在 RHEL4、RHEL5 和 RHEL6 系统中,vmlinux 文件是内核 debuginfo 包的一部分,位于相关的 /usr/lib/debug/lib/modules/<release> 目录中。
  2. 转储文件名:通常命名为 vmcore
    例如,如果这两个文件都位于当前目录中,命令格式如下:
crash vmlinux vmcore
在实时系统上运行 crash

在实时系统上运行 crash 时,使用 /dev/mem 作为内存镜像。在 RHEL4、RHEL5 和 RHEL6 系统中,由于在 x86 和 x86_64 系统上限制 /dev/mem 驱动,因此使用 /dev/crash 驱动取而代之。
在这种情况下,只需提供内核对象文件名即可:

crash vmlinux
自动查找内核对象文件

当在实时系统上运行 crash 时,如果内核对象文件位于以下任一目录中,则不需要指定 vmlinux 参数:

  • /boot
  • /usr/lib/debug/boot
  • /usr/lib/debug/lib/modules/<release>

如果在命令行中没有指定 vmlinux 文件,crash 将在以上目录中查找,直到找到与正在运行的内核版本(通过 /proc/version 指示)匹配的内核对象文件为止。如果找到匹配的内核对象文件,则可以简单地通过以下命令在实时系统上调用 crash

crash

内核构建要求

在上述示例中,假设 vmlinux 内核是使用 -g C 标志构建的,而传统上默认并未执行此操作。为了满足该要求,从 Red Hat Enterprise Linux 3(RHEL3)开始,所有 RHEL 内核都使用 -g C 标志构建。对于 RHEL3、RHEL4、RHEL5 和 RHEL6 内核,访问调试数据的方式在后续章节中描述。不幸的是,由于 RHEL2.1 内核并未使用 -g 编译,因此需要重建内核;RHEL2.1 内核重建的指导可以在官方文档中找到。

Crash 工具的调用输出

在使用 crash 工具时,参数可以以任意顺序输入。如果文件参数不在当前目录中,则必须使用绝对路径名。当不确定如何使用时,可以输入 crash -h 来获取命令行参数的解释。
在这里插入图片描述

成功调用示例

假设所有调用参数都正确,以下是一个成功解析转储文件的示例。

      KERNEL: vmlinux  [TAINTED]DUMPFILES: /var/tmp/ramdump_elf_XXXXXX [temporary ELF header]CPUS: 8 [OFFLINE: 7]DATE: Mon Nov  4 14:17:30 CST 2023UPTIME: 00:05:33
LOAD AVERAGE: 5.33, 3.73, 1.72TASKS: 301NODENAME: rootRELEASE: 6.10-cvs-build-genericVERSION: #24 SMP PREEMPT Fri Nov  1 19:45:34 CST 2024MACHINE: aarch64  (unknown Mhz)MEMORY: 32 GBPANIC: "[core7-pid:5626-thread1]Kernel panic - not syncing: Oops: Fatal exception" (check log for details)PID: 5626COMMAND: "thread1"TASK: ffff00007847d580  [THREAD_INFO: ffff00007847d580]CPU: 4STATE: TASK_RUNNING (PANIC)
crash>

调用成功后,crash 工具将读取内核对象文件和转储文件,并开始对内核崩溃进行分析。输出中将显示内核版本信息、加载的模块、进程列表等有用的调试信息,让用户可以深入分析崩溃原因。


http://www.mrgr.cn/news/65469.html

相关文章:

  • 全志A133 android10 LVDS幅值调节
  • 联动香港、成都、武汉三所高校!“2024 深圳国际金融科技大赛”校园行圆满结束
  • 【小白学机器学习29】 概率统计与图形 ( hist, bar, pie , box ,scatter ,line)
  • 详解SQL单表查询
  • 负载均衡算法
  • C++面向对象三大特性之多态
  • 原生鸿蒙应用市场:开发者的新机遇与深度探索
  • 自恋型人格障碍
  • Spring连接数据库(以配置类的形式)
  • flutter 专题二 Flutter状态管理之Riverpod 0.8.4
  • 前端技术月刊-2024.11
  • JZ7 重建二叉树
  • Docker:网络 Network
  • 【大语言模型学习笔记】第一篇:LLM大规模语言模型介绍
  • 【Mac】安装 VMware Fusion Pro
  • 网络安全到底是什么?看完你就懂了(附学习资料)
  • Linux云计算个人学习总结(一)
  • ProLightsfx新的出发–从CSDN到WordPress
  • 晟矽微LVD低电压检测案例分析
  • 请你谈一谈闭包?详细解释闭包的概念、形成原因、作用及与作用域、垃圾回收机制的关系
  • Python并发编程库:Asyncio的异步编程实战
  • 一文搞懂python虚拟环境配置及使用pyenv进行python多版本管理
  • 【AI】【提高认识】通往通用人工智能之路:现实与幻想的交汇
  • 学习RocketMQ(记录了个人艰难学习RocketMQ的笔记)
  • 宠物用品市场分析,宠物用品什么最好卖?
  • unity3d————点乘概念