Agent Skills
返回列表
🔒

DebugView 命令行调试捕获

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/debugview。

技能介绍

要解决什么问题

在 Windows 上排查应用或驱动问题时,调试信息往往通过 OutputDebugString(用户态)或 DbgPrint/KdPrint(内核)输出,传统做法是打开 Sysinternals DebugView GUI 盯着窗口看。这对脚本、CI 和 AI 代理都不友好:没有可控的退出条件、输出混在横幅里、也难以按进程或模式过滤后交给下游解析。

技能如何工作

本技能围绕 DbgViewCli(DebugView 的命令行界面):在 PATH 或指定路径运行 dbgviewcli.exe,即可做实时捕获。

  • 捕获面:默认开启 Win32(-w);内核输出需 -k 且管理员权限,由 Dbgv.sys 自动加载。
  • 过滤:--filter / --exclude 通配符、--pid-filter、--process-filter 缩小噪声。
  • 边界执行(适合自动化):--duration、--max-lines、--wait-for 保证进程会结束;--tail 在退出时只刷最近 N 行。
  • 输出:--no-banner 保持管道干净;--format text|csv|xml;--log 及滚动/按日切分;--status 输出机器可读状态。
  • 进阶:启动日志(--boot-enable)、远程 --connect、对已有实例 --pause/--resume/--stop、崩溃转储 --crashdump。

设计上 stdout 为调试行、stderr 为错误/状态;静态链接 CRT,无额外 DLL 依赖。

适用边界与注意点

  • Win32 捕获普通用户即可;内核与启动日志必须提权。
  • 无 --duration 等边界时捕获会一直运行,自动化务必组合边界参数。
  • 执行任何 dbgviewcli 二进制前,应用 Get-AuthenticodeSignature 确认由 Microsoft Corporation 签名,拒绝未签名或非微软发布者。
  • Win32 无输出时:确认目标确实调用了 OutputDebugString,且未被调试器“吃掉”;多实例冲突可用 --status 或 --quit 处理 GUI DbgView。

使用场景

  • 在 Windows CI 跑集成测试时,用 `--duration` 与 `--process-filter` 只抓取被测进程的 `OutputDebugString` 并导出 CSV 供失败分析。
  • 驱动复现蓝屏或启动异常时,以管理员执行 `-k` 内核捕获,配合 `--wait-for` 在出现关键 DbgPrint 模式后自动结束。
  • 线上故障排查中让代理执行 `--no-banner --max-lines`,把最近调试行写入日志文件,避免 GUI DbgView 无法远程操作。
  • 需要早期启动阶段日志时,按工作流启用 `--boot-enable`,重启后结合 `--load` 或 `--crashdump` 对照转储中的调试输出。

适合人员

  • 维护 Windows 内核或过滤驱动的工程师,需要在无 GUI 的构建机或 RDP 会话里抓取 DbgPrint 并限定捕获时长。
  • 负责 Windows Server 故障值守的运维,希望用 PowerShell 包装脚本做带参数校验的边界捕获并落盘日志。
  • 编写桌面端自动化测试的 QA,被测程序只打 `OutputDebugString`,需要按 PID 过滤并输出结构化结果给解析脚本。
  • 在企业环境用 AI 代理执行调试采集的安全/平台同学,要求先验 Authenticode 再调用 dbgviewcli,并用 `--status` 避免多实例冲突。