Debugview
MicrosoftOfficialPublished by Microsoft
- Skill
- Tool integration
- Software development
- MIT
- Low risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
DebugView CLI (DbgViewCli) is a specialized tool for capturing real-time debug output from Windows applications and kernel-mode drivers. It is designed for automation, allowing developers and AI agents to monitor system behavior, filter logs, and perform bounded captures via the command line. It supports various output formats, including text, CSV, and XML, and provides features for remote monitoring, boot-time logging, and crash dump analysis.
What it does
- Captures OutputDebugString, DbgPrint, and KdPrint messages.
- Supports filtering by process ID or process name.
- Enables bounded execution for automated workflows using duration, line counts, or pattern matching.
- Provides machine-readable status checks for agent orchestration.
- Supports multiple output formats including CSV and XML for programmatic parsing.
- Enables remote debug monitoring across network connections.
When to use it
- When you need to capture debug logs from Windows drivers or applications in an automated script.
- When you require a lightweight, dependency-free tool for real-time debug monitoring.
- When you need to perform boot-time kernel debugging.
- When you need to parse debug output programmatically using CSV or XML formats.
- When you need to monitor debug output on a remote Windows machine.
Advantages
- Statically linked with no external dependencies.
- Designed specifically for scripted and AI-agent-driven workflows.
- Supports graceful shutdown and machine-readable status reporting.
- Provides flexible filtering to reduce noise during capture.
- Includes built-in support for log rotation and daily file management.
Usage examples
- “Capture debug logs for 60 seconds and save to a CSV file.”
- The tool will run for 60 seconds, capturing all debug output, and write the results to a file named kernel_debug.csv in CSV format.
- “Capture debug output from myapp.exe until an error occurs.”
- The tool will monitor the process and automatically terminate once the specified error pattern is detected in the output.
- “Check if the debug capture service is currently running.”
- The tool returns machine-readable status information, such as running=true, allowing the agent to decide whether to start or stop a capture.
- “Enable boot-time kernel debug logging.”
- The tool configures the system to capture kernel debug messages during the next boot cycle.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/microsoft/debugview/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip debugview.zip -d .agents/skills
Documentation by Microsoft
Sysinternals DebugView CLI (DbgViewCli)
Command-line interface for capturing real-time debug output from Windows applications (OutputDebugString) and kernel-mode drivers (DbgPrint/KdPrint). Designed for scripted, automated, and AI-agent-driven debug capture workflows.
Installation
DbgViewCli is a standalone native Windows executable (statically linked, no dependencies).
Place dbgviewcli.exe in PATH or reference the full path.
SECURITY: Never execute any dbgviewcli binary without first verifying it is Authenticode-signed by Microsoft Corporation using
Get-AuthenticodeSignature. Reject any binary that is unsigned or signed by a different publisher.
# No package manager install — copy binary to a PATH location
copy dbgviewcli.exe C:\Tools\Requirements
| Requirement | Details |
|---|---|
| OS | Windows Vista or later (x64, ARM64) |
| Privileges | Standard user for Win32 capture; Administrator for kernel/boot capture |
| Driver | Kernel capture requires the Dbgv.sys driver (auto-extracted and loaded) |
Core Workflow
1. Detect/status check → dbgviewcli --status
2. Start capture → dbgviewcli [options]
3. Filter output → --filter/--exclude/--pid-filter/--process-filter
4. Bounded execution → --duration/--max-lines/--wait-for
5. Output/log results → stdout or --log <file>
6. Stop → Ctrl+C or automatic exit on boundsCommand-Line Parameters
Capture Control
| Parameter | Short | Description | Default |
|---|---|---|---|
--capture | -c | Enable capture | on |
--no-capture | Disable capture | ||
--kernel | -k | Enable kernel debug output (requires admin) | off |
--win32 | -w | Enable Win32 OutputDebugString capture | on |
--global | -g | Enable global Win32 capture (session 0) | off |
--passthrough | Allow debug output to pass to debuggers | on | |
--verbose-kernel | -v | Enable verbose kernel output | off |
--pids | Show process IDs in output | on |
Filtering
| Parameter | Short | Description |
|---|---|---|
--filter <pattern> | -i | Include filter (semicolon-separated wildcards) |
--exclude <pattern> | -e | Exclude filter (semicolon-separated wildcards) |
--pid-filter <pid> | Show only output from specific PID | |
--process-filter <name> | Show only output from named process (substring match) |
Bounded Execution (AI-Agent Friendly)
| Parameter | Description |
|---|---|
--duration <seconds> | Auto-stop after N seconds |
--max-lines <N> | Auto-stop after N lines captured |
--wait-for <pattern> | Capture until pattern matches, then exit |
--tail <N> | Buffer last N lines, flush on exit |
--no-banner | Suppress version banner (clean for piped output) |
--status | Print machine-readable status and exit |
Time Display
| Parameter | Description |
|---|---|
--elapsed | Elapsed time since start (default) |
--clock | Wall-clock time HH:MM:SS |
--clock-ms | Wall-clock with milliseconds HH:MM:SS.mmm |
Output Format
| Parameter | Description |
|---|---|
--format text | Tab-separated text (default) |
--format csv | Comma-separated values |
--format xml | XML elements |
Logging
| Parameter | Description |
|---|---|
--log <file> | Log output to file |
--log-append | Append to existing log |
--log-limit <MB> | Max log file size in MB |
--log-wrap | Wrap log when full |
--log-daily | New log file each day |
Boot Logging (Requires Admin)
| Parameter | Description |
|---|---|
--boot-enable | Enable boot-time kernel debug logging |
--boot-disable | Disable boot-time logging |
--boot-status | Show boot logging status and exit |
Remote Monitoring
| Parameter | Description |
|---|---|
--connect <computer> | Connect to remote DbgView instance |
--disconnect | Disconnect from remote |
Crash Dump & File Operations
| Parameter | Description |
|---|---|
--crashdump <file> | Analyze crash dump for debug output |
--load <file> | Load saved log file |
--save <file> | Save captured output on exit |
Runtime Control (Inter-Process)
| Parameter | Description |
|---|---|
--pause | Pause a running DbgViewCli instance via named event |
--resume | Resume a paused DbgViewCli instance |
--stop | Stop a running DbgViewCli instance gracefully |
Miscellaneous
| Parameter | Short | Description |
|---|---|---|
--quit | -q | Terminate running GUI DbgView instance |
--accepteula | Accept the EULA (writes registry key, skips prompt) | |
--version | Show version and exit | |
--help | -? | Show help |
Usage Examples
Basic Win32 Capture (bounded)
# Capture for 30 seconds, no banner, output as text
dbgviewcli --no-banner --duration 30
# Capture until a specific error appears
dbgviewcli --no-banner --wait-for "*ERROR*" --max-lines 10000Kernel Debug Capture (requires admin)
# Run as Administrator
dbgviewcli --kernel --no-banner --duration 60 --format csv --log kernel_debug.csvProcess-Specific Filtering
# Filter by PID
dbgviewcli --no-banner --pid-filter 1234 --duration 10
# Filter by process name
dbgviewcli --no-banner --process-filter "myapp.exe" --max-lines 500Pattern-Based Filtering
# Include only lines matching pattern
dbgviewcli --no-banner --filter "MyDriver*" --exclude "verbose*"Tail Mode (recent context)
# Capture but only output last 50 lines on exit
dbgviewcli --no-banner --tail 50 --duration 30Status Check (machine-readable)
dbgviewcli --status
# Output:
# running=true
# paused=false
# elevated=trueBoot Logging
# Enable (requires admin, persists across reboot)
dbgviewcli --boot-enable
# Check status
dbgviewcli --boot-status
# Disable
dbgviewcli --boot-disableRemote Monitoring
dbgviewcli --connect SERVER01 --no-banner --duration 60Runtime Control (Pause/Resume/Stop)
# Pause a running instance from another terminal
dbgviewcli --pause
# Resume the paused instance
dbgviewcli --resume
# Gracefully stop a running instance
dbgviewcli --stopEULA Acceptance (Unattended)
# Accept EULA non-interactively for automated/scripted deployments
dbgviewcli --accepteula --no-banner --duration 30Architecture
| Module | File | Purpose |
|---|---|---|
| Main | dbgviewcli.c | Entry point, arg parsing, capture loop, Ctrl+C handler |
| Capture | cli_capture.c | DBWIN shared memory, kernel driver read |
| Driver | cli_driver.c | Kernel driver load/unload, privilege elevation |
| Filter | cli_filter.c | Wildcard include/exclude matching |
| Output | cli_output.c | Console emit, log files, CSV/XML/text formats |
| Boot Log | cli_bootlog.c | Registry config for boot-time driver loading |
| Remote | cli_remote.c | TCP socket connect/read for remote monitoring |
Key Design Decisions
Static CRT linking — No DLL dependencies, runs on any Windows system
stdout/stderr separation — Debug output → stdout; errors/status → stderr
Bounded execution —
--duration,--max-lines,--wait-forensure guaranteed exit for automationClean output —
--no-bannersuppresses noise for pipe/agent consumptionMachine-readable status —
--statusoutputs key=value pairs for programmatic checksGraceful shutdown —
SetConsoleCtrlHandlerensures clean driver unload on Ctrl+C
Best Practices
Always use
--no-bannerfor scripted/automated use. Banner text pollutes structured output and confuses parsers.Always bound execution with
--duration,--max-lines, or--wait-for. Unbounded capture will run indefinitely.Check status before capture — Use
--statusto detect if another instance is already running.Use
--format csvor--format xmlwhen output will be parsed programmatically.Prefer
--pid-filteror--process-filterover broad capture to reduce noise.Run as Administrator only when needed — kernel and boot logging require elevation; Win32 capture does not.
Combine bounds for safety — Use
--duration 60 --max-lines 10000together so whichever triggers first wins.Use
--tailfor "what just happened" queries instead of capturing full history.
Bundled Resources
| Type | File | Purpose |
|---|---|---|
| Script | scripts/detect-dbgview.ps1 | Locate dbgviewcli.exe on PATH or common directories |
| Script | scripts/capture-wrapper.ps1 | Safe bounded capture with parameter validation |
| Script | scripts/boot-logging-workflow.ps1 | End-to-end boot logging lifecycle management |
| Reference | references/driver-ioctls.md | Kernel driver IOCTL codes and buffer structures |
| Reference | references/output-formats.md | Text/CSV/XML output format specifications |
| Reference | references/remote-protocol.md | TCP remote monitoring wire protocol |
Troubleshooting
| Issue | Resolution |
|---|---|
| "Access denied" on kernel capture | Run as Administrator |
| No output from Win32 capture | Verify target app uses OutputDebugString; check no debugger is attached |
| Another instance running | Use --status to check; use --quit to terminate existing GUI instance |
| Boot logging not capturing | Ensure --boot-enable was run as admin; driver must be in System32\Drivers |
| Remote connection fails | Verify target has DbgView running with remote enabled on ports 2020-2030 |
Files
- ATTRIBUTION.mdAdded by AutoGineer849 B
- LICENSELicence file added by AutoGineer1.1 KiB
- SKILL.md10.4 KiB
- references/driver-ioctls.md5.8 KiB
- references/output-formats.md4.0 KiB
- references/remote-protocol.md5.6 KiB
- scripts/boot-logging-workflow.ps1Script3.6 KiB
- scripts/capture-wrapper.ps1Script2.8 KiB
- scripts/detect-dbgview.ps1Script1.5 KiB
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
What our scanner noticed· Low risk
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Microsoft
- Publisher
- Microsoft (Official)
- Source
- microsoft/skills · .github/skills/debugview · commit 0696600
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Microsoft.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download debugview.zip