debugview
DebugView CLI — навык для управляемого сбора отладочного вывода Windows через Sysinternals DbgViewCli. Его назначение — получить воспроизводимый фрагмент диагностического потока из приложений и драйверов, когда нужно увидеть сообщения OutputDebugString, kernel DbgPrint или KdPrint, а затем передать ограниченный результат человеку либо автоматизированному агенту. Это специализированный Windows-инструмент, а не универсальная система логирования: исходный SKILL.md прямо исключает не-Windows окружения, application-level frameworks вроде log4j и serilog, облачную телеметрию Azure Monitor, ETW-трассировку и user-mode crash dumps, для которых нужен WinDbg. Для ETW следует использовать WPR или xperf, а для дампов пользовательского режима — WinDbg. Перед запуском навык предполагает проверку самого бинарника. DbgViewCli поставляется как отдельный нативный exe без внешних зависимостей; его можно поместить в PATH или запускать по полному пути. Однако выполнение нельзя начинать только потому, что файл найден: Microsoft требует проверить Authenticode-подпись через Get-AuthenticodeSignature и отклонить бинарник, если он не подписан Microsoft Corporation или подпись отсутствует. Официальные требования указывают Windows Vista или новее, включая x64 и ARM64. Обычный Win32 capture доступен стандартному пользователю, а перехват kernel- и boot-сообщений требует запуска с правами администратора. Kernel-режим использует драйвер Dbgv.sys, который CLI автоматически извлекает и загружает; это означает, что перед таким сценарием нужно отдельно подтвердить право на elevation и допустимость загрузки драйвера. Рабочий процесс можно держать коротким и проверяемым. Сначала выполняется dbgviewcli --status, затем запускается capture с нужным режимом, после чего поток сужается фильтрами и записывается в stdout либо в файл через --log. Для Win32-сообщений используется --win32, для kernel output — --kernel, а --global предназначен для глобального Win32-сеанса. В вывод можно включить PID. Фильтр включения --filter принимает разделённые точкой с запятой wildcard-паттерны, --exclude исключает шум; --pid-filter ограничивает один PID, а --process-filter — имя процесса. Такое ограничение важно для диагностики: агент не должен читать бесконечный общий поток, если вопрос относится к одному процессу или драйверу. У DbgViewCli есть явные границы выполнения, поэтому сценарий можно завершить без ручного Ctrl+C. --duration останавливает capture через заданное число секунд, --max-lines — после лимита строк, --wait-for — после совпадения с паттерном, а --tail сохраняет только последние строки перед выходом. --no-banner оставляет чистый машинно-обрабатываемый вывод. Форматы text, csv и xml подходят для разных потребителей; text является табличным TSV по умолчанию. Статус выводится в формате key=value и может содержать running, paused и elevated. stdout предназначен для отладочных сообщений, stderr — для ошибок и статуса, что позволяет разделить полезные данные и контроль выполнения в пайплайне. Отдельные возможности требуют явного контроля побочных эффектов. --boot-enable включает сохранение kernel debug logging между перезагрузками, --boot-status показывает состояние, а --boot-disable выключает его; эти операции требуют администратора и должны выполняться только по разрешённой задаче. Для удалённого мониторинга служат --connect и --disconnect. --crashdump анализирует dump-файл, --load загружает сохранённый лог, --save сохраняет capture при завершении. --pause, --resume и --stop управляют уже работающим экземпляром через named event. --accepteula автоматически принимает EULA и записывает ключ в реестр, поэтому unattended-сценарий обязан явно учитывать этот системный эффект. Практический безопасный сценарий — сначала проверить подпись и статус, выбрать Win32 или kernel-режим, задать process/PID-фильтр, ограничить время или число строк, отключить баннер и сохранить результат в формате, который ожидает следующий шаг. Для kernel и boot capture заранее подтверждаются административные права; для удалённого режима отдельно проверяется разрешённая машина. Такой порядок не превращает CLI в аудит безопасности и не доказывает корректность самого приложения: он лишь помогает получить ограниченную, воспроизводимую порцию debug output с понятным режимом, фильтром, длительностью и происхождением бинарника.
Для чего подходит
- Диагностика kernel-mode и user-mode
- Bounded capture debug-сообщений
- Фильтрация и разбор DebugView output
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/microsoft/skills/tree/main/.github/skills/debugview