【ARM Linux 系统稳定性分析入门及渐进 1.2 -- Crash 工具依赖内容】
请阅读:【Linux 维测及Crash使用专栏】
文章目录
- Prerequisites
- 1. 内核对象文件
- 2. 内存镜像
- 3. 平台处理器类型
- 4. Linux 内核版本
Prerequisites
crash
工具需要依赖下面的内容:
1. 内核对象文件
- vmlinux 文件:需要一个 vmlinux 内核对象文件,在本文中称为命名列表(namelist)。该文件必须使用
-g
C 编译标志构建,以便包含符号调试所需的调试数据。 - RHEL3 中的处理:在 RHEL3 的系统中,正在运行的内核对应的 vmlinux 文件被分割成两个文件:一个精简版位于
/boot
目录,文件名中附有操作系统的版本号,例如vmlinux-2.4.21-4.elsmp
。这个/boot
中的精简文件包含一个链接,指向其关联的 debuginfo 文件,该文件位于/usr/lib/debug/boot
目录。 - RHEL4、RHEL5 和 RHEL6 中的处理:在这些系统中,vmlinux 文件是内核 debuginfo 包的一部分,位于
/usr/lib/debug/lib/modules/<release>
目录中。 - 理想情况下:内核对象文件应与内存镜像文件关联。然而,如果与崩溃转储或实时系统关联的 vmlinux 文件未用
-g
标志构建,可以在调用部分中讨论的替代方案。
2. 内存镜像
- 来源:可以是从支持的转储设施生成的内核崩溃转储文件,或通过
/dev/mem
(在 RHEL4/5/6 中为/dev/crash
驱动)访问的实时系统内存。 - 默认行为:如果在
crash
命令行中没有提供转储文件参数,则默认使用实时系统内存。在检查实时系统时,需要 root 权限。
3. 平台处理器类型
- 开发和测试:
crash
工具在 x86、x86_64、ia64、ppc64、Arm、s390 和 s390x 处理器上被积极开发和测试。 - 遗留支持:虽然
crash
工具不再积极维护 alpha 和 32 位 PowerPC 平台,但仍提供遗留支持。
4. Linux 内核版本
- 兼容性:
crash
工具向后兼容至少到 Red Hat 6.0(Linux 版本 2.2.5-15),一直到 Red Hat Enterprise Linux 5(Linux 版本 2.6.18+)。 - 内核变化支持:由于上游内核内部结构的不断变化,不能保证立即支持最新的内核版本。然而,
crash
工具不断进行修改,以支持上游内核版本的变化。目标始终是使该工具独立于 Linux 版本依赖,通过识别主要的内核代码变化,适应新内核版本,同时保持向后兼容性。
通过满足上述前提条件,crash
工具可以在多个平台和内核版本上有效地进行内核分析和调试,为开发人员提供强大的问题解决能力。