DebugView v5.02

作者:Mark Russinovich

发布时间: 2026 年 6 月 17 日

下载 下载 DebugView(1.7 MB)
立即Sysinternals Live 运行。

简介

Debugview 是一个应用程序,支持你监视本地系统上或可通过 TCP/IP 访问的网络上任何计算机上的调试输出。 它可以同时显示内核模式和 Win32 调试输出,因此无需调试器来捕获应用程序或设备驱动程序生成的调试输出,也无需修改应用程序或驱动程序以使用非标准调试输出 API。

注释

DebugView v5.0 需要 Windows 10 版本 1809(内部版本 17763)/Windows Server 2019 或更高版本。

DebugView 进行捕获

DebugView 将捕获:

  • Win32 OutputDebugString
  • 内核模式 DbgPrint
  • DbgPrint 的所有内核模式变体

如果 DebugView 在崩溃时正在捕获数据,则还会从 Windows 故障转储文件中提取在崩溃之前生成的内核模式调试输出信息。

DebugView 功能

DebugView 具有一组可用于控制和管理调试输出的强大功能。

版本 5.02 的新增功能:

  • 命令行接口(DbgViewCLI): 新的独立命令行工具(dbgviewcli.exe)从终端提供完整的调试捕获功能。 专为脚本化、自动化和 AI 代理驱动的工作流而设计,具有绑定的执行、计算机可读输出和特定于进程的筛选。 有关完整详细信息,请参阅下面的 DbgViewCLI 部分。
  • AI 代理自动化参数:新的 CLI 选项(--duration--max-lines--wait-for--tail--no-banner--status--pid-filter--process-filter)可确保有界执行和整洁的输出,供编码代理以编程方式调用。
  • 使用单命令安装的嵌入式代理技能:DbgViewCLI 将代理技能文件嵌入为二进制资源,并可以使用 将代理技能文件直接安装到支持的 AI 编码代理(GitHub Copilot、Claude、Cursor、Codex) 中--install-skills <agent>

版本 5.0 的新增功能:

  • 深色模式和新式 UI:DebugView 现在使用 Windows XAML 岛技术提供完全重新设计的界面。 UI 会自动遵循系统范围的浅色或深色主题设置,深色模式一致地应用于标题栏、菜单、工具栏、对话框和输出列表视图。 现代化工具栏和菜单栏提供与其他 Sysinternals 工具(如进程监视器)一致的视觉样式。
  • 自动崩溃恢复:DebugView 检测到上一个会话由于未正常关闭(例如系统崩溃)而结束时,它会自动扫描 Windows 故障转储文件,从上一个会话恢复挂起的内核调试跟踪,并在输出窗口中显示它们。 这样就可以对系统故障发生时捕获的内核模式调试输出进行事后分析,而无需任何手动干预。
  • 大型捕获的 UI 虚拟化: 输出列表视图现在使用所有者数据虚拟化,这意味着随时仅呈现可见行。 这样 ,DebugView 就可以有效地处理包含数十万或数百万条调试消息的捕获,而不会占用过多内存或 UI 速度变慢。
  • 专用 PID 列: 默认情况下会显示新的进程 ID 列,以便更轻松地识别生成每个调试输出消息的进程。 可以从“选项”菜单打开或关闭 PID 列。
  • 按需 UAC 提升:DebugView 在启动时不再需要管理权限。 仅当启用内核模式捕获或其他需要提升权限的操作时,它才会以标准用户身份启动,并通过 UAC 提示请求提升。
  • DPI 感知呈现: 在高 DPI 显示器上,菜单图标、工具栏按钮、对话框和输出列表都正确缩放。

版本 4.6 新增功能:

  • 支持 Windows Vista 32 位和 64 位

4.5 版本新增功能:

  • 支持日志文件滚动更新:为了更好地支持长期运行的捕获,DebugView 现在可以每天创建新的日志文件,并且可以选择在执行此操作时清除显示。

版本 4.4 新增功能:

  • 支持适用于 x64 的 Windows Server 2003 64 位版本和 Windows XP 64 位版本:DebugView 现在可捕获 64 位版本 Windows 上的内核模式调试输出。
  • 时钟时间切换:现在,可以在时钟时间和已用时间模式之间切换。

