内核转储,开抓啦!

简介: 内核转储,开抓啦!

如果你还不清楚什么是转储文件,不知道什么时候需要转储文件,请参考转储文件系列文章的第一篇 —— 转储文件知多少

前言

前面几篇文章主要介绍了用户态转储文件(User-Mode Dump File)相关的内容。相信通过前面几篇文章的介绍,大家对用户态转储文件的抓取方法有了进一步的了解。接下来的几篇文章将介绍如何保存内核态转储文件(Kernel-Model Dump File)。

约定

关于 Kernel-Model Dump File 的叫法,直接翻译过来是 内核态转储文件 。有时候我会表述为 内核转储文件,或者更简单的 内核转储 。有时候也会表述为 系统转储文件,或者 系统转储 。当转储文件只包含内核信息时,称作 内核转储 是比较合适的。当转储文件中不仅包含内核信息,还包含用户态进程的信息时,称作 系统转储 是比较合适的。有时候界限划分的不是那么清晰,毕竟官方文档里只有 Kernal-Model Dump 。请各位小伙伴儿理解。

应用场景

用户态转储文件 是为用户态进程生成的转储文件,包含了用户态进程的信息。那么很容易理解,系统转储文件 就是为系统生成的转储文件,包含了操作系统的信息。我们在如下几种情况下可能需要系统转储。

  • 当系统莫名其妙蓝屏的时候,我们希望能自动保存一份转储文件,供我们分析。
  • 当需要调试的问题涉及到多个进程(比如,调试跨进程 COM 调用的问题)。这时候只生成单个进程的转储文件已经不能很好的帮助我们调试问题了,我们需要抓取系统转储文件。
  • 其它一些需要获取系统信息的情况。

几种生成方法

我们可以有很多种办法生成系统转储文件。我总结为如下三大类:

  1. 通过各种办法让系统崩溃,让系统帮我们生成转储文件。当然需要提前设置。
  2. 使用内核调试器。在本地内核调试(或 双机内核调试)的时候可以通过 .dump 命令直接生成转储文件,或者通过调试器的 .crash 命令让系统蓝屏。这种情况下,生成转储文件只是一个额外福利。
  3. 使用 livekd。当然,livekd 也会借助内核调试器的帮助,单独列出来是因为 livekd 实在是太强大了。

本文简要介绍一个可以让系统在蓝屏时自动保存转储文件的设置,后续会逐一介绍每种生成方法。

关键系统设置

  1. 打开 系统属性对话框高级 选项页。可以用下面的方法打开:

    • 我的电脑右键, 属性(R)(也可以直接执行 control.exe system,或者按快捷键 Windows + Pause),然后点击高级系统设置

    • 直接执行sysdm.cpl,然后点击 高级 选项页。

    • 其它方法。
  2. 点击 启动和故障恢复 下面的 设置(T)... 按钮。启动和故障恢复 对话框会弹出来。

  3. 写入调试信息 下面的组合框中选择 完全内存转储(根据自己的需要选择对应的选项)

  4. 依次点击 确定 按钮。

  5. 重启生效。

具体步骤可参考下图:
system-crash-dump-setting

相关文章
|
4月前
|
安全 Linux 文件存储
在Linux中,服务器开不了机怎么解决⼀步步的排查?
在Linux中,服务器开不了机怎么解决⼀步步的排查?
|
4月前
|
运维 监控 Linux
Linux系统读写硬盘慢,如何排查?四步教你定位问题!
【8月更文挑战第24天】在Linux系统运维中,硬盘读写速度慢是一个常见且影响重大的问题。它不仅会导致服务器性能下降,还会影响用户体验。本文将详细介绍四个步骤,帮助你快速定位并解决Linux系统硬盘读写慢的问题。
843 0
|
4月前
|
网络协议 Unix Linux
作为网工,你还只会Wireshark?那你就OUT了!
作为网工,你还只会Wireshark?那你就OUT了!
|
6月前
|
Web App开发 网络安全 iOS开发
一篇文章讲明白Mac活动监视器闪退pro发热耗电过快问题解决,亲测可用解决
一篇文章讲明白Mac活动监视器闪退pro发热耗电过快问题解决,亲测可用解决
122 2
|
缓存 Windows
蓝屏(BSOD)转储设置,看本文就够了!
蓝屏(BSOD)转储设置,看本文就够了!
|
存储 安全 API
调试实战 | 通过转储文件分析程序无响应之使用 windbg + IDA 逆向篇
调试实战 | 通过转储文件分析程序无响应之使用 windbg + IDA 逆向篇
|
存储 缓存 监控
腾讯三面:进程写文件过程中,进程崩溃了,文件数据会丢吗?
腾讯三面:进程写文件过程中,进程崩溃了,文件数据会丢吗?
198 0
腾讯三面:进程写文件过程中,进程崩溃了,文件数据会丢吗?
8080端口莫名被占用 ,如何结束掉进程
8080端口莫名被占用 ,如何结束掉进程
257 0
|
监控 Linux
Linux驱动开发: 使用usbmon抓取usb 总线上通信的数据
Linux驱动开发: 使用usbmon抓取usb 总线上通信的数据
1093 0
Linux驱动开发: 使用usbmon抓取usb 总线上通信的数据