在这个例子中,有一个 note 段,其余的是 load 段。note 段供给了有关 CPU 信息,load 段供给了关于复制的体系内存组件的信息。
vmcore 大年夜 elfcorehdr 开端,它具有与 ELF 法度榜样头雷同的构造。拜见下图中 elfcorehdr 的表示:

pratyush_f2.png
kexec-tools 攫取 /sys/devices/system/cpu/cpu%d/crash_notes 并预备 CPU PT_NOTE 的标头。同样,它攫取 /sys/kernel/vmcoreinfo 并预备 vmcoreinfo PT_NOTE 的标头,大年夜 /proc/iomem 攫取体系内存并预备存储器 PT_LOAD 标头。当“捕获内核”接收到 elfcorehdr 时,它大年夜标头中提到的地址中攫取数据,并预备 vmcore。
Crash note
Crash notes 是每个 CPU 顶用于在体系崩溃的情况下存储 CPU 状况的区域;它有关于当前 PID 和 CPU 存放器的信息。
vmcoreinfo
makedumpfile
【编辑推荐】
- 在Linux办事器中设备mongodb情况
- 玩转Linux,哪些技能会是您的必备之选?
- Linux内核驱动中对文件的读写
- 在Linux Mint安装Linux Kernel 4.12(稳定版)
- LKU:一套在Ubuntu/LinuxMint上编译、安装和更新最新内核的Shell脚本
该 note 段具有各类内核调试信息,如构造体大年夜小、符号值、页面大年夜小等。这些值由捕获内核解析并嵌入到 /proc/vmcore 中。 vmcoreinfo 重要由 makedumpfile 应用法度榜样应用。在 Linux 内核,include/linux/kexec.h 宏定义了一个新的 vmcoreinfo。 一些示例宏如下所示:
- VMCOREINFO_PAGESIZE()
- VMCOREINFO_SYMBOL()
- VMCOREINFO_SIZE()
- VMCOREINFO_STRUCT_SIZE()
vmcore 中典范多信息(如可用页面)都没有效处。makedumpfile 是一个用于清除不须要的页面的应用法度榜样,如:
- 填满零的页面;
- 没有私有标记的缓存页面(非专用缓存);
- 具有私有标记的缓存页面(专用缓存);
- 用户过程数据页;
- 可用页面。
此外,makedumpfile 在复制时紧缩 /proc/vmcore 的数据。它也可以大年夜转储中删除敏感的符号信息; 然而,为了做到这一点,它起首须要内核的调试信息。该调试信息来自 VMLINUX 或 vmcoreinfo,其输出可所以 ELF 格局或 kdump 紧缩格局。
典范用法:
- # makedumpfile -l --message-level 1 -d 31 /proc/vmcore makedumpfilecore
kdump 调试
新手在应用 kdump 时可能会碰到的问题:
在“第一内核”的最后一个消息之后,在控制台上看不到任何器械(比如“bye”)
- 检查 kexec -e 之后的 kexec -l kernel_image 敕令是否工作。
推荐阅读
【51CTO.com原创稿件】7月26日,2017 “云•执掌将来”AWS技巧峰会在北京国度会议中间┞焚开。大年夜会覆盖了基本办事、架构、安然、IoT、大年夜数据、AI等多个热点主题,>>>详细阅读
本文标题:使用Kdump检查Linux内核崩溃
地址:http://www.17bianji.com/lsqh/36514.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示