资讯动态

实时内核转储:蓝屏前给系统拍张“体检照“——SystemInformer 内核转储指南

发布时间:2026/9/11 11:04:01 来源:尧图企业网站定制
实时内核转储:蓝屏前给系统拍张体检照——SystemInformer 内核转储指南【免费下载链接】systeminformerA free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars Solutions, Inc. https://windows-internals.com项目地址: https://gitcode.com/GitHub_Trending/sy/systeminformerSystemInformer 是一款免费的 Windows 系统调试工具。本文讲 SystemInformer 的内核转储功能:系统还没崩溃时,就能实时抓一份内核转储(Live Kernel Dump),把内核内存现状快照到磁盘。适合系统不稳定的普通用户,也适合写驱动的开发人员。能力总览:它不止能看进程SystemInformer 是 Windows 系统调试的瑞士军刀:进程、驱动、网络、注册表都能看。围绕崩溃分析,它有三个核心能力:实时内核转储。系统还在运行时,就把内核内存的完整状态抓下来存盘。不用等蓝屏发生,不用重启。进程级小转储(minidump)。对任意进程右键,单独给它做快照。配合内核快照选项,方便追查某个具体程序的崩溃。图形化、免命令行。全程点鼠标操作。程序本身免费、开源(MIT 协议),源码就在你眼前。底层它带一个内核驱动,源码在 KSystemInformer/ 目录,用来读取更深层的系统信息。动手实践编译安装:先让程序跑起来要做的:在你电脑上装好一个能用的 SystemInformer。确认环境。Windows 10 或更高版本即可,32 位 64 位都行;想自己编译需要 Visual Studio 2022。拿到程序。自己编译的话,克隆仓库:git clone https://gitcode.com/GitHub_Trending/sy/systeminformer也可以从项目官网下载现成的绿色版,不需要安装。编译。打开项目根目录的SystemInformer.sln解决方案;项目也提供了 CMake 支持,见根目录 CMakeLists.txt 和 cmake/ 目录。你会看到:主窗口列出所有进程,顶部有 CPU、内存等资源曲线。创建实时内核转储最快步骤要做的:系统已经出现不稳定迹象(程序频繁崩溃、卡顿),趁还没蓝屏,把现场保存下来。右键主窗口里的进程,在 Dump 菜单里选 Custom;或用工具栏的 Live kernel dump 入口,弹出配置对话框。按需勾选:Compress memory pages 压缩内存页,减小体积;只关心内核问题时勾 Only kernel thread stacks,只存内核线程栈。点确定,选保存位置。默认文件名形如kerneldump_2026-09-10_09-30-00.dmp。这些勾选项对应的参数,在 SystemInformer/kdump.c 里逐项设置:options.CompressMemoryPages Button_GetCheck(GetDlgItem(hwndDlg, IDC_COMPRESS)) BST_CHECKED; options.OnlyKernelThreadStacks Button_GetCheck(GetDlgItem(hwndDlg, IDC_ONLYKERNELTHREADSTACKS)) BST_CHECKED;底层实现很直接:同一个文件里调用 Windows 系统调试接口完成抓取。你会看到:一个进度窗口,实时显示转储文件正在长到多大。完成后,硬盘上多出一个.dmp文件,这就是这一刻系统的体检照。转储文件分析速查:把 .dmp 交给调试器要做的:转储文件在手,想知道当时内核里有什么。安装 Windows Debugger(WinDbg,随 Windows SDK 提供),用它打开.dmp。查看加载模块列表和内核内存布局。实时转储是活体快照,重点看哪些驱动、哪些内存区域不对劲。如果你还拿到了蓝屏后自动生成的小转储(默认在C:\Windows\Minidump),用 WinDbg 打开并运行!analyze,它会给异常代码、崩溃堆栈和疑似模块的初步判断。你会看到:加载驱动列表、崩溃时的堆栈和异常代码。堆栈指向哪个驱动,就先更新或回滚哪个驱动。避坑指南:权限和体积,三句话解决提示Unable to create live kernel dump。原因:没用管理员身份运行。代码里直接检查当前用户令牌,权限不够就拒绝,见 SystemInformer/kdump.c 中的提权检查。解决:右键程序选以管理员身份运行。转储文件太大,吃光磁盘空间。原因:默认抓的是全量内核内存。解决:勾选仅内核线程栈,只存内核线程栈;再勾上压缩内存页,体积会明显下降。转储进程时,内核部分提示无法生成。原因:内核快照需要管理员权限;32 位进程还要借助对应的 32 位程序辅助,相关逻辑在 SystemInformer/mdump.c。解决:以管理员身份重新运行,再试一次。收尾:下次崩溃之前,先拍张照内核转储的价值在一个活字:不用等蓝屏才动手,系统一有风吹草动就能留证据。建议你现在就做一件事——以管理员身份打开 SystemInformer,勾上仅内核线程栈创建一份转储,把完整流程走一遍。真出问题时,你只需要重复这几个动作。【免费下载链接】systeminformerA free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware. Brought to you by Winsider Seminars Solutions, Inc. https://windows-internals.com项目地址: https://gitcode.com/GitHub_Trending/sy/systeminformer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价