자동화된 워크플로우를 위해 명령줄에서 Windows 유저 모드 및 커널 모드 디버그 출력을 캡처하고 분석합니다.
- GitHub 스타
- 3,194
- 파일
- 7
- 마지막 커밋
- 2026년 11월 11일
- 라이선스
- MIT
- 허용된 도구
- —
debugview skill은 무엇을 하나요?
debugview은(는) agent skill입니다. 자동화된 워크플로우를 위해 명령줄에서 Windows 유저 모드 및 커널 모드 디버그 출력을 캡처하고 분석합니다.
skill의 SKILL.md에서 생성된 요약입니다.
debugview skill 정보
debugview는 자동화된 진단 워크플로우를 구축하는 개발자가 명령줄에서 Windows 디버그 출력을 캡처하고 분석할 수 있도록 지원합니다. 이 도구를 사용하면 에이전트가 유저 모드의 OutputDebugString과 커널 모드의 DbgPrint 또는 KdPrint 메시지를 모두 모니터링할 수 있습니다. 수동 개입 없이 에이전트가 특정 로그를 수집해야 하는 스크립트 환경에 최적화되어 있습니다.
사용자는 --duration, --max-lines, --wait-for와 같은 파라미터를 사용하여 프로세스가 자동으로 종료되도록 캡처 과정을 제어할 수 있습니다. 프로세스 이름 또는 PID를 통한 필터링을 지원하며, 데이터를 text, CSV 또는 XML 형식으로 출력할 수 있습니다. Win32 캡처는 표준 사용자 권한으로 작동하지만, 커널 또는 부팅 시점의 로그를 캡처하려면 관리자 권한과 Dbgv.sys 드라이버가 필요합니다. 또한 TCP 연결을 통한 원격 모니터링 기능을 제공하며, 크래시 덤프를 분석하여 디버그 정보를 확인할 수 있습니다.
skill의 SKILL.md를 기반으로 작성되었습니다. 모든 사용 사례는 해당 문서의 인용구와 대조 확인되었습니다.
debugview skill 설치 방법
각 명령은 skill 폴더를 클라이언트의 skills 디렉터리에 복사합니다. 클라이언트를 재시작하거나 새 세션을 시작하여 로드하세요.Claude Code에 debugview skill 설치
~/.claude/skills/debugview/SKILL.md
$ npx degit microsoft/skills/.github/skills/debugview ~/.claude/skills/debugviewClaude Code (project)에 debugview skill 설치
.claude/skills/debugview/SKILL.md
$ npx degit microsoft/skills/.github/skills/debugview .claude/skills/debugviewCodex에 debugview skill 설치
~/.agents/skills/debugview/SKILL.md
$ npx degit microsoft/skills/.github/skills/debugview ~/.agents/skills/debugviewGemini CLI에 debugview skill 설치
~/.gemini/skills/debugview/SKILL.md
$ npx degit microsoft/skills/.github/skills/debugview ~/.gemini/skills/debugviewClaude.ai에 debugview skill 설치
npx degit microsoft/skills/.github/skills/debugview debugview && zip -r debugview.zip debugview # claude.ai → Customize → Skills → + → Create skill → Upload a skill → debugview.zip
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 보안 감사는 아닙니다. 에이전트가 실행하기 전에 스크립트를 읽어 보세요. 검사 방식
- 소스 저장소 연결 및 접근 가능microsoft/skills/.github/skills/debugview is public and reachablegithub.com/microsoft/skills/tree/HEAD/.github/skills/debugvi ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit 2026-11-11github.com/microsoft/skills/commits ↗통과
- 스크립트에 다운로드 후 실행이나 자격 증명 탈취가 없음3 scripts read; no download-and-run, remote eval, base64 execution or credential upload통과
- SKILL.md에 숨겨진 지침 없음No override phrases, safeguard switches, credential requests or hidden charactersgithub.com/microsoft/skills/blob/HEAD/.github/skills/debugvi ↗통과
- 사전 허용 도구가 제한됨No pre-approved tools; the agent asks before using onegithub.com/microsoft/skills/blob/HEAD/.github/skills/debugvi ↗통과
SKILL.md
GitHub에서 보기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 bounds
Command-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 10000
Kernel Debug Capture (requires admin)
# Run as Administrator
dbgviewcli --kernel --no-banner --duration 60 --format csv --log kernel_debug.csv
Process-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 500
Pattern-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 30
Status Check (machine-readable)
dbgviewcli --status
# Output:
# running=true
# paused=false
# elevated=true
Boot Logging
# Enable (requires admin, persists across reboot)
dbgviewcli --boot-enable
# Check status
dbgviewcli --boot-status
# Disable
dbgviewcli --boot-disable
Remote Monitoring
dbgviewcli --connect SERVER01 --no-banner --duration 60
Runtime 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 --stop
EULA Acceptance (Unattended)
# Accept EULA non-interactively for automated/scripted deployments
dbgviewcli --accepteula --no-banner --duration 30
Architecture
| 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 automation - Clean output —
--no-bannersuppresses noise for pipe/agent consumption - Machine-readable status —
--statusoutputs key=value pairs for programmatic checks - Graceful 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 |
이 스킬의 파일
7debugview skill 질문
Claude Code에 debugview skill을 어떻게 설치하나요?
npx degit microsoft/skills/.github/skills/debugview ~/.claude/skills/debugview를 실행합니다. Claude Code는 ~/.claude/skills(모든 프로젝트) 또는 .claude/skills(한 프로젝트)에서 skills를 로드하며, 설명이 작업과 일치할 때 skill을 사용합니다.
debugview skill을 사용할 수 있는 클라이언트는 무엇인가요?
Agent Skills 형식을 읽는 모든 클라이언트(Claude Code, Codex, Gemini CLI, claude.ai(ZIP으로 업로드))가 사용할 수 있습니다. skill 내 스크립트는 클라이언트가 코드 실행을 허용하는 경우에만 실행됩니다.
커널 모드 캡처를 위해 어떤 권한이 필요한가요?
커널 및 부팅 시점의 디버그 로깅에는 관리자 권한이 필요하지만, 표준 Win32 캡처는 일반 사용자 권한으로 수행할 수 있습니다.
어떤 dbgviewcli 바이너리를 실행해도 안전한가요?
아니요, Get-AuthenticodeSignature를 사용하여 Microsoft Corporation의 Authenticode 서명이 되어 있는지 확인하지 않은 바이너리는 절대 실행해서는 안 됩니다.