Я когда-то писал в блоге про kdfe.cmd и BlueScreenView. Эти решения по-разному и со своими недостатками пытались решить задачу определения драйвера, вызвавшего критическую ошибку. Теперь они не нужны.
Автор утилиты MiniDumper ограничил ее загрузку и работу для пользователей из РФ и РБ без VPN.
Сегодня я расскажу про утилиту MiniDumper (скачать), которая создавалась с учетом пожеланий специалистов, оказывающих поддержку в форуме устранения критических ошибок Windows. Ее автор – участник форума OSZone simplix.
[+] Сегодня в программе
Сведения для обычных пользователей
При запуске утилита автоматически анализирует найденные в системе дампы за последний год и открывает отчет в текстовом редакторе.
Вы также можете перетащить на исполняемый файл утилиты отдельный дамп или папку с дампами.
Дамп: 101017-7753-01.dmp (10.10.2017 17:57) Код: 0x3B - SYSTEM_SERVICE_EXCEPTION Процесс: avp.exe, вероятно вызвано: NETIO.SYS Сторонние модули в стеке: klwtp.sys Сторонние модули в Raw-стеке: nvlddmkm.sys, klim6.sys, klwtp.sys, adgnetworkwfpdrv.sys, klflt.sys, klif.sys
С именем драйвера уже можно идти в гуглояндекс. Если дело в сторонней программе или драйвере, надо начинать с их удаления / обновления. В примере выше – драйвер ЛК.
В более сложных случаях следует обращаться в форум.
Сведения для специалистов поддержки
Ряд фич MiniDumper реализован по просьбам моего коллеги по форуму Petya V4sechkin. Поэтому утилита очень удобна для техподдержки.
Возможности утилиты
MiniDumper работает в Windows 7 (с обновлениями) и более новых ОС. В состав программы входят Debugging Tools for Windows. Все команды, которые передаются отладочной утилите, формируются динамически в зависимости от кода ошибки и результатов предыдущих команд. Помимо !analyze -v MiniDumper:
- Анализирует как обычный стек, так и Raw-стек (командой dps) на предмет сторонних модулей. Raw-стек имеет меньшую достоверность, чем обычный стек, поскольку может содержать не относящиеся к сбою фрагменты предыдущих цепочек вызовов. Но во многих случаях он оказывается полезен (например, когда обычный стек неполон или повреждён).
- Выполняет особую обработку для кодов 0x7A, 0x77 и части 0xF4 (связаны с ошибками дисковой подсистемы), а также для 0x9F.
- Сохраняет журнал отладочных команд в папке с дампом, в том числе сведения о конфигурации (!sysinfo) и информацию о проблемных драйверах (lmvm).
- Выводит сводные результаты анализа по всем обработанным дампам в файл MiniDumper.log, который сохраняется в папке с утилитой (пример).
Отладочная информация
При анализе утилита скачивает отладочную информацию (debug symbols) в %temp%\MiniDumper. После закрытия утилиты папка удаляется автоматически.
Если вы регулярно анализируете дампы, можете задать расположение символов с помощью системных переменных среды:
_NT_SYMBOL_PATH=srv*D:\Symbols*https://msdl.microsoft.com/download/symbols _NT_EXECUTABLE_IMAGE_PATH=srv*D:\Symbols*https://msdl.microsoft.com/download/symbols
Запуск из командной строки
В качестве параметров командной строки MiniDumper принимает путь к дампу или папке с дампами, а также ключ /S для тихого режима (указывается перед путем к папке).
Заключение
QR-код с синего или зеленого экрана ведет в статью базы знаний, а там лишь общие рекомендации. Впрочем, недавно Microsoft опубликовала документацию по диагностике BSOD, где приводятся более конкретные советы для некоторых распространенных кодов ошибок, а также базовые инструкции по работе с WinDbg.
MiniDumper полностью автоматизирует анализ, упрощая задачу обычным пользователям и экономя время специалистам. Рекомендую!
Как вы анализируете BSOD?
- BlueScreenView (40%, голосов: 190)
- Ищу в интернете код ошибки (40%, голосов: 187)
- Windbg (6%, голосов: 29)
- Критических ошибок не возникает (5%, голосов: 23)
- MiniDumper (4%, голосов: 17)
- kdfe.cmd (3%, голосов: 12)
- Другое / Моего варианта тут нет (3%, голосов: 12)
- Сразу обращаюсь в форум (0%, голосов: 2)
Проголосовало: 472 [архив опросов]
Alexander Sukhovey
>Теперь они не нужны
Ну вот :(
Vadim Sterkin
Александр, не огорчайтесь :) kdfe сослужил хорошую службу, но minidumper удобнее.
Alexander Sukhovey
Да я наоборот удивляюсь, что о нем еще кто-то помнит.
Целью того моего поста на Sysadmins (и отчасти самого скрипта) было привлечь внимание сисадминов в kd/WinDbg: уж больно много было постов на форумах, связанных с BSOD, а самостоятельный анализ практически никто не делал.
Но эта обертка KD получилась хорошая и зажила своей жизнью :)
Vadim Sterkin
:) Я в свое время пытался вас найти, чтобы согласовать публикацию скрипта в блоге. Может, недостаточно активно искал, не помню уже, в итоге выложил как есть.
Алексей
Вадим, добрый день!
Данную утилиту в большинстве случаев нужно бы использовать на работе. А в основном на работе выход в интернет через прокси. А для MiniDumper необходим прямой интернет. Есть ли решение для этого случая? Спасибо
PS. утилита (версия 1.7) у меня ругается на отсутствие интернета, хотя интернет есть, но через прокси.
Алексей Каманин
Любое ПО в Windows по умолчанию использует для выхода в сеть настройки ОС, которые задаются в IE.
Этого должно быть достаточно.
В вашем случае, видимо, прокси-сервер блокирует соединения по тем портам, с которыми работает утилита.
Алексей
То, что прокси блокирует выход в интернет — это понятно. Хотелось бы иметь возможность прописать настройки прокси в меню программы или в каком-либо ini файле. А так для меня данная утилита к сожалению (????)
simplix
Добавил поддержку прокси из IE, ссылка новой версии не изменилась.
Алексей Каманин
Сначала ищу код ошибки, потом BSView, который, надо сказать, не всегда помогает.
Vadim Sterkin
А что можно по коду ошибки найти? Кучу сайтов со сгенерированной бесполезной инфой и не менее бесполезные темы в Answers. Тогда уж лучше сразу фильтровать по коду в форуме критических ошибок на OSZone.
Andrey Dmitriev
Вадим, добрый день.
Уже много лет для анализа дампов использую ресурс http://www.osronline.com/page.cfm?name=analyze — быстро, удобно и много полезной информации. На ресурс также ссылаются многие производители в своих мануалах.
Ещё больше информации и рекомендаций даёт утилита https://www.sysnative.com/forums/threads/official-update-sysnative-bsod-processing-apps.3219/, но требует время для настройки и установки WinDbg.
За MiniDumper спасибо. Может пригодиться для группового анализа. Но по какой-то причине в вывод не включили символьную строку формата FAILURE_BUCKET_ID: X64_0x24_Ntfs!NtfsAcquireExclusiveFcb+73 — часто, это самый лучший запрос для быстрого поиска аналогичной проблемы.
simplix
Первую ссылку видел, однако это просто вывод отладчика, без полезной выжимки для точного определения проблемы. Утилиту по второй ссылке постараюсь посмотреть в работе, и если вы ею пользовались, будет интересно услышать ваше мнение, в чём она хороша или в чём лучше, чем MiniDumper.
И очень хотелось бы увидеть пример дампа, в котором FAILURE_BUCKET_ID даёт больше пользы, чем информация MiniDumper, ведь он уже анализирует строку BUCKET_ID и показывает модуль из неё, если считает эту информацию полезной.
Andrey Dmitriev
Добрый день.
Утилиту от sysnative раньше (лет 5 назад) использовал для поддержки домашних пользователей с неизвестной конфигурацией и набором ПО. Основное преимущество — наличие своей базы драйверов и статистики BSOD. Показывались даты, версии и названия ПО. Давались рекомендации при наличии версии драйвера, по которым уже регистрировались BSOD. Остальной вывод стандартный в разных вариантах. Сейчас не использую. В корп среде не актуально — есть другие инструменты контроля обновлений.
Пример с FAILURE_BUCKET_ID вспомнился следующий — пару лет назад была массовая проблема с Cisco AnyConnect — в большинстве случаев BSOD возникал при выходе из спящего режима на ноутах. Причина была в совместимости версии приложения с версией драйвера Wi-Fi модуля Intel. К удивлению, даже сохранился пример дампа:
Полный вывод https://paste.ubuntu.com/p/YGZtk36bpJ/ содержит строки
Поиском по ‘X64_0xC5_2_nt!ExDeferredFreePool+100’ легко находятся обсуждения сетевых проблем связанных с Wi-Fi и VPN клиентами. «Pool_Corruption» при этом не информативно. Драйвер касперского, в данном случае, ни при чем.
FAILURE_BUCKET_ID полезен, например, когда возможной причиной указывается какой-то системный процесс (svchost.exe, ntoskrnl и т.п.). Помогает найти максимально похожие случаи.
simplix
Добавил вывод FAILURE_BUCKET_ID как он есть.
Vadim Sterkin
Андрей, спасибо за ссылки. Первая не попадалась, про вторую знаю, но она не слишком удобна для обычных пользователей / быстрого анализа на чужом ПК.
Автор утилиты читает комментарии, ответит по возможности.
Kesantielu Dasefern
А что делать, если дамп просто не создается при BSOD? 10 Вылетает при загрузке с CRITICAL_PROCESS_DIED, ни логов, ни дампов не обнаруживается.
Vadim Sterkin
Начните отсюда, там же и продолжайте.
urix
Это далеко не так.
У нас тоже прокси, и я могу вам привести примеры софта, который не умеет считывать настройки прокси из IE.
Алексей
Подтверждаю !!!
Евгений Боянов
Наверное, имеет смысл добавить примечание о том, что Raw-стек имеет меньшую достоверность, чем обычный стек (поскольку может содержать не относящиеся к сбою фрагменты предыдущих цепочек вызовов), но во многих случаях оказывается полезен (когда обычный стек неполон или повреждён).
Vadim Sterkin
Добавил