版本 4.3 新增功能:

  • 支持 Windows XP SP2:DebugView 现在可捕获 Windows XP SP2 上的内核模式调试输出。
  • 更多突出显示筛选器:许多用户要求提供更多突出显示筛选器。
  • 日志文件包装:当达到指定大小限制时,使用新的日志文件选项可将 DebugView 包装到日志文件的开头。
  • 更大的缓冲区:更大的 Win32 和内核模式缓冲区会降低删除调试输出的可能性。
  • 明文输出字符串:DebugView 看到特殊的调试输出字符串“DBGVIEWCLEAR”时,它会清除输出。
  • 客户端最小化到托盘:现在,可以在托盘中运行最小化的客户端。

版本 4.2 新增功能:

  • 已修复内核挂钩 bug:DebugView 有时会错误地报告它无法在 Windows XP 和 Server 2003 上挂钩内核模式调试输出。
  • 客户端全局捕获选项:使用新选项,客户端可以在从非控制台会话运行时捕获终端服务器系统上的控制台 Win32 调试输出。
  • 筛选功能改进:现在可以设置更长的筛选器,并在输出中包含进程 ID 时,应用于 Win32 进程 ID。
  • 改进的故障转储支持:修复了与从故障转储中提取内核模式输出相关的几个 bug,并且 DebugView 现在会加载生成的日志文件。
  • 更多突出显示筛选器:DebugView 现在具有 10 个突出显示筛选器,而以前是 5 个。
  • 插入注释:使用新的菜单项可将注释插入到输出中。
  • 新切换开关:使用新的命令行开关,可以指定历史记录深度和加载日志文件。
  • 更好的气球提示:如果输出行比屏幕更宽,则鼠标悬停气球提示词会自动换行。

版本 4.1 新增功能:

  • 保存和加载筛选器:可以保存和加载筛选器,包括高亮颜色。
  • 加载保存的日志:现在,可以将日志文件加载回 DebugView 输出窗口。
  • 捕获启动时内核模式调试输出:在 Windows 2000 下,可以使用 DebugView 捕获驱动程序从启动过程最早时间点生成的调试输出。

下面是一个列表,其中突出显示了 DebugView 的一些其他功能:

  • 远程监视:从任何可通过 TCP/IP(甚至是通过 Internet)访问的计算机捕获内核模式和/或 Win32 调试输出。 可以同时监视多台远程计算机。 如果你在 Windows 2000 系统上运行 DebugView,并从同一网络邻居中的另一个 Windows 2000 系统进行捕获,则 DebugView 甚至会自行安装其客户端软件。
  • 最近筛选列表:DebugView 会记住你最近的筛选器选择,其界面可帮助你轻松地重新选择它们。
  • 专用 PID 列: 单独的进程 ID 列显示生成每个调试消息的进程,可从“选项”菜单切换。
  • 剪贴板复制:在输出窗口中选择多行,并将其内容复制到剪贴板。
  • 日志到文件:在捕获的同时将调试输出写入文件。
  • 打印:将捕获的全部或部分调试输出打印到打印机。
  • 单文件有效负载:DebugView 是作为一个文件实现的。
  • 故障转储支持:DebugView 可以从故障转储中恢复其缓冲区,并将输出保存到日志文件,以便用户可以将 Windows 驱动程序在故障发生前生成的输出发送给你。 在版本 5.0 中,检测到未正常关闭时,会在启动时自动执行此恢复过程。

在线帮助文件详细介绍了所有这些功能以及更多内容。

系统要求

DebugView v5.0 需要 Windows 10 版本 1809(内部版本 17763)或 Windows Server 2019 或更高版本。 现代 UI 基于 Windows XAML Islands 构建,因此需要此操作系统的最低版本。 较旧版本的 Windows 上的用户应使用 DebugView v4.90。

安装和使用

只需执行 DebugView 程序文件 (dbgview.exe),DebugView 就会立即开始捕获调试输出。 DebugView 以标准用户身份启动;仅当启用内核模式捕获或其他需要管理权限的操作时,才会提示你通过 UAC 提升。 菜单、热键或工具栏按钮可用于清除窗口、将受监视的数据保存到文件、搜索输出、更改窗口字体等。 在线帮助介绍了 DebugView 的所有功能。

如果在系统崩溃期间以前的DebugView会话处于活动状态,DebugView将在下次启动时自动检测到异常关闭,扫描故障转储文件,并显示从上一会话中恢复的所有内核调试跟踪。

对于命令行和自动化方案,请改用 dbgviewcli.exe 。 DbgViewCLI 在针对脚本和 AI 编码代理优化的终端友好接口中提供相同的捕获引擎。 运行 dbgviewcli --help 以查看完整的选项列表,或参阅下面的 DbgViewCLI 部分。

DebugView 屏幕截图

DbgViewCLI Command-Line 接口

DbgViewCLIdbgviewcli.exe) 是一个独立的命令行工具,用于捕获来自Windows应用程序()和内核模式驱动程序(OutputDebugString)的实时调试输出。DbgPrint/KdPrint 它专为脚本化、自动化以及由 AI 代理驱动的调试捕获工作流而设计。

DbgViewCLI 是一个本机Windows可执行文件,没有外部依赖项(静态链接)。 将其放在你的 PATH 中,或直接引用完整路径。

DbgViewCLI 系统要求

要求 详细信息
OS Windows 10版本 1809(内部版本 17763)/Windows Server 2019或更高版本(x64,ARM64)
权限 用于 Win32 捕获的标准用户;用于内核/启动捕获的 管理员
Driver 内核捕获需要 Dbgv.sys 驱动程序(在获得提升权限后会自动提取并加载)

捕获控制参数

参数 Short Description Default
--capture -c 启用采集
--no-capture 禁用捕获
--kernel -k 启用内核调试输出捕获(需要管理员)
--no-kernel 禁用内核捕获
--win32 -w 启用 Win32 OutputDebugString 捕获
--no-win32 禁用 Win32 捕获
--global -g 启用全局Win32捕获(会话 0)
--no-global 禁用全局 Win32 捕获
--passthrough 允许调试输出传递到附加的调试器
--no-passthrough 禁止传递原始调试输出
--force-cr 对各行强制换行
--no-force-cr 不要强制回车
--verbose-kernel -v 启用详细内核输出
--no-verbose-kernel 禁用详细内核输出
--pids 在输出中显示进程 ID
--no-pids 隐藏进程 ID

筛选参数

参数 Short Description
--filter <pattern> -i 包含筛选器 — 以分号分隔的通配符模式(默认值:*
--exclude <pattern> -e 排除过滤器 — 以分号分隔的通配符模式
--pid-filter <pid> 仅显示来自特定进程 ID 的输出。 启用此项时,将跳过不带 PID 的内核输出。
--process-filter <name> 仅显示命名进程的输出(不区分大小写的子字符串匹配)。 在运行时将 PID 解析为进程映像名称。

自动化参数(对 AI 智能体友好)

这些参数专用于 AI 编码代理和自动化脚本使用,这些脚本需要 有保证的有限执行干净的计算机可读输出

参数 Description
--duration <seconds> N 秒后自动停止捕获。 "Duration limit reached (N seconds)."打印到 stderr 并干净地退出。 必须是正整数。
--max-lines <N> 向 stdout 发出 N 行后自动停止捕获。 "Max lines reached (N)."打印到 stderr 并退出。 必须是正整数。
--wait-for <pattern> 持续捕获,直到某条调试消息匹配指定的通配符模式,然后退出。 与 --duration 兼容(哪个先触发就以哪个为准)。
--tail <N> 将各行缓存在大小为 N 的环形缓冲区中。不是在每行到达时立即输出,而是在退出时仅将最后 N 行输出到 stdout。 对“刚刚发生了什么”这类查询很有用。
--no-banner 禁止显示 stderr 上的版本横幅和 "Press Ctrl+C to stop..." 提示文本。 使输出保持简洁,便于通过管道或自动化方式使用。
--status 打印正在运行的 DbgViewCLI 实例的计算机可读状态并立即退出。 将 key=value 对输出到 stdout(请参阅以下示例)。

为什么这些因素对 AI 代理很重要:

  1. 有限执行--duration, , --max-lines--wait-for) - 代理同步调用 CLI 工具,需要有保证的退出。
  2. 干净输出--no-banner) - 横幅文本会污染结构化输出并混淆分析程序。
  3. 可查询状态--status) - 允许代理在不分析进程列表的情况下检查工具状态。
  4. 目标捕获--pid-filter--process-filter) - 调试特定进程的代理需要精确的筛选。
  5. 最近的上下文--tail) - 代理通常只需要“刚刚发生的事情”,而不是完整历史记录。

时间显示参数

参数 Description
--elapsed 显示自捕获开始以来已过去的时间(以秒为单位,默认)
--clock HH:MM:SS 格式显示挂钟时间
--clock-ms 显示挂钟时间(精确到毫秒)HH:MM:SS.mmm

输出格式参数

参数 Description
--format text 制表符分隔的文本输出(默认值)
--format csv 逗号分隔值 - 适用于电子表格或编程分析
--format xml 简单 XML 元素输出

日志记录参数

参数 Description
--log <file> 将捕获的输出记录到文件
--log-append 追加到现有日志文件中,而不是覆盖它
--log-limit <MB> 限制日志文件大小(以 MB 为单位)
--log-wrap 日志文件写满时循环回到开头(需要 --log-limit
--log-daily 每天创建新的日志文件
--log-daily-clear 创建新每日文件时清除输出显示

历史参数

参数 Short Description
--history <lines> -h 将历史记录深度限制为 N 行(0 = 无限制)

启动日志记录参数 (需要管理员)

参数 Description
--boot-enable 启用启动时内核调试日志记录。 将 Dbgv.sys 驱动程序配置为在启动时加载,并从启动过程中最早点捕获 DbgPrint 输出。 重启后仍然保留。
--boot-disable 禁用启动时内核调试日志记录并删除启动启动配置。
--boot-status 显示当前的启动日志记录配置状态和退出。

远程监视参数

参数 Description
--connect <computer> 连接到运行 DbgView 的远程计算机,以捕获远程调试信息(使用 TCP 端口 2020–2030)。
--disconnect 断开与远程监视会话的连接。

故障转储和文件操作

参数 Description
--crashdump <file> 分析Windows故障转储文件并提取在崩溃前捕获的调试输出。
--load <file> 加载以前保存的日志文件并显示其内容。
--save <file> 退出时将所有捕获的输出保存到文件。

运行时控制参数(进程间)

这些命令通过命名事件与已运行的 DbgViewCLI 实例通信:

参数 Description
--pause 在正在运行的 DbgViewCLI 实例上暂停捕获。
--resume 在暂停的 DbgViewCLI 实例上恢复捕获。
--stop 正常停止正在运行的 DbgViewCLI 实例。

代理技能参数

参数 Description
--install-skills <agent> [--global] 为指定的代理安装嵌入式代理技能文件。 请参阅下面的 代理技能安装
--export-skills <path> 将嵌入的技能文件导出到指定的文件夹路径。 适用于手动检查或自定义代理配置。

杂项参数

参数 Short Description
--quit -q 终止正在运行的 GUI DebugView 实例
--accepteula 以非交互方式接受 EULA (写入注册表项,跳过提示)
--version 显示版本字符串和退出
--help -? 显示完整的帮助文本

DbgViewCLI 用法示例

基本 Win32 捕获(有限)

REM Capture for 30 seconds, no banner, output as text
dbgviewcli --no-banner --duration 30

REM Capture until a specific error appears
dbgviewcli --no-banner --wait-for "*ERROR*" --max-lines 10000

内核调试捕获(需要管理员权限)

REM Run from an elevated prompt
dbgviewcli --kernel --no-banner --duration 60 --format csv --log kernel_debug.csv

特定于进程的筛选

REM Filter by PID
dbgviewcli --no-banner --pid-filter 1234 --duration 10

REM Filter by process name (substring match)
dbgviewcli --no-banner --process-filter "myapp.exe" --max-lines 500

基于模式的筛选

REM Include only lines matching pattern, exclude verbose noise
dbgviewcli --no-banner --filter "MyDriver*" --exclude "verbose*"

尾部模式(最新上下文)

REM Capture for 30 seconds but only output the last 50 lines on exit
dbgviewcli --no-banner --tail 50 --duration 30

状态检查 (计算机可读)

dbgviewcli --status

输出:

running=true
paused=false
elevated=true

启动日志记录工作流

REM Enable boot logging (requires admin, persists across reboot)
dbgviewcli --boot-enable

REM Check boot logging status
dbgviewcli --boot-status

REM Disable boot logging
dbgviewcli --boot-disable

远程监视

dbgviewcli --connect SERVER01 --no-banner --duration 60

运行时控制(来自另一个终端)

REM Pause a running instance
dbgviewcli --pause

REM Resume the paused instance
dbgviewcli --resume

REM Gracefully stop a running instance
dbgviewcli --stop

无人参与的 EULA 接受

REM Accept EULA non-interactively for automated deployments
dbgviewcli --accepteula --no-banner --duration 30

合并安全边界

REM Use duration AND max-lines together — whichever triggers first wins
dbgviewcli --no-banner --duration 60 --max-lines 10000 --format csv

代理技能安装

DbgViewCLI v5.02 将一组完整的代理技能文件作为二进制资源嵌入可执行文件中。 这些技能指导 AI 编码代理如何有效地使用 DbgViewCLI 进行调试捕获、筛选、启动日志记录、远程监视和故障转储分析。

这些技能也会发布到全局 microsoft/skills 仓库,该仓库为 Skills、MCP 服务器、自定义代理和 Agents.md 文件提供一个集中式目录,供 SDK 为编码代理提供基础依据。 如果不想使用嵌入式安装命令,可以直接从该存储库引用它们。

支持的代理

Agent --install-skills
GitHub Copilot copilot
Claude claude
Cursor cursor
Codex codex

安装路径

技能会安装在各代理专用目录中。 使用 --global 安装到用户配置中(在所有项目中可用),而不是安装到当前工作区。

Agent 本地路径(工作区) 全局路径(用户配置)
GitHub Copilot ./.github/skills/sysinternals-debugview/ %USERPROFILE%/.copilot/skills/sysinternals-debugview/
Claude ./.claude/skills/sysinternals-debugview/ %USERPROFILE%/.claude/skills/sysinternals-debugview/
Cursor ./.cursor/skills/sysinternals-debugview/ (不支持)
Codex ./skills/sysinternals-debugview/ %USERPROFILE%/.codex/skills/sysinternals-debugview/

安装技能

REM Install skills for GitHub Copilot in the current workspace
dbgviewcli --install-skills copilot

REM Install skills globally for Claude (available in all projects)
dbgviewcli --install-skills claude --global

REM Install skills for Cursor (local only)
dbgviewcli --install-skills cursor

REM Install skills for Codex globally
dbgviewcli --install-skills codex --global

将技能导出到自定义位置

REM Export all embedded skills to a folder for manual inspection
dbgviewcli --export-skills C:\MySkills\debugview

技能包括的内容

嵌入式技能包包含以下资源,这些资源教代理如何操作 DbgViewCLI:

File Purpose
SKILL.md 主要技能定义 - 触发器、参数、用法示例、最佳做法
references/driver-ioctls.md 内核驱动程序 IOCTL 代码和缓冲区结构
references/output-formats.md 文本/CSV/XML 输出格式规范
references/remote-protocol.md TCP 远程监视线路协议文档
scripts/detect-dbgview.ps1 用于在 PATH 或常见目录上查找 dbgviewcli.exe 的 PowerShell 脚本
scripts/capture-wrapper.ps1 具有参数验证的安全边界捕获脚本
scripts/boot-logging-workflow.ps1 端到端启动日志生命周期管理脚本

安装后,当要求代理捕获调试输出、分析内核跟踪、设置启动日志记录或执行任何其他 DbgViewCLI 操作时,代理将自动使用这些技能。

代理使用最佳实践

  1. 始终使用 --no-banner 用于自动/代理,用于保持输出干净且可分析。
  2. 始终将执行绑定到--duration--max-lines--wait-for。 无界捕获会无限期运行。
  3. 在捕获之前检查状态 - 用于 --status 检测另一个实例是否已运行。
  4. 当输出将由程序解析时,使用 --format csv--format xml
  5. 优先使用 --pid-filter--process-filter,而不是宽泛捕获,以减少噪声。
  6. 仅在需要时以管理员身份运行——内核和启动日志记录需要提升权限;Win32 捕获则不需要。
  7. 为安全起见,组合使用界限 — 一起使用 --duration 60 --max-lines 10000,这样哪个先触发就以哪个为准。
  8. 使用 --tail 用于“刚刚发生的情况”查询,而不是捕获完整历史记录。

这是 DebugView 捕获调试输出的屏幕截图。 请注意具有专用 PID 列和突出显示筛选器的新式深色模式接口。

下载 下载 DebugView(1.7 MB)

立即Sysinternals Live 运行。