Содержание
- Установка Debugging Tools for Windows
- Установка Debugging Tools for Windows при помощи web-инсталлятора
- Установка Debugging Tools for Windows с ISO-образа Windows SDK
- Дополнительные сведения
- Состав Debugging Tools for Windows
- Русские Блоги
- Начало работы с Windbg Debugging Tool для Windows
- предисловие
- Во-первых, скачать
- Таблица символов в Windows отладки
- Начало работы с отладкой в пользовательском режиме
- Debugging tools for windows как пользоваться
- Анализ аварийных дампов Windows
- Содержание
- Анализ аварийного дампа утилитой BlueScreenView
- Анализ аварийного дампа отладчиком WinDbg
- Установка Debugging Tools for Windows (WinDbg)
- Настройка отладочных символов
- Анализ аварийного дампа
- Получение информации о проблемном драйвере
- Аппаратные причины возникновения критических ошибок
- Диагностика неисправностей диска
- Диагностика неисправностей памяти
- Настройка параметров сохранения аварийного дампа
- Анализ дампа памяти в Windows при BSOD с помощью WinDBG
- Типы аварийных дампов памяти Windows
- Как включить создание дампа памяти в Windows?
- Установка WinDBG в Windows
- Настройка сервера отладочных символов в WinDBG
- Анализ аварийного дампа памяти в WinDBG
Debugging Tools for Windows обновляются и выкладываются в публичный доступ достаточно часто и процесс этот никак не зависит от выпуска операционных систем. Поэтому, периодически проверяйте наличие новых версий.
Давайте теперь посмотрим, что же, в частности, позволяют нам средства Debugging Tools for Microsoft Windows:
Доступны следующие версии Debugging Tools for Windows: 32-bit x86, Intel Itanium, 64-bit x64. Нам потребуются две из них: x86 либо x64.
Доступны несколько способов установки Debugging Tools for Windows, в данной же статье мы будем рассматривать лишь основные из них:
Остается неясен еще во какой момент, зачем мне инсталлировать отладочный инструментарий на компьютер? Зачастую ведь сталкиваешься с ситуацией, когда вмешательство в рабочую среду крайне нежелательно! И уж тем более что инсталляция нового продукта, то есть внесение изменений в реестр/файлы системы, может быть совершенно недопустима. Примерами могут служить критически-важные сервера. Почему бы разработчикам не продумать вариант с портабельными (portable) версиями приложений, не требующих установки?
От версии к версии процесс установки пакета Debugging Tools for Windows претерпевает некоторые изменения. Давайте теперь перейдем непосредственно к процессу установки и рассмотрим способы, которыми можно установить инструментарий.
Переходим на страницу Архив Windows SDK и находим раздел под названием Windows 10 и ниже пункт «Windows 10 SDK (10586) и эмулятор устройства с Windows 10 Mobile (Майкрософт) (версия 10586.11)».
Зачастую, при выборе всех без исключения компонентов пакета, в процессе установки могут возникнуть ошибки. В этом случае рекомендуется устанавливать компоненты выборочно, минимально необходимый набор.
После завершения инсталляции Debugging Tools for Windows расположение файлов отладки при данном методе инсталляции у нас будет следующим:
Огромным плюсом данного способа установки Debigging Tools for Windows является установка версий отладочных средств сразу всех архитектур.
Как было выяснено, предыдущий метод установки при помощи веб-инсталлятора достаточно капризен и зачастую завершается ошибкой. На чистых системах устанавливается без проблем, однако на достаточно уже нагруженных возникают многочисленные проблемы. Если у Вас именно такой случай, то воспользуйтесь данным методом.
При работе с сайтом msdn.microsoft.com советую воспользоваться браузером Internet Explorer, поскольку были замечены случаи неработоспособности конкурирующих продуктов!
Далее у нас имеется выбор между тремя вариантами образа:
Имя | Назначение |
---|---|
GRMSDK_EN_DVD.iso | Образ SDK для систем с архитектурой x86 (32-битных). |
GRMSDKIAI_EN_DVD.iso | Образ SDK для систем с архитектурой ia64. |
GRMSDKX_EN_DVD.iso | Образ SDK для систем с архитектурой x64 (64-битных). |
Уже затем двойным щелчком активирую автозагрузку и запускаю инсталляцию Windows SDK:
Когда подходит очередь выбирать устанавливаемые компоненты из списка, то отключаем абсолютно все опции кроме помеченных на скриншоте. Это поможет избежать ненужных нам сейчас ошибок.
Все именно так, на скриншоте отмечено две опции: «Windows Performance Toolkit» и «Debugging Tools for Windows». Выбирайте обе, потому как Windows Performance Toolkit Вам непременно пригодится в работе! Далее, после нажатия кнопки «Next» инсталляция продолжается в обычном режиме. И в конце вы увидите надпись «Installation Complete».
По окончании инсталляции рабочие директории комплекта Debugging Tools for Windows будут следующими:
На этом установку Debugging Tools for Windows можно считать оконченной.
После открытия образа нам необходимо пройти в каталог «Setup», находящийся в корне и далее выбрать одну из директорий:
По окончании инсталляции рабочие директории комплекта Debugging Tools for Windows будут следующими:
На этом установку Debugging Tools for Windows можно считать выполненной.
Дополнительные сведения
Не знаю с чем это связано, быть может с моей невнимательностью, но после инсталляции Отладочных средств для Windows, инсталлятор не прописывает в системную переменную пути Path путь к каталогу с отладчиком. Это накладывает определенные ограничения на запуск различных отладочных задач напрямую из консоли. Поэтому, в случае отсутствия пути, я самостоятельно прописываю в окне Переменные среды путь к отладочным средствам:
* В вашем случае пути могут отличаться как по причине использования ОС другой разрядности, так и по причине использования SDK другой версии.
Утилиты пакета Debugging Tools for Windows могут работать в качестве переносных приложений, достаточно просто скопировать с рабочей системы каталог Microsoft Windows Performance Toolkit и использовать его в качестве портабельной версии на рабочем сервере. Но не забывайте учитывать разрядность системы!! Если Вы даже произвели полную инсталляцию пакета на критически-важную систему, то работать можно начинать прямо после инсталляции, перезагрузка не требуется.
И теперь напоследок приведем состав Debugging Tools for Windows:
Источник
Русские Блоги
предисловие
Во-первых, скачать
Windbg, предоставленный официальным веб-сайтом Microsoft, является версией Windows 10, которую нельзя использовать под Win 7. Чтобы использовать Windbg под Win7, вам нужно скачать его через Windows SDK.//www.microsoft.com/downloads/en/details.aspx?FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b&displaylang=en
Если вас не интересует другое содержимое Windows SDK, вы можете просто проверить Windbg.
После завершения установки вы можете найти Windbg в строке меню Windows Пуск.
Установка может быть неудачной. Если она не удалась, вы можете перейти в Панель управления Программы Программы и компоненты » Microsoft Visual C++ 2010 Redistributable Удалите, установка прошла успешно.
Перед использованием необходимо выполнить следующие задачи
Для режима отладки ядра, пожалуйста, обратитесь к:
Кроме того, вам необходимо сделать следующее:
Таблица символов в Windows отладки
Это так называемые символы. Например, простой файл символов Myprogram.pdb может содержать сотни таблиц символов. Вообще говоря, компании-разработчики выпускают две версии файла символов: одна представляет собой полный файл символов, содержащий все публичные символы и частные символы, а другая представляет собой упрощенную версию файла, которая содержит только публичные символы.
При отладке вы должны знать, что отладчик может получить файлы символов, которые соответствуют цели отладки. Для файлов оперативной отладки и аварийного дампа при сбое требуются символы.
Суффикс Windows pdb сохраняет символы, а vs сохраняет все символы в файлах pdb.
Настройка символов является сложной задачей, особенно для отладки в режиме ядра. Часто требуется, чтобы вы знали все названия и выпуски ваших компьютерных продуктов. Отладчик должен иметь возможность найти файл символов каждого продукта.
Официальный сайт Microsoft более эвфемичен и не прост в управлении. Вот простой метод настройки.
Это предложение сообщает WinDbg, что мой файл символов хранится в папке c: mysymbol. На самом деле в нем ничего нет, даже эта папка не существует, но это не имеет значения. Если система не может найти ее, она создаст ее и загрузит по указанному выше URL-адресу. Перейти, чтобы помочь вам загрузить файл символов в нем.
После перезагрузки компьютера, если вы найдете дополнительный файл mysymbol на диске C и откроете exe-файл с помощью windbg, вы увидите Symbol search path is: SRV*c:mysymbol* http://msdl.microsoft.com/download/symbolsПодсказка указывает, что конфигурация прошла успешно.
Примечание: После выполнения этого шага, если вы снова запустите VS, VS прочитает переменную среды _NT_SYMBOL_PATH и загрузит и прочитает из нее символ, что приведет к очень медленному запуску и отладке VS. Рекомендуется изменить _NT_SYMBOL_PATH на другое имя, когда Windbg не используется.
Начало работы с отладкой в пользовательском режиме
Отладка вашей собственной программы
Предположим, вы написали следующую программу
(1) Используйте Visual studio 2015 для создания Helloworld.exe в x64 и режиме отладки, а также Helloworld.pdb.
(2) Скопируйте Helloworld.pdb в локальную папку символов (обратитесь к:Таблица символов конфигурации)。
(3) Откройте Helloworld.exe и Helloworld.cpp с помощью windbg.
Затем вы можете ввести команды отладки, например:
Средства установки точки останова в главном модуле HelloWorld
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
00000001`3f2a16d3 f7bd28010000 idiv eax,dword ptr [rbp+128h] ss:00000000`0014f648=00000000
Это означает, что произошла ошибка деления на 0.
Будет сгруппирован анализ ошибок.
Обязательным условием для этого раздела является настройка символа (ссылка:Таблица символов конфигурации)。
Найти все с WinMain согласование symbols 。
Выше две команды могут войти 0 Хороший прогресс и просмотр трассировки стека
Источник
Администратор
Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1
В один безрадостный день (ночь) вы убеждаетесь, что бунт машин – не выдумка фантастов. Ваш комп перезагрузился. Сам. Без вашего желания, и, что наиболее поразительно, не спросив разрешения! Потом это случилось еще раз. Потом еще. Если вы – не Большой Босс, комп нужен вам для работы (полноценного отдыха), и морока с сервис-центром не входит в ваши планы, вы начинаете искать причину. И в еще один (прекрасный) день вам говорят, что перезагружаясь, комп пытается спастись от краха системы, и если вы эту перезагрузку снимете, то можно узнать причину грозящей беды.
Рецепт прост, как все гениальное: правой кнопкой мыши кликаем по значку Мой компьютер, выбираем Свойства, вкладка Дополнительно, там кнопка Параметры в разделе Загрузка и восстановление. И, наконец, в появившемся окошке, в разделе Отказ системы снять галочку напротив Выполнить автоматическую перезагрузку.
И вот с этого момента ваша зубная боль (перезагрузки) превращается в головную. Потому что с какого-то момента при очередном отказе системы появляется знаменитый Синий Экран (BSOD), на котором написаны цифры, тот самый код, в котором хранится та самая страшная тайна.
Пометавшись по Сети, получив на разных форумах рекомендации от замены всего железа и переустановки системы до. других (наверное, умных – потому что совершенно непонятных) и добравшись до сайта поддержки Майкрософт, вы, возможно, получите по коду ошибки решение вашей проблемы. Но чаще – получите вы совершенно непереводимую статью на английском языке. Но все-таки там периодически мелькает одно понятное слово – drivers.
Да, стоит упомянуть, что во время метаний по сайту Майкрософт вы пару раз наткнетесь на слово ОТЛАДЧИК (debugger). Но потом вам объяснят, что вещь, оно, может, и полезная, но бестолковая. Потому что результат работы отладчика надо посылать в Майкрософт и ждать от них ЦУ.
И вот свершилось! И от отладчика может быть польза.
Итак, определяем «виновный» драйвер:
В моем случае это оказался драйвер USB-мыши (Razer Habu).
Источник
Анализ аварийных дампов Windows
В случае критической ошибки система останавливает свою работу, отображает синий экран смерти (BSOD), информация об ошибке и содержимое памяти сохраняется в файле подкачки. При последующей загрузке системы, на основе сохраненных данных, создается аварийный дамп c отладочной информацией. В системном журнале событий создается запись о критической ошибке.
Если критическая ошибка возникла на ранней стадии загрузки системы или в результате ошибки произошел отказ дисковой подсистемы, аварийный дамп сохранен не будет.
Аварийный дамп может быть проанализирован с помощью утилиты BlueScreenView или системного отладчика WinDbg (Debugging Tools for Windows).
Содержание
Анализ аварийного дампа утилитой BlueScreenView
Простейшим инструментом для анализа аварийных дампов является утилита BlueScreenView от NirSoft.
BlueScreenView сканирует папку с минидампами и отображает информацию по найденным отказам.
По каждому отказу отображается дата, данные об ошибке и драйвер, который предположительно вызвал отказ.
В нижней части окна отображается список загруженных в системе драйверов. Модули, к которым выполнялось обращение в момент отказа, выделены цветом, на них следует обратить особое внимание, они могут быть причиной отказа.
По двойному клику отображается дополнительная информация.
Анализ аварийного дампа отладчиком WinDbg
С помощью WinDbg из аварийного дампа можно вытащить более детальную информацию, включая расшифровку стека.
Установка Debugging Tools for Windows (WinDbg)
Microsoft распространяет WinDbg только в составе SDK, загрузить веб-установщик можно на странице загрузки.
Для анализа аварийных дампов установка SDK не требуется. Скачать Debugging Tools for Windows (WinDbg) отдельным пакетом можно здесь.
После установки, корректируем ярлык для запуска WinDbg. В свойствах ярлыка, устанавливаем флажок запуска от имени администратора. Также, в качестве рабочей папки, задаем: %SystemRoot%Minidump.
Настройка отладочных символов
Отладочные символы содержат символические имена функций из исходного кода. Они необходимы для расшифровки и интерпретации аварийного дампа.
При первом запуске WinDbg, необходимо указать путь к отладочным символам, для этого открываем меню File, Symbol File Path, или используем комбинацию Ctrl+S.
Следующей строкой включаем загрузку отладочных символов из сети, задаем локальный путь для сохранения файлов и адрес для загрузки из интернета:
Анализ аварийного дампа
В меню выбираем File, Open Crash Dump, или нажимаем Ctrl+D.
Указываем путь к дампу %SystemRoot%MEMORY.DMP или %SystemRoot%Minidumpфайл.dmp.
Загрузка отладочных символов из интернета может занять некоторое время.
Для получения детальной информации выполняем команду:
Дебаггер сам вам предложит ее выполнить, достаточно навести указатель мыши на ссылку и кликнуть.
В результате получаем следующий вывод:
Получение информации о проблемном драйвере
Если удалось обнаружить драйвер, в котором возникла ошибка, имя драйвера будет отображено в полях MODULE_NAME и IMAGE_NAME.
Чтобы получить путь к файлу и прочую информацию, щелкаем по ссылке на модуль:
Если полный путь к драйверу не указан, по умолчанию используется папка %SystemRoot%system32drivers.
Находим указанный файл, и изучаем его свойства.
Обновляем проблемный драйвер.
Аппаратные причины возникновения критических ошибок
Источником критических ошибок нередко бывают неисправности в дисковой подсистеме, или в подсистеме памяти.
Диагностика неисправностей диска
В случае ошибок дисковой подсистемы, аварийный дамп может не сохраняться.
Чтобы исключить проблемы с диском, проверяем системный журнал событий на наличие ошибок чтения и записи на диск.
Проверяем параметры S.M.A.R.T жесткого диска, получить их можно, например, с помощью программы SpeedFan.
Особое внимание обращаем на параметры: «Current Pending Sector Count» и «Uncorrectable Sector Count», ненулевые значения этих параметров сигнализируют о неисправности диска.
Ненулевое значение параметра: «UltraDMA CRC Error Count», сигнализирует о проблеме с SATA-кабелем.
Подробнее о параметрах S.M.A.R.T. читаем в статье Википедии.
Диагностика неисправностей памяти
Проблемы с памятью нередко могут стать причиной самых разнообразных глюков, включая различные синие экраны, зависания, аварийное завершение программ, повреждение реестра, повреждение файловой системы и данных.
Выявить проблемы с памятью можно с помощью утилиты Memtest86+.
Загружаем образ по ссылке, записываем на диск, загружаемся с диска, запускается тест.
Начиная с Windows Vista, в системе имеется свой тест памяти. Для его запуска нажимаем «Пуск», в строке поиска набираем «памяти«, выбираем «Средство диагностики памяти Windows».
Проблемы с памятью в некоторых случаях могут быть устранены обновлением BIOS.
Настройка параметров сохранения аварийного дампа
Для изменения параметров сохранения аварийного дампа нажимаем кнопку «Пуск», щелкаем на «Компьютер» правой кнопкой мыши, в контекстном меню выбираем «Свойства». В окне «Система» слева выбираем «Дополнительные параметры системы», в группе «Загрузка и восстановление» нажимаем кнопку «Параметры».
Источник
Анализ дампа памяти в Windows при BSOD с помощью WinDBG
В момент критического сбоя операционная система Windows прерывает работу и показывает синий экран смерти (BSOD). Содержимое оперативной памяти и вся информация о возникшей ошибке записывается в файл подкачки. При следующей загрузке Windows создается аварийный дамп c отладочной информацией на основе сохраненных данных. В системном журнале событий создается запись о критической ошибке.
Типы аварийных дампов памяти Windows
На примере актуальной операционной системы Windows 10 (Windows Server 2016) рассмотрим основные типы дампов памяти, которые может создавать система:
Как включить создание дампа памяти в Windows?
С помощью Win+Pause откройте окно с параметрами системы, выберите «Дополнительные параметры системы» (Advanced system settings). Во вкладке «Дополнительно» (Advanced), раздел «Загрузка и восстановление» (Startup and Recovery) нажмите кнопку «Параметры» (Settings). В открывшемся окне настройте действия при отказе системы. Поставьте галку в чек-боксе «Записать события в системный журнал» (Write an event to the system log), выберите тип дампа, который должен создаваться при сбое системы. Если в чек-боксе «Заменять существующий файл дампа» (Overwrite any existing file) поставить галку, то файл будет перезаписываться при каждом сбое. Лучше эту галку снять, тогда у вас будет больше информации для анализа. Отключите также автоматическую перезагрузку системы (Automatically restart).
В большинстве случаев для анализа причины BSOD вам будет достаточно малого дампа памяти.
Теперь при возникновении BSOD вы сможете проанализировать файл дампа и найти причину сбоев. Мини дамп по умолчанию сохраняется в папке %systemroot%minidump. Для анализа файла дампа рекомендую воспользоваться программой WinDBG (Microsoft Kernel Debugger).
Установка WinDBG в Windows
Утилита WinDBG входит в «Пакет SDK для Windows 10» (Windows 10 SDK). Скачать можно здесь.
Файл называется winsdksetup.exe, размер 1,3 МБ.
Запустите установку и выберите, что именно нужно сделать – установить пакет на этот компьютер или загрузить для установки на другие компьютеры. Установим пакет на локальный компьютер.
Можете установить весь пакет, но для установки только инструмента отладки выберите Debugging Tools for Windows.
После установки ярлыки WinDBG можно найти в стартовом меню.
Настройка сервера отладочных символов в WinDBG
Отладочные символы (debug-символы или symbol files) – это блоки данных, генерируемые в процессе компиляции программы совместно с исполняемым файлом. В таких блоках данных содержится информация о именах переменных, вызываемых функциях, библиотеках и т.д. Эти данные не нужны при выполнении программы, но полезные при ее отладке. Компоненты Microsoft компилируются с символами, распространяемыми через Microsoft Symbol Server.
Настройте WinDBG на использование Microsoft Symbol Server:
WinDBG произведет поиск символов в локальной папке и, если не обнаружит в ней необходимых символов, то самостоятельно загрузит символы с указанного сайта. Если вы хотите добавить собственную папку с символами, то можно сделать это так:
Если подключение к интернету отсутствует, то загрузите предварительно пакет символов с ресурса Windows Symbol Packages.
Анализ аварийного дампа памяти в WinDBG
Отладчик WinDBG открывает файл дампа и загружает необходимые символы для отладки из локальной папки или из интернета. Во время этого процесса вы не можете использовать WinDBG. Внизу окна (в командной строке отладчика) появляется надпись Debugee not connected.
Команды вводятся в командную строку, расположенную внизу окна.
Самое главное, на что нужно обратить внимание – это код ошибки, который всегда указывается в шестнадцатеричном значении и имеет вид 0xXXXXXXXX (указываются в одном из вариантов — STOP: 0x0000007B, 02.07.2019 0008F, 0x8F). В нашем примере код ошибки 0х139.
*****************************************************************************
* *
* Bugcheck Analysis *
* *
*****************************************************************************
Символическое имя STOP-ошибки (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)
Описание ошибки (Компонент ядра повредил критическую структуру данных. Это повреждение потенциально может позволить злоумышленнику получить контроль над этой машиной):
A kernel component has corrupted a critical data structure. The corruption could potentially allow a malicious user to gain control of this machine.
Аргументы ошибки:
Arguments:
Arg1: 0000000000000003, A LIST_ENTRY has been corrupted (i.e. double remove).
Arg2: ffffd0003a20d5d0, Address of the trap frame for the exception that caused the bugcheck
Arg3: ffffd0003a20d528, Address of the exception record for the exception that caused the bugcheck
Arg4: 0000000000000000, Reserved
Debugging Details:
——————
Счетчик показывает сколько раз система упала с аналогичной ошибкой:
Основная категория текущего сбоя:
Код STOP-ошибки в сокращенном формате:
Процесс, во время исполнения которого произошел сбой (не обязательно причина ошибки, просто в момент сбоя в памяти выполнялся этот процесс):
Последний вызов в стеке:
LAST_CONTROL_TRANSFER: from fffff8040117d6a9 to fffff8040116b0a0
Стек вызовов в момент сбоя:
Участок кода, где возникла ошибка:
FOLLOWUP_IP:
nt!KiFastFailDispatch+d0
fffff804`0117da50 c644242000 mov byte ptr [rsp+20h],0
FAULT_INSTR_CODE: 202444c6
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: nt!KiFastFailDispatch+d0
FOLLOWUP_NAME: MachineOwner
Имя модуля в таблице объектов ядра. Если анализатору удалось обнаружить проблемный драйвер, имя отображается в полях MODULE_NAME и IMAGE_NAME:
MODULE_NAME: nt
IMAGE_NAME: ntkrnlmp.exe
Если кликнете по ссылке модуля (nt), то увидите подробную информацию о пути и других свойствах модуля. Находите указанный файл, и изучаете его свойства.
1: kd> lmvm nt
Browse full module list
Loaded symbol image file: ntkrnlmp.exe
Mapped memory image file: C:ProgramDatadbgsymntoskrnl.exe5A9A2147787000ntoskrnl.exe
Image path: ntkrnlmp.exe
Image name: ntkrnlmp.exe
InternalName: ntkrnlmp.exe
OriginalFilename: ntkrnlmp.exe
ProductVersion: 6.3.9600.18946
FileVersion: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)
В приведенном примере анализ указал на файл ядра ntkrnlmp.exe. Когда анализ дампа памяти указывает на системный драйвер (например, win32k.sys) или файл ядра (как в нашем примере ntkrnlmp.exe), вероятнее всего данный файл не является причиной проблемы. Очень часто оказывается, что проблема кроется в драйвере устройства, настройках BIOS или в неисправности оборудования.
Если вы увидели, что BSOD возник из-за стороннего драйвера, его имя будет указано в значениях MODULE_NAME и IMAGE_NAME.
Image path: SystemRootsystem32driverscmudaxp.sys
Image name: cmudaxp.sys
Откройте свойсва файла драйвера и проверьте его версию. В большинстве случаев проблема с драйверами решается их обнвовлением.
Источник
Содержание
- Анализ аварийных дампов Windows
- Содержание
- Анализ аварийного дампа утилитой BlueScreenView
- Анализ аварийного дампа отладчиком WinDbg
- Установка Debugging Tools for Windows (WinDbg)
- Настройка отладочных символов
- Анализ аварийного дампа
- Получение информации о проблемном драйвере
- Аппаратные причины возникновения критических ошибок
- Диагностика неисправностей диска
- Диагностика неисправностей памяти
- Настройка параметров сохранения аварийного дампа
- Установка Debugging Tools for Windows
- Установка Debugging Tools for Windows при помощи web-инсталлятора
- Установка Debugging Tools for Windows с ISO-образа Windows SDK
- Установка Debugging Tools for Windows через .msi файл
- Дополнительные сведения
- Состав Debugging Tools for Windows
Анализ аварийных дампов Windows
В случае критической ошибки система останавливает свою работу, отображает синий экран смерти (BSOD), информация об ошибке и содержимое памяти сохраняется в файле подкачки. При последующей загрузке системы, на основе сохраненных данных, создается аварийный дамп c отладочной информацией. В системном журнале событий создается запись о критической ошибке.
Если критическая ошибка возникла на ранней стадии загрузки системы или в результате ошибки произошел отказ дисковой подсистемы, аварийный дамп сохранен не будет.
Аварийный дамп может быть проанализирован с помощью утилиты BlueScreenView или системного отладчика WinDbg (Debugging Tools for Windows).
Содержание
Анализ аварийного дампа утилитой BlueScreenView
Простейшим инструментом для анализа аварийных дампов является утилита BlueScreenView от NirSoft.
BlueScreenView сканирует папку с минидампами и отображает информацию по найденным отказам.
По каждому отказу отображается дата, данные об ошибке и драйвер, который предположительно вызвал отказ.
В нижней части окна отображается список загруженных в системе драйверов. Модули, к которым выполнялось обращение в момент отказа, выделены цветом, на них следует обратить особое внимание, они могут быть причиной отказа.
По двойному клику отображается дополнительная информация.
Анализ аварийного дампа отладчиком WinDbg
С помощью WinDbg из аварийного дампа можно вытащить более детальную информацию, включая расшифровку стека.
Установка Debugging Tools for Windows (WinDbg)
Microsoft распространяет WinDbg только в составе SDK, загрузить веб-установщик можно на странице загрузки.
Для анализа аварийных дампов установка SDK не требуется. Скачать Debugging Tools for Windows (WinDbg) отдельным пакетом можно здесь.
После установки, корректируем ярлык для запуска WinDbg. В свойствах ярлыка, устанавливаем флажок запуска от имени администратора. Также, в качестве рабочей папки, задаем: %SystemRoot%Minidump.
Настройка отладочных символов
Отладочные символы содержат символические имена функций из исходного кода. Они необходимы для расшифровки и интерпретации аварийного дампа.
При первом запуске WinDbg, необходимо указать путь к отладочным символам, для этого открываем меню File, Symbol File Path, или используем комбинацию Ctrl+S.
Следующей строкой включаем загрузку отладочных символов из сети, задаем локальный путь для сохранения файлов и адрес для загрузки из интернета:
Анализ аварийного дампа
В меню выбираем File, Open Crash Dump, или нажимаем Ctrl+D.
Указываем путь к дампу %SystemRoot%MEMORY.DMP или %SystemRoot%Minidumpфайл.dmp.
Загрузка отладочных символов из интернета может занять некоторое время.
Для получения детальной информации выполняем команду:
Дебаггер сам вам предложит ее выполнить, достаточно навести указатель мыши на ссылку и кликнуть.
В результате получаем следующий вывод:
Получение информации о проблемном драйвере
Если удалось обнаружить драйвер, в котором возникла ошибка, имя драйвера будет отображено в полях MODULE_NAME и IMAGE_NAME.
Чтобы получить путь к файлу и прочую информацию, щелкаем по ссылке на модуль:
Если полный путь к драйверу не указан, по умолчанию используется папка %SystemRoot%system32drivers.
Находим указанный файл, и изучаем его свойства.
Обновляем проблемный драйвер.
Аппаратные причины возникновения критических ошибок
Источником критических ошибок нередко бывают неисправности в дисковой подсистеме, или в подсистеме памяти.
Диагностика неисправностей диска
В случае ошибок дисковой подсистемы, аварийный дамп может не сохраняться.
Чтобы исключить проблемы с диском, проверяем системный журнал событий на наличие ошибок чтения и записи на диск.
Проверяем параметры S.M.A.R.T жесткого диска, получить их можно, например, с помощью программы SpeedFan.
Особое внимание обращаем на параметры: «Current Pending Sector Count» и «Uncorrectable Sector Count», ненулевые значения этих параметров сигнализируют о неисправности диска.
Ненулевое значение параметра: «UltraDMA CRC Error Count», сигнализирует о проблеме с SATA-кабелем.
Подробнее о параметрах S.M.A.R.T. читаем в статье Википедии.
Диагностика неисправностей памяти
Проблемы с памятью нередко могут стать причиной самых разнообразных глюков, включая различные синие экраны, зависания, аварийное завершение программ, повреждение реестра, повреждение файловой системы и данных.
Выявить проблемы с памятью можно с помощью утилиты Memtest86+.
Загружаем образ по ссылке, записываем на диск, загружаемся с диска, запускается тест.
Начиная с Windows Vista, в системе имеется свой тест памяти. Для его запуска нажимаем «Пуск», в строке поиска набираем «памяти«, выбираем «Средство диагностики памяти Windows».
Проблемы с памятью в некоторых случаях могут быть устранены обновлением BIOS.
Настройка параметров сохранения аварийного дампа
Для изменения параметров сохранения аварийного дампа нажимаем кнопку «Пуск», щелкаем на «Компьютер» правой кнопкой мыши, в контекстном меню выбираем «Свойства». В окне «Система» слева выбираем «Дополнительные параметры системы», в группе «Загрузка и восстановление» нажимаем кнопку «Параметры».
Debugging Tools for Windows — Инструменты отладки кода операционных систем Windows. Представляют собой набор свободно распространяемых программ от Microsoft, предназначенных для отладки кода пользовательского режима и режима ядра: приложений, драйверов, служб, модулей ядра. В состав инструментария входят отладчики консольного и GUI- режимов, утилиты для работы с символами, файлами, процессами, утилиты для обеспечения удаленной отладки. Инструментарий содержит в себе утилиты, с помощью которых можно находить причины сбоев в различных компонентах системы. Debugging Tools for Windows с определенного момента недоступны для скачивания в форме автономного дистрибутива и входят в состав Windows SDK (Windows Software Development Kit). Набор инструментальных средств Windows SDK, в свою очередь, доступен в виде части программы подписки MSDN или же может быть свободно загружен в качестве отдельного дистрибутива с сайта msdn.microsoft.com. По заявлению разработчиков, последняя и самая актуальная версия Debugging Tools for Windows содержится именно в Windows SDK.
Debugging Tools for Windows обновляются и выкладываются в публичный доступ достаточно часто и процесс этот никак не зависит от выпуска операционных систем. Поэтому, периодически проверяйте наличие новых версий.
Давайте теперь посмотрим, что же, в частности, позволяют нам средства Debugging Tools for Microsoft Windows:
- Отлаживать локальные приложения, службы (сервисы), драйвера и ядро;
- Отлаживать по сети удаленные приложения, службы (сервисы), драйвера и ядро;
- Отлаживать работающие приложения в режиме реального времени;
- Анализировать файлы дампов памяти приложений, ядра и системы в целом;
- Работать с системами на базе архитектур x86/x64/Itanium;
- Отлаживать программы пользовательского режима и режима ядра;
Доступны следующие версии Debugging Tools for Windows: 32-bit x86, Intel Itanium, 64-bit x64. Нам потребуются две из них: x86 либо x64.
Доступны несколько способов установки Debugging Tools for Windows, в данной же статье мы будем рассматривать лишь основные из них:
- Установка посредством web-инсталлятора.
- Установка Debugging Tools for Windows с ISO-образа Windows SDK.
- Установка Debugging Tools for Windows непосредственно из пакетов dbg_amd64.msi / dbg_x86.msi .
Остается неясен еще во какой момент, зачем мне инсталлировать отладочный инструментарий на компьютер? Зачастую ведь сталкиваешься с ситуацией, когда вмешательство в рабочую среду крайне нежелательно! И уж тем более что инсталляция нового продукта, то есть внесение изменений в реестр/файлы системы, может быть совершенно недопустима. Примерами могут служить критически-важные сервера. Почему бы разработчикам не продумать вариант с портабельными (portable) версиями приложений, не требующих установки?
От версии к версии процесс установки пакета Debugging Tools for Windows претерпевает некоторые изменения. Давайте теперь перейдем непосредственно к процессу установки и рассмотрим способы, которыми можно установить инструментарий.
Переходим на страницу Архив Windows SDK и находим раздел под названием Windows 10 и ниже пункт «Windows 10 SDK (10586) и эмулятор устройства с Windows 10 Mobile (Майкрософт) (версия 10586.11)».
Щелкаем по пункту УСТАНОВИТЬ ПАКЕТ SDK . После щелчка скачиваем и запускаем файл sdksetup.exe , который и инициирует процесс онлайн-установки Windows SDK. На начальном этапе инсталятор проверит наличие в системе установленного пакета .NET Framework последней версии (в данный момент это 4.5). Если пакет отсутствует, что будет предложена установка и по окончании выполнена перезагрузка станции. Сразу после перезагрузки, на этапе авторизации пользователя, стартует процесс инсталляции уже непосредственно Windows SDK.
Зачастую, при выборе всех без исключения компонентов пакета, в процессе установки могут возникнуть ошибки. В этом случае рекомендуется устанавливать компоненты выборочно, минимально необходимый набор.
После завершения инсталляции Debugging Tools for Windows расположение файлов отладки при данном методе инсталляции у нас будет следующим:
- 64-битные версии: C:Program Files (x86)Windows Kitsx.xDebuggersx64
- 32-битные версии: C:Program Files (x86)Windows Kitsx.xDebuggersx86
* где x.x — определенная версия комплекта разработки;
Заметили, что версии 8 и выше, пути инсталляции заметно отличаются от классических для всех предыдущих версий средств отладки?
Огромным плюсом данного способа установки Debigging Tools for Windows является установка версий отладочных средств сразу всех архитектур.
Данный метод подразумевает установку Debugging Tools for Windows с использованием полного инсталляционного образа Windows SDK (Software Developers Kit). До определенного времени, скачать образ ISO для соответствующей системы можно было на странице Архив Windows SDK. Однако, в данный момент, получить ISO-образ SDK можно через запуск web-инсталлятора sdksetup.exe , и выбора пункта Download the Windows Software Development Kit в стартовом окне инсталлятора:
Как было выяснено, предыдущий метод установки при помощи веб-инсталлятора достаточно капризен и зачастую завершается ошибкой. На чистых системах устанавливается без проблем, однако на достаточно уже нагруженных возникают многочисленные проблемы. Если у Вас именно такой случай, то воспользуйтесь данным методом.
Соответственно, на странице необходимо подобрать требуемый дистрибутив, для меня (да и думаю для многих) в данный момент это «Пакет Windows SDK для Windows 7 и .NET Framework 4» и чуть ниже нажать на ссылку «Получить ISO-образ DVD-диска».
При работе с сайтом msdn.microsoft.com советую воспользоваться браузером Internet Explorer, поскольку были замечены случаи неработоспособности конкурирующих продуктов!
Далее у нас имеется выбор между тремя вариантами образа:
Имя | Назначение |
---|---|
GRMSDK_EN_DVD.iso | Образ SDK для систем с архитектурой x86 (32-битных). |
GRMSDKIAI_EN_DVD.iso | Образ SDK для систем с архитектурой ia64. |
GRMSDKX_EN_DVD.iso | Образ SDK для систем с архитектурой x64 (64-битных). |
Соответственно, необходимо выбрать исключительно по необходимости. Обычно разрядность Debugging Tools for Windows совпадает с разрядностью системы. У меня исследуемые системы, в основном, 64-битные, поэтому я в большинстве случаев скачиваю образ для 64-битной системы GRMSDKX_EN_DVD.iso .
Затем, после скачивания образа, нам необходимо с имеющимся ISO-образом как-то работать. Традиционным способом является, конечно же, запись компакт-диска, но ведь это достаточно долгий и иногда затратный метод. Предлагаю воспользоваться бесплатными утилитами по созданию в системе виртуальных дисковых устройств. Лично я для этой цели предпочитаю пользоваться программой DEAMON Tools Lite. У кого-то могут быть и другие предпочтения, более прямые или легковесные утилиты, на вкус и цвет, как говорится.. После инсталляции DAEMON Tools Lite, я просто щелкаю два раза на файл образа GRMSDKX_EN_DVD.iso и в системе у меня появляется новый виртуальный компакт диск:
Уже затем двойным щелчком активирую автозагрузку и запускаю инсталляцию Windows SDK:
Когда подходит очередь выбирать устанавливаемые компоненты из списка, то отключаем абсолютно все опции кроме помеченных на скриншоте. Это поможет избежать ненужных нам сейчас ошибок.
Все именно так, на скриншоте отмечено две опции: «Windows Performance Toolkit» и «Debugging Tools for Windows». Выбирайте обе, потому как Windows Performance Toolkit Вам непременно пригодится в работе! Далее, после нажатия кнопки «Next» инсталляция продолжается в обычном режиме. И в конце вы увидите надпись «Installation Complete».
По окончании инсталляции рабочие директории комплекта Debugging Tools for Windows будут следующими:
- Для версии x86: C:Program Files (x86)Debugging Tools for Windows (x86)
- Для версии x64: C:Program FilesDebugging Tools for Windows (x64)
На этом установку Debugging Tools for Windows можно считать оконченной.
В случае возникновения проблем при инсталляции Debugging Tools for Windows двумя предыдущими способами, у нас в запасе остается еще один, самый надежный и проверенный временем, выручавший, так сказать, не раз. Когда-то, до интеграции в Windows SDK, Debugging Tools for Windows были доступны в виде отдельного инсталлятора .msi, который и сейчас можно найти, однако уже в недрах дистрибутива Windows SDK. Поскольку у нас на руках имеется уже ISO-образ Windows SDK, то мы можем не монтировать его в систему, а просто открыть при помощи всем уже хорошо знакомого архиватора WinRAR, ну или любого другого продукта, работающего с содержимым ISO-дисков.
После открытия образа нам необходимо пройти в каталог «Setup», находящийся в корне и далее выбрать одну из директорий:
- Для установки 64-битной версии: SetupWinSDKDebuggingTools_amd64 и распаковать из этого каталога файл dbg_amd64.msi .
- Для установка 32-битной версии: SetupWinSDKDebuggingTools и распаковать из этого каталога файл dbg_x86.msi .
Далее, запускаем распакованный только что .msi файл и стартуем установку Debugging Tools for Windows.
По окончании инсталляции рабочие директории комплекта Debugging Tools for Windows будут следующими:
- Для версии x86: C:Program Files (x86)Debugging Tools for Windows (x86)
- Для версии x64: C:Program FilesDebugging Tools for Windows (x64)
На этом установку Debugging Tools for Windows можно считать выполненной.
Дополнительные сведения
Не знаю с чем это связано, быть может с моей невнимательностью, но после инсталляции Отладочных средств для Windows, инсталлятор не прописывает в системную переменную пути Path путь к каталогу с отладчиком. Это накладывает определенные ограничения на запуск различных отладочных задач напрямую из консоли. Поэтому, в случае отсутствия пути, я самостоятельно прописываю в окне Переменные среды путь к отладочным средствам:
- C:Program Files (x86)Windows Kits10Debuggersx86
- C:Program Files (x86)Windows Kits10Debuggersx64
* В вашем случае пути могут отличаться как по причине использования ОС другой разрядности, так и по причине использования SDK другой версии.
Утилиты пакета Debugging Tools for Windows могут работать в качестве переносных приложений, достаточно просто скопировать с рабочей системы каталог Microsoft Windows Performance Toolkit и использовать его в качестве портабельной версии на рабочем сервере. Но не забывайте учитывать разрядность системы!! Если Вы даже произвели полную инсталляцию пакета на критически-важную систему, то работать можно начинать прямо после инсталляции, перезагрузка не требуется.
И теперь напоследок приведем состав Debugging Tools for Windows:
В момент критического сбоя операционная система Windows прерывает работу и показывает синий экран смерти (BSOD). Содержимое оперативной памяти и вся информация о возникшей ошибке записывается в файл подкачки. При следующей загрузке Windows создается аварийный дамп c отладочной информацией на основе сохраненных данных. В системном журнале событий создается запись о критической ошибке.
Внимание! Аварийный дамп не создается, если отказала дисковая подсистема или критическая ошибка возникла на начальной стадии загрузки Windows.
Содержание:
- Типы аварийных дампов памяти Windows
- Как включить создание дампа памяти в Windows?
- Установка WinDBG в Windows
- Настройка ассоциации .dmp файлов с WinDBG
- Настройка сервера отладочных символов в WinDBG
- Анализ аварийного дампа памяти в WinDBG
Типы аварийных дампов памяти Windows
На примере актуальной операционной системы Windows 10 (Windows Server 2016) рассмотрим основные типы дампов памяти, которые может создавать система:
- Мини дамп памяти (Small memory dump) (256 КБ). Этот тип файла включает минимальный объем информации. Он содержит только сообщение об ошибке BSOD, информацию о драйверах, процессах, которые были активны в момент сбоя, а также какой процесс или поток ядра вызвал сбой.
- Дамп памяти ядра (Kernel memory dump). Как правило, небольшой по размеру — одна треть объема физической памяти. Дамп памяти ядра является более подробным, чем мини дамп. Он содержит информацию о драйверах и программах в режиме ядра, включает память, выделенную ядру Windows и аппаратному уровню абстракции (HAL), а также память, выделенную драйверам и другим программам в режиме ядра.
- Полный дамп памяти (Complete memory dump). Самый большой по объему и требует памяти, равной оперативной памяти вашей системы плюс 1MB, необходимый Windows для создания этого файла.
- Автоматический дамп памяти (Automatic memory dump). Соответствует дампу памяти ядра с точки зрения информации. Отличается только тем, сколько места он использует для создания файла дампа. Этот тип файлов не существовал в Windows 7. Он был добавлен в Windows 8.
- Активный дамп памяти (Active memory dump). Этот тип отсеивает элементы, которые не могут определить причину сбоя системы. Это было добавлено в Windows 10 и особенно полезно, если вы используете виртуальную машину, или если ваша система является хостом Hyper-V.
Как включить создание дампа памяти в Windows?
С помощью Win+Pause откройте окно с параметрами системы, выберите «Дополнительные параметры системы» (Advanced system settings). Во вкладке «Дополнительно» (Advanced), раздел «Загрузка и восстановление» (Startup and Recovery) нажмите кнопку «Параметры» (Settings). В открывшемся окне настройте действия при отказе системы. Поставьте галку в чек-боксе «Записать события в системный журнал» (Write an event to the system log), выберите тип дампа, который должен создаваться при сбое системы. Если в чек-боксе «Заменять существующий файл дампа» (Overwrite any existing file) поставить галку, то файл будет перезаписываться при каждом сбое. Лучше эту галку снять, тогда у вас будет больше информации для анализа. Отключите также автоматическую перезагрузку системы (Automatically restart).
В большинстве случаев для анализа причины BSOD вам будет достаточно малого дампа памяти.
Теперь при возникновении BSOD вы сможете проанализировать файл дампа и найти причину сбоев. Мини дамп по умолчанию сохраняется в папке %systemroot%minidump. Для анализа файла дампа рекомендую воспользоваться программой WinDBG (Microsoft Kernel Debugger).
Установка WinDBG в Windows
Утилита WinDBG входит в «Пакет SDK для Windows 10» (Windows 10 SDK). Скачать можно здесь.
Файл называется winsdksetup.exe, размер 1,3 МБ.
WinDBG для Windows7 и более ранних систем включен в состав пакета «Microsoft Windows SDK for Windows 7 and .NET Framework 4». Скачать можно здесь.
Запустите установку и выберите, что именно нужно сделать – установить пакет на этот компьютер или загрузить для установки на другие компьютеры. Установим пакет на локальный компьютер.
Можете установить весь пакет, но для установки только инструмента отладки выберите Debugging Tools for Windows.
После установки ярлыки WinDBG можно найти в стартовом меню.
Настройка ассоциации .dmp файлов с WinDBG
Для того, чтобы открывать файлы дампов простым кликом, сопоставьте расширение .dmp с утилитой WinDBG.
- Откройте командную строку от имени администратора и выполните команды для 64-разрядной системы:
cd C:Program Files (x86)Windows Kits10Debuggersx64
windbg.exe –IA
для 32-разрядной системы:
C:Program Files (x86)Windows Kits10Debuggersx86
windbg.exe –IA - В результате типы файлов: .DMP, .HDMP, .MDMP, .KDMP, .WEW – будут сопоставлены с WinDBG.
Настройка сервера отладочных символов в WinDBG
Отладочные символы (debug-символы или symbol files) – это блоки данных, генерируемые в процессе компиляции программы совместно с исполняемым файлом. В таких блоках данных содержится информация о именах переменных, вызываемых функциях, библиотеках и т.д. Эти данные не нужны при выполнении программы, но полезные при ее отладке. Компоненты Microsoft компилируются с символами, распространяемыми через Microsoft Symbol Server.
Настройте WinDBG на использование Microsoft Symbol Server:
- Откройте WinDBG;
- Перейдите в меню File –> Symbol File Path;
- Пропишите строку, содержащую URL для загрузки символов отладки с сайта Microsoft и папку для сохранения кэша:
SRV*E:Sym_WinDBG*http://msdl.microsoft.com/download/symbols
В примере кэш загружается в папку E:Sym_WinDBG, можете указать любую. - Не забывайте сохранить изменения в меню File –> Save WorkSpace;
WinDBG произведет поиск символов в локальной папке и, если не обнаружит в ней необходимых символов, то самостоятельно загрузит символы с указанного сайта. Если вы хотите добавить собственную папку с символами, то можно сделать это так:
SRV*E:Sym_WinDBG*http://msdl.microsoft.com/download/symbols;c:Symbols
Если подключение к интернету отсутствует, то загрузите предварительно пакет символов с ресурса Windows Symbol Packages.
Анализ аварийного дампа памяти в WinDBG
Отладчик WinDBG открывает файл дампа и загружает необходимые символы для отладки из локальной папки или из интернета. Во время этого процесса вы не можете использовать WinDBG. Внизу окна (в командной строке отладчика) появляется надпись Debugee not connected.
Команды вводятся в командную строку, расположенную внизу окна.
Самое главное, на что нужно обратить внимание – это код ошибки, который всегда указывается в шестнадцатеричном значении и имеет вид 0xXXXXXXXX (указываются в одном из вариантов — STOP: 0x0000007B, 02.07.2019 0008F, 0x8F). В нашем примере код ошибки 0х139.
Полный справочник ошибок можно посмотреть здесь.
Отладчик предлагает выполнить команду !analyze -v, достаточно навести указатель мыши на ссылку и кликнуть. Для чего нужна эта команда?
- Она выполняет предварительный анализ дампа памяти и предоставляет подробную информацию для начала анализа.
- Эта команда отобразит STOP-код и символическое имя ошибки.
- Она показывает стек вызовов команд, которые привели к аварийному завершению.
- Кроме того, здесь отображаются неисправности IP-адреса, процессов и регистров.
- Команда может предоставить готовые рекомендации по решению проблемы.
Основные моменты, на которые вы должны обратить внимание при анализе после выполнения команды !analyze –v (листинг неполный).
1: kd>
!analyze -v
*****************************************************************************
* *
* Bugcheck Analysis *
* *
*****************************************************************************
Символическое имя STOP-ошибки (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)
Описание ошибки (Компонент ядра повредил критическую структуру данных. Это повреждение потенциально может позволить злоумышленнику получить контроль над этой машиной):
A kernel component has corrupted a critical data structure. The corruption could potentially allow a malicious user to gain control of this machine.
Аргументы ошибки:
Arguments:
Arg1: 0000000000000003, A LIST_ENTRY has been corrupted (i.e. double remove).
Arg2: ffffd0003a20d5d0, Address of the trap frame for the exception that caused the bugcheck
Arg3: ffffd0003a20d528, Address of the exception record for the exception that caused the bugcheck
Arg4: 0000000000000000, Reserved
Debugging Details:
------------------
Счетчик показывает сколько раз система упала с аналогичной ошибкой:
CUSTOMER_CRASH_COUNT: 1
Основная категория текущего сбоя:
DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY
Код STOP-ошибки в сокращенном формате:
BUGCHECK_STR: 0x139
Процесс, во время исполнения которого произошел сбой (не обязательно причина ошибки, просто в момент сбоя в памяти выполнялся этот процесс):
PROCESS_NAME: sqlservr.exe
CURRENT_IRQL: 2
Расшифровка кода ошибки: В этом приложении система обнаружила переполнение буфера стека, что может позволить злоумышленнику получить контроль над этим приложением.
ERROR_CODE: (NTSTATUS) 0xc0000409 - The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.
EXCEPTION_CODE: (NTSTATUS) 0xc0000409 - The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application.
Последний вызов в стеке:
LAST_CONTROL_TRANSFER: from fffff8040117d6a9 to fffff8040116b0a0
Стек вызовов в момент сбоя:
STACK_TEXT:
ffffd000`3a20d2a8 fffff804`0117d6a9 : 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`3a20d528 : nt!KeBugCheckEx
ffffd000`3a20d2b0 fffff804`0117da50 : ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2 : nt!KiBugCheckDispatch+0x69
ffffd000`3a20d3f0 fffff804`0117c150 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiFastFailDispatch+0xd0
ffffd000`3a20d5d0 fffff804`01199482 : ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000006f9 : nt!KiRaiseSecurityCheckFailure+0x3d0
ffffd000`3a20d760 fffff804`014a455d : 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951 : nt! ?? ::FNODOBFM::`string'+0x17252
ffffd000`3a20d8c0 fffff804`013a34ac : 00000000`00000004 00000000`00000000 ffffd000`3a20d9d8 ffffe001`0a34c600 : nt!IopSynchronousServiceTail+0x379
ffffd000`3a20d990 fffff804`0117d313 : ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380 : nt!NtWriteFile+0x694
ffffd000`3a20da90 00007ffb`475307da : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KiSystemServiceCopyEnd+0x13
000000ee`f25ed2b8 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : 0x00007ffb`475307da
Участок кода, где возникла ошибка:
FOLLOWUP_IP:
nt!KiFastFailDispatch+d0
fffff804`0117da50 c644242000 mov byte ptr [rsp+20h],0
FAULT_INSTR_CODE: 202444c6
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: nt!KiFastFailDispatch+d0
FOLLOWUP_NAME: MachineOwner
Имя модуля в таблице объектов ядра. Если анализатору удалось обнаружить проблемный драйвер, имя отображается в полях MODULE_NAME и IMAGE_NAME:
MODULE_NAME: nt
IMAGE_NAME: ntkrnlmp.exe
Если кликнете по ссылке модуля (nt), то увидите подробную информацию о пути и других свойствах модуля. Находите указанный файл, и изучаете его свойства.
1: kd>
lmvm nt
Browse full module list
Loaded symbol image file: ntkrnlmp.exe
Mapped memory image file: C:ProgramDatadbgsymntoskrnl.exe5A9A2147787000ntoskrnl.exe
Image path: ntkrnlmp.exe
Image name: ntkrnlmp.exe
InternalName: ntkrnlmp.exe
OriginalFilename: ntkrnlmp.exe
ProductVersion: 6.3.9600.18946
FileVersion: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)
В приведенном примере анализ указал на файл ядра ntkrnlmp.exe. Когда анализ дампа памяти указывает на системный драйвер (например, win32k.sys) или файл ядра (как в нашем примере ntkrnlmp.exe), вероятнее всего данный файл не является причиной проблемы. Очень часто оказывается, что проблема кроется в драйвере устройства, настройках BIOS или в неисправности оборудования.
Если вы увидели, что BSOD возник из-за стороннего драйвера, его имя будет указано в значениях MODULE_NAME и IMAGE_NAME.
Например:
Image path: SystemRootsystem32driverscmudaxp.sys
Image name: cmudaxp.sys
Откройте свойсва файла драйвера и проверьте его версию. В большинстве случаев проблема с драйверами решается их обнвовлением.
Debugging Tools for Windows — Инструменты отладки кода операционных систем Windows. Представляют собой набор свободно распространяемых программ от Microsoft, предназначенных для отладки кода пользовательского режима и режима ядра: приложений, драйверов, служб, модулей ядра. В состав инструментария входят отладчики консольного и GUI- режимов, утилиты для работы с символами, файлами, процессами, утилиты для обеспечения удаленной отладки. Инструментарий содержит в себе утилиты, с помощью которых можно находить причины сбоев в различных компонентах системы. Debugging Tools for Windows с определенного момента недоступны для скачивания в форме автономного дистрибутива и входят в состав Windows SDK (Windows Software Development Kit). Набор инструментальных средств Windows SDK, в свою очередь, доступен в виде части программы подписки MSDN или же может быть свободно загружен в качестве отдельного дистрибутива с сайта msdn.microsoft.com. По заявлению разработчиков, последняя и самая актуальная версия Debugging Tools for Windows содержится именно в Windows SDK.
Debugging Tools for Windows обновляются и выкладываются в публичный доступ достаточно часто и процесс этот никак не зависит от выпуска операционных систем. Поэтому, периодически проверяйте наличие новых версий.
Давайте теперь посмотрим, что же, в частности, позволяют нам средства Debugging Tools for Microsoft Windows:
- Отлаживать локальные приложения, службы (сервисы), драйвера и ядро;
- Отлаживать по сети удаленные приложения, службы (сервисы), драйвера и ядро;
- Отлаживать работающие приложения в режиме реального времени;
- Анализировать файлы дампов памяти приложений, ядра и системы в целом;
- Работать с системами на базе архитектур x86/x64/Itanium;
- Отлаживать программы пользовательского режима и режима ядра;
Доступны следующие версии Debugging Tools for Windows: 32-bit x86, Intel Itanium, 64-bit x64. Нам потребуются две из них: x86 либо x64.
Доступны несколько способов установки Debugging Tools for Windows, в данной же статье мы будем рассматривать лишь основные из них:
- Установка посредством web-инсталлятора.
- Установка Debugging Tools for Windows с ISO-образа Windows SDK.
- Установка Debugging Tools for Windows непосредственно из пакетов dbg_amd64.msi/dbg_x86.msi.
Остается неясен еще во какой момент, зачем мне инсталлировать отладочный инструментарий на компьютер? Зачастую ведь сталкиваешься с ситуацией, когда вмешательство в рабочую среду крайне нежелательно! И уж тем более что инсталляция нового продукта, то есть внесение изменений в реестр/файлы системы, может быть совершенно недопустима. Примерами могут служить критически-важные сервера. Почему бы разработчикам не продумать вариант с портабельными (portable) версиями приложений, не требующих установки?
От версии к версии процесс установки пакета Debugging Tools for Windows претерпевает некоторые изменения. Давайте теперь перейдем непосредственно к процессу установки и рассмотрим способы, которыми можно установить инструментарий.
Установка Debugging Tools for Windows при помощи web-инсталлятора
Переходим на страницу Архив Windows SDK и находим раздел под названием Windows 10 и ниже пункт «Windows 10 SDK (10586) и эмулятор устройства с Windows 10 Mobile (Майкрософт) (версия 10586.11)».
Щелкаем по пункту УСТАНОВИТЬ ПАКЕТ SDK. После щелчка скачиваем и запускаем файл sdksetup.exe, который и инициирует процесс онлайн-установки Windows SDK. На начальном этапе инсталятор проверит наличие в системе установленного пакета .NET Framework последней версии (в данный момент это 4.5). Если пакет отсутствует, что будет предложена установка и по окончании выполнена перезагрузка станции. Сразу после перезагрузки, на этапе авторизации пользователя, стартует процесс инсталляции уже непосредственно Windows SDK.
Зачастую, при выборе всех без исключения компонентов пакета, в процессе установки могут возникнуть ошибки. В этом случае рекомендуется устанавливать компоненты выборочно, минимально необходимый набор.
После завершения инсталляции Debugging Tools for Windows расположение файлов отладки при данном методе инсталляции у нас будет следующим:
- 64-битные версии: C:Program Files (x86)Windows Kitsx.xDebuggersx64
- 32-битные версии: C:Program Files (x86)Windows Kitsx.xDebuggersx86
* где x.x — определенная версия комплекта разработки;
Заметили, что версии 8 и выше, пути инсталляции заметно отличаются от классических для всех предыдущих версий средств отладки?
Огромным плюсом данного способа установки Debigging Tools for Windows является установка версий отладочных средств сразу всех архитектур.
Установка Debugging Tools for Windows с ISO-образа Windows SDK
Данный метод подразумевает установку Debugging Tools for Windows с использованием полного инсталляционного образа Windows SDK (Software Developers Kit). До определенного времени, скачать образ ISO для соответствующей системы можно было на странице Архив Windows SDK. Однако, в данный момент, получить ISO-образ SDK можно через запуск web-инсталлятора sdksetup.exe, и выбора пункта Download the Windows Software Development Kit в стартовом окне инсталлятора:
Как было выяснено, предыдущий метод установки при помощи веб-инсталлятора достаточно капризен и зачастую завершается ошибкой. На чистых системах устанавливается без проблем, однако на достаточно уже нагруженных возникают многочисленные проблемы. Если у Вас именно такой случай, то воспользуйтесь данным методом.
Соответственно, на странице необходимо подобрать требуемый дистрибутив, для меня (да и думаю для многих) в данный момент это «Пакет Windows SDK для Windows 7 и .NET Framework 4» и чуть ниже нажать на ссылку «Получить ISO-образ DVD-диска».
При работе с сайтом msdn.microsoft.com советую воспользоваться браузером Internet Explorer, поскольку были замечены случаи неработоспособности конкурирующих продуктов!
Далее у нас имеется выбор между тремя вариантами образа:
Имя | Назначение |
---|---|
GRMSDK_EN_DVD.iso | Образ SDK для систем с архитектурой x86 (32-битных). |
GRMSDKIAI_EN_DVD.iso | Образ SDK для систем с архитектурой ia64. |
GRMSDKX_EN_DVD.iso | Образ SDK для систем с архитектурой x64 (64-битных). |
Соответственно, необходимо выбрать исключительно по необходимости. Обычно разрядность Debugging Tools for Windows совпадает с разрядностью системы. У меня исследуемые системы, в основном, 64-битные, поэтому я в большинстве случаев скачиваю образ для 64-битной системы GRMSDKX_EN_DVD.iso.
Затем, после скачивания образа, нам необходимо с имеющимся ISO-образом как-то работать. Традиционным способом является, конечно же, запись компакт-диска, но ведь это достаточно долгий и иногда затратный метод. Предлагаю воспользоваться бесплатными утилитами по созданию в системе виртуальных дисковых устройств. Лично я для этой цели предпочитаю пользоваться программой DEAMON Tools Lite. У кого-то могут быть и другие предпочтения, более прямые или легковесные утилиты, на вкус и цвет, как говорится.. После инсталляции DAEMON Tools Lite, я просто щелкаю два раза на файл образа GRMSDKX_EN_DVD.iso и в системе у меня появляется новый виртуальный компакт диск:
Уже затем двойным щелчком активирую автозагрузку и запускаю инсталляцию Windows SDK:
Когда подходит очередь выбирать устанавливаемые компоненты из списка, то отключаем абсолютно все опции кроме помеченных на скриншоте. Это поможет избежать ненужных нам сейчас ошибок.
Все именно так, на скриншоте отмечено две опции: «Windows Performance Toolkit» и «Debugging Tools for Windows». Выбирайте обе, потому как Windows Performance Toolkit Вам непременно пригодится в работе! Далее, после нажатия кнопки «Next» инсталляция продолжается в обычном режиме. И в конце вы увидите надпись «Installation Complete».
По окончании инсталляции рабочие директории комплекта Debugging Tools for Windows будут следующими:
- Для версии x86: C:Program Files (x86)Debugging Tools for Windows (x86)
- Для версии x64: C:Program FilesDebugging Tools for Windows (x64)
На этом установку Debugging Tools for Windows можно считать оконченной.
Установка Debugging Tools for Windows через .msi файл
В случае возникновения проблем при инсталляции Debugging Tools for Windows двумя предыдущими способами, у нас в запасе остается еще один, самый надежный и проверенный временем, выручавший, так сказать, не раз. Когда-то, до интеграции в Windows SDK, Debugging Tools for Windows были доступны в виде отдельного инсталлятора .msi, который и сейчас можно найти, однако уже в недрах дистрибутива Windows SDK. Поскольку у нас на руках имеется уже ISO-образ Windows SDK, то мы можем не монтировать его в систему, а просто открыть при помощи всем уже хорошо знакомого архиватора WinRAR, ну или любого другого продукта, работающего с содержимым ISO-дисков.
После открытия образа нам необходимо пройти в каталог «Setup», находящийся в корне и далее выбрать одну из директорий:
- Для установки 64-битной версии: SetupWinSDKDebuggingTools_amd64 и распаковать из этого каталога файл
dbg_amd64.msi
. - Для установка 32-битной версии: SetupWinSDKDebuggingTools и распаковать из этого каталога файл
dbg_x86.msi
.
Далее, запускаем распакованный только что .msi файл и стартуем установку Debugging Tools for Windows.
По окончании инсталляции рабочие директории комплекта Debugging Tools for Windows будут следующими:
- Для версии x86: C:Program Files (x86)Debugging Tools for Windows (x86)
- Для версии x64: C:Program FilesDebugging Tools for Windows (x64)
На этом установку Debugging Tools for Windows можно считать выполненной.
Дополнительные сведения
Не знаю с чем это связано, быть может с моей невнимательностью, но после инсталляции Отладочных средств для Windows, инсталлятор не прописывает в системную переменную пути Path
путь к каталогу с отладчиком. Это накладывает определенные ограничения на запуск различных отладочных задач напрямую из консоли. Поэтому, в случае отсутствия пути, я самостоятельно прописываю в окне Переменные среды путь к отладочным средствам:
- C:Program Files (x86)Windows Kits10Debuggersx86
- C:Program Files (x86)Windows Kits10Debuggersx64
* В вашем случае пути могут отличаться как по причине использования ОС другой разрядности, так и по причине использования SDK другой версии.
Утилиты пакета Debugging Tools for Windows могут работать в качестве переносных приложений, достаточно просто скопировать с рабочей системы каталог Microsoft Windows Performance Toolkit и использовать его в качестве портабельной версии на рабочем сервере. Но не забывайте учитывать разрядность системы!! Если Вы даже произвели полную инсталляцию пакета на критически-важную систему, то работать можно начинать прямо после инсталляции, перезагрузка не требуется.
Состав Debugging Tools for Windows
И теперь напоследок приведем состав Debugging Tools for Windows:
Файл | Назначение |
---|---|
adplus.doc | Документация по утилите ADPlus. |
adplus.exe | Консольное приложение, которое автоматизирует работу отладчика cdb для создания дампов, лог-файлов для одного или нескольких процессов. |
agestore.exe | Утилита для удаления устаревших файлов из хранилища, используемого сервером символов или сервером исходников. |
breakin.exe | Утилита, которая позволяет посылать процессам комбинацию пользовательского останова (break), аналогичное нажатию CTRL+C. |
cdb.exe | Консольный отладчик пользовательского режима. |
convertstore.exe | Утилита для конвертирования символов из уровня 2-tier в уровень 3-tier. |
dbengprx.exe | Рипитер (прокси сервер) для удаленной отладки. |
dbgrpc.exe | Утилита для отображения информации о состоянии вызова RPC. |
dbgsrv.exe | Процесс сервера, используемый для удаленной отладки. |
dbh.exe | Утилита для вывода информации о содержимом файла символов. |
dumpchk.exe | Утилита проверки дампа. Утилита для быстрой проверки дамп-файла. |
dumpexam.exe | Утилита для анализа дампа памяти. Результат выводится в %SystemRoot%MEMORY.TXT. |
gflags.exe | Редактор глобальных флагов системы. Утилита управляет ключами реестра и другими настройками. |
i386kd.exe | Обертка к kd. Когда то так назывался kd для систем на базе Windows NT/2000 для x86 машин? Вероятно, оставлено из соображений совместимости. |
ia64kd.exe | Обертка к kd. Когда то так назывался kd для систем на базе Windows NT/2000 для ia64 машин? Вероятно, оставлено из соображений совместимости. |
kd.exe | Консольный отладчик режима ядра. |
kdbgctrl.exe | Инструмент управления отладки ядра. Утилита для управление и конфигурирования kernel debugging connection. |
kdsrv.exe | Сервер соединений для KD. Утилита представляет собой небольшое приложений, которое запускается и ждет удаленных соединений. kd запускается на клиенте и подсоединяется к этому серверу для удаленной отладки. И сервер и клиент должны быть из одной сборки Debugging Tools. |
kill.exe | Утилита для завершения процессов. |
list.exe | Утилита для вывода содержимого файла на экран. В комплекте эта миниатюрная утилита оказалась с одной целью — просмотр больших текстовых или лог-файлов. Занимает немного места в памяти, поскольку грузит текст частями. |
logger.exe | Миниатюрный отладчик, который может работать только с одним процессом. Утилита внедряет logexts.dll в пространство процесса, которая записывает все вызовы функций и другие действия исследуемой программы. |
logviewer.exe | Утилита для просмотра логов, записанных отладчиком logger.exe. |
ntsd.exe | Microsoft NT Symbolic Debugger (NTSD). Отладчик, идентичный cdb, за исключением того, что он создает текстовое окно при запуске. Как и cdb, ntsd способен отлаживать и консольные приложения и графические приложения. |
pdbcopy.exe | Утилита для удаления приватных символов из файла символов, контроля за публичными символами, включенными в файл символов. |
remote.exe | Утилита для удаленной отладки и удаленного контроля любого консольного отладчика KD, CDB и NTSD. Позволяет запускать все эти консольные отладчики удаленно. |
rtlist.exe | Удаленный просмотрщик задач. Утилита используется для вывода списка запущенных процессов через процесс сервера DbgSrv. |
symchk.exe | Утилита для загрузки символов с сервера символов Microsoft и создания локального кеша символов. |
symstore.exe | Утилита для создания сетевого или локального хранилища символов (2-tier/3-tier). Хранилище символов — специализированная директория на диске, которая строится в соответствии с определенной структурой и содержит символы. В корневой директории символов создается структура подпапок с названиями, идентичными названию компонентов. В свою очередь, в каждой из этих подпапок находятся вложенные подпапки, имеющие специальные наименования, получаемые методом хеширования бинарных файлов. Утилита symstore сканирует папки с компонентами и добавляет новые компоненты в хранилище символов, откуда их может получить любой клиент. Говорится что symstore служит для получения символов из хранилища уровня 0-tier и выкладывания их в хранилище уровня 2-tier/3-tier. |
tlist.exe | Просмотрщик задач. Утилита для вывода списка всех запущенных процессов. |
umdh.exe | User-mode dump heap utility. Утилита для анализа куч (heap) выбранного процесса. Позволяет выводить различные параметры для кучи. |
usbview.exe | Просмотрщик USB. Утилита для просмотра USB устройств, подключенных к компьютеру. |
vmdemux.exe | Демультиплексор виртуальной машины. Для одного COM-соединения создает несколько именованных каналов. Каналы используются для отладки различных компонентов виртуальной машины |
windbg.exe | Отладчик режима пользователя и режима ядра с графическим интерфейсом. |
Представьте себе такую ситуацию… Вы глубоко в мыслях, работаете над действительно важным документом и вдруг внезапно экран становится синим, на нем отображается сообщение об ошибке и ваш компьютер перезагружается, теряя, возможно, все ваши наработки. Не правда ли, очень неприятная история..?
Такие типы сбоев обычно связаны со сбойным драйвером, который бывает трудно вычислить. Тем не менее, улучшенная система отслеживания ошибок в Windows Vista (и не только в Vista!) нередко может привести вас к проблемному файлу. В результате чего большинство людей перестает судорожно пытаться работать на нестабильном компьютере, с параноидальной регулярностью сохраняя документы и надеясь на лучшее.
При сбоях Windows обычно создается так называемый “дамп памяти”. Последний можно исследовать с помощью бесплатного отладочного инструмента Windows Debugging Tools, который может направить вас на источник проблемы. Поэтому, все, что вам необходимо сделать, это:
Скачать себе отладочный инструмент
Скачать Windows Debugging Tools можно непосредственно с сайта Microsoft. Программа работает с множеством операционных систем, начиная с Windows NT 4 и оканчивая Windows 2008, поэтому проблем с ней у вас возникнуть не должно. Да, нельзя сказать, что она стабильна под Windows 7 RC, однако по нашим тестам все-таки работает. Поэтому даже попытка диагностирования проблемы из под Windows 7 RC может оказаться удачной.
Сконфигурировать свою систему
Необходимо, чтобы во время сбоев ваш компьютер создавал дампы памяти, которые в дальнейшей послужат источником информации для отладчика. Поэтому важно, чтобы Windows была настроена на генерацию дампов. Чтобы настроить свою операционную систему, кликните правой кнопкой мыши по Своему компьютеру (Computer) и выберите Свойства (Properties). Затем кликните по вкладке дополнительных параметров Дополнительно (Advanced System Settings), на ней найдите подраздел Загрузка и Восстановление системы (Startup and Recovery Settings) и убедитесь, что параметр Запись отладочной информации (Write debugging information) установлен в состояние Дамп памяти ядра (Kernel memory dump) или Полный дамп памяти (Complete memory dump).
Далее кликните Пуск (Start), перейдите в Программы (All Programs), выберите Debugging Tools и запустите WinDbg. В программе пройдите в меню File и выберите Symbol File Path… Затем напишите в открывшемся окне следующую строку:
SRV*c:symbols*http://msdl.microsoft.com/download/symbols
Последняя определяет путь к специальным данным — так называемым “символам” (symbols), которые могут помочь отладочному инструменту в опознании вашего сбойного файла.
После ввода строки, кликните по кнопке OK. В последствии при работе с отладчиком эта строка вызовет скачивание символов с msdl.microsoft.com и сохранение их в папку c:symbols.
Далее еще раз кликните по меню File, выберите Exit и подтвердите сохранение своей рабочей области (имеется в виду пути к символам) нажатием кнопки Yes.
Решить свою проблему
Теперь подождите очередного сбоя с синим экраном, и последующего окончания перезагрузки компьютера. Затем еще раз запустите WinDbg (пользователям Vista необходимо запускать программу от имени администратора), кликните по меню File, выберите открытие сбойного дампа Open Crash Dump, откройте файл WindowsMEMORY.DMP, и программа незамедлительно начнет его анализировать.
К сожалению, WinDbg предоставляет очень мало информации о том, что она делает, поэтому вы можете даже подумать, что программа зависла. Однако подождите. Поймите, анализ, скажем, 4GB памяти на не очень мощном компьютере может занять некоторое время, вплоть до часов. Поэтому наберитесь терпения, а лучше оставьте анализ на ночь.
Впрочем, обычно результат получается уже через несколько минут. Об этом свидетельствует строка анализатора ошибки Bugcheck Analysis, сообщающая нечто вроде «Probably caused by: UACReplace.sys». В переводе на русский это означает, что проблема, возможно, вызвана файлом UACReplace.sys. Введите его в строку поиска, например, Google и вы узнаете его реальное происхождение. В частности, если он принадлежит одной из установленных вами программ или установленному драйверу, то вы можете просто попытаться обновить ее или его. Возможно, это решит возникшие у вас проблемы.
Надо сказать, что время от времени WinDbg не может назвать имени файла совсем или просто выбирает одну из DLL-библиотек Windows. Если это произошло и у вас, то просто кликните по командному окну над панелью статуса и наберите команду:
!analyze –v
После этого нажмите Enter. Это предоставит вам более детальный отчет, в котором может содержаться информация о возможных причинах ваших бед.
Если же и в этот раз вам не повезет, не отчаивайтесь. Отладка является довольно сложным делом даже для экспертов. Поэтому просто закройте WinDbg и запустите анализатор снова после следующего сбоя. Возможно, это даст вам несколько больше информации. Удачи!
-
DesignerMix
- Администратор
- Сообщения: 7010
- Зарегистрирован: 25 апр 2014, 10:51
- Откуда: Белгород
- Контактная информация:
Исправляем синий экран смерти (BSOD). Windows Debugging Tool
Я показал процесс анализа дампов памяти которые создаются при появлении синего экрана смерти (Blue screen of death) при помощи инструментов Windows Debugging Tool и скрипта KDFE (kdfe.cmd). Этот способ помогает выявить именно то устройство, драйвер либо другую проблему которая вызвала BSOD. Надеюсь это видео было вам полезным.
- Windows Debugging Tool — http://msdn.microsoft.com/ru-RU/windows … e/hh852363
- Отредактированный скрипт KDFE (должен работать сразу) — http://goo.gl/WiEPBY
- Оригинальный скрипт KDFE — http://tools.oszone.net/Vadikan/files/kdfe.zip
- Справочник BSOD — http://soft.oszone.net/program/809/Spravka_po_BSOD/
- Утилита BlueScreenView — http://www.nirsoft.net/utils/blue_screen_view.html
Если у вас есть проблема с анализом дампов памяти, предлагаю заархивировать файлы дампов и прикрепить архив к вашему сообщению в качестве вложения. Я со своей стороны буду их анализировать и указывать вероятную причину появления синего экрана смерти а также то как ее можно исправить.
PS:Напомню что дампы памяти по умолчанию находятся в папке C:WindowsMinidump
Отредактированный мной скрипт KDFE:
Код: Выделить всё
::=====================================================================
:: Name: KDFE.CMD
::
:: Purpose: Kernel debugger Front End.
::
:: Usage: kdfe.cmd [dump_file] [-v]
::
:: Version: 1.1
::
:: Technology: Windows Command Script
::
:: Requirements: Windows 2000+
:: Debugging Tools for Windows
:: reg.exe:
:: Windows XP: built-in
:: Windows 2000: install Windows Support Tools
::
:: Authors: Alexander Suhovey (asuhovey@gmail.com)
::=====================================================================
@echo off
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
if "%~1"=="-debug" (echo on&set debug=1&shift /1)
set sver=1.1
echo.
::==========================
:: Variables
::==========================
::Kernel debugger path. Default is:
::For version 6.8.4.0 - October 18, 2007 and older
IF EXIST "%PROGRAMFILES(x86)%Windows Kits8.0Debuggersx64kd.exe" (
set dbgpath="%PROGRAMFILES(x86)%Windows Kits8.0Debuggersx64"
) ELSE (
rem For version 6.9.3.113 - April 29, 2008 and newer
rem 32 bit
IF EXIST "%PROGRAMFILES%Windows Kits8.0Debuggersx32kd.exe" (
set dbgpath="%PROGRAMFILES%Windows Kits8.0Debuggersx32"
) ELSE (
rem 64 bit
IF EXIST "%PROGRAMFILES(x86)%Windows Kits8.0Debuggersx32kd.exe" (
set dbgpath="%PROGRAMFILES(x86)%Windows Kits8.0Debuggersx32"
) ELSE (
IF EXIST "%PROGRAMFILES%Windows Kits8.0Debuggersx64kd.exe" (
set dbgpath="%PROGRAMFILES%Windows Kits8.0Debuggersx64kd.exe"
) ELSE (
echo ERROR: Debugging Tools for Windows not found^^!
pause
exit /b 1
)
)
)
)
:: Or set the path to Debugging Tools below
:: set dbgpath="<path>"
::Symbols and executable images folders. If folders do not contain
:: required files, kd.exe will download them from Microsoft Symbols
:: Server as needed.
set smbpath=%SYSTEMDRIVE%symbols
set imgpath=%smbpath%
::Microsoft Symbols Server URL.
set smburl=http://msdl.microsoft.com/download/symbols
set imgurl=%smburl%
::Windows Crash Control registry settings path.
set ccregpath="HKLMSYSTEMCurrentControlSetControlCrashControl"
::Debugger parameters.
set dbgparams=-y srv*"%smbpath:"=%"*%smburl% -i srv*"%imgpath:"=%"*%imgurl% -c
if "%debug%"=="1" (
set dbgparams=%dbgparams% "^^^!sym noisy; .reload; ^^^!analyze -v; q"
) else (
set dbgparams=%dbgparams% "^^^!analyze -v; q"
)
::==========================
:: Parse arguments
::==========================
set dumpfile=&set v=&
:PARSE
set arg=%~1&
shift /1
if not defined arg goto NEXT
if defined v (if defined dumpfile goto NEXT)
if "%arg%"=="/?" (goto SYNTAX) else (if "%arg%"=="-?" goto SYNTAX)
if "%arg%"=="-v" (set verbose=1&goto PARSE)
if not defined dumpfile (set dumpfile="%arg%"&goto PARSE)
:NEXT
::==========================
:: Checks
::==========================
set dbgpath=%dbgpath:"=%
for %%i in (reg.exe,"%dbgpath%kd.exe") do (
if "%%~$PATH:i"=="" (
if not exist %%i (
echo ERROR: Cannot find required file '%%~i'
pause
goto :EOF
)
)
)
::==========================
:: Main section
::==========================
set /a n=0
if defined dumpfile (
if exist !dumpfile! (
for %%z in (!dumpfile!) do (set dumpfile="%%~dpnxz")
call :ANALYZE !dumpfile! %verbose%
) else (
echo ERROR: Cannot find dump file !dumpfile!
)
) else (
for /f "tokens=2*" %%i in ('reg query %ccregpath% /v DumpFile 2^>^&1 ^| find "DumpFile"') do set kdump=%%j
for /f "tokens=2*" %%k in ('reg query %ccregpath% /v MinidumpDir 2^>^&1 ^| find "MinidumpDir"') do set minidir=%%l
if "!kdump!!minidir!"=="" echo ERROR: Cannot find required registry information^^!&pause&goto :EOF
call :ENUMD "!kdump!" "!minidir!"
if !n!==0 (
echo No crash dump files found with following search filter:
echo !kdump!
echo !minidir!*.dmp
) else (
echo Following crash dump files found:
echo.
for /l %%n in (1,1,!n!) do (call :GETD %%n& echo %%n. !dumpfile!)
echo.
set /p foo="Which one would you like to analyze?[1-!n!] "
for /l %%s in (1,1,!n!) do (
if !foo!==%%s (
call :GETD %%s
call :ANALYZE !dumpfile! %verbose%
pause
goto :EOF
)
)
echo.
echo What was that? Have some coffee and try again.
)
)
pause
goto :EOF
::==========================
:: Subroutines
::==========================
:ANALYZE
pushd "%dbgpath%"
if "%2"=="1" (kd.exe -z %1 %dbgparams% 2>&1) else (
echo.
set /p bar="Analyzing %1, please wait..."<nul
for /f "delims=" %%r in ('kd.exe -z %1 %dbgparams% 2^>^&1') do (
set out=%%r
if not "!out:PROCESS_NAME:=!"=="!out!" (set process=!out:PROCESS_NAME: =!)
if not "!out:BUGCHECK_STR:=!"=="!out!" (set crashcode=!out:BUGCHECK_STR: =!)
if not "!out:Debug session=!"=="!out!" (set crashdate=!out:Debug session time: =!)
if "!out:~0,18!"=="Probably caused by" (set guess=%%r)
)
echo Done.&echo.
if defined guess (
echo.
echo Crash date: !crashdate!
echo Stop error code: !crashcode!
if defined process echo Process name: !process!
echo !guess: :=:!
) else (
echo Didn't find the answer. Try again with '-v' switch.
)
)
popd
goto :EOF
:ENUMD
if exist %1 (set /a n+=1&set !n!=%1)
for %%m in ("%~2*.dmp") do (set /a n+=1&set !n!="%%m")
goto :EOF
:GETD
for /f "tokens=2 delims==" %%o in ('set %1 ^| find "%1="') do (set dumpfile=%%o&goto :EOF)
goto :EOF
:SYNTAX
echo.
echo Kernel Debugger Front End v%sver%
echo.
echo SYNTAX:
echo.
echo %~nx0 [dump_file] [-v]
echo.
echo dump_file - Crash dump file. If omitted, KDFE will search for crash
echo dump files in locations configured on your computer and
echo let you select a file to analyze.
echo -v - Verbose output. By default KDFE shows only basic crash
echo information and debugger's guess about crash cause.
echo This switch will show full debugger session output.
echo.
echo EXAMPLES:
echo.
echo %~nx0 "c:my dumpsmemory.dmp" -v
echo.
echo REQUIREMENTS:
echo.
echo Debugging Tools for Windows
echo.
echo REFERENCES:
echo.
echo Debugging Tools for Windows:
echo http://www.microsoft.com/whdc/devtools/debugging/default.mspx
echo.
echo Windows Hang and Crash Dump Analysis webcast by Mark Russinovich:
echo http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032298075
echo.
echo How to read small memory dump files:
echo http://support.microsoft.com/kb/315263
echo.
echo How to Use Driver Verifier to Troubleshoot Windows Drivers:
echo http://support.microsoft.com/Default.aspx?kbid=244617
goto :EOF
::==========================
:: End of script
::==========================
- Вложения
-
- kdfe_edit_by_DesignerMix.rar
- Отредактированный скрипт KDFE (должен работать сразу)
- (2.6 КБ) 1761 скачивание
- Правила форума
- История изменений форума
- Мой YouTube-канал
-
Belyj
- Постоянный пользователь
- Сообщения: 112
- Зарегистрирован: 09 июн 2014, 21:16
Re: Исправляем синий экран смерти (BSOD). Windows Debugging
Сообщение
Belyj » 09 июн 2014, 22:28
Весьма смелое название темы. А между тем сия тема очень обширна. Лучше взять за правило в таких ситуациях при любом раскладе всегда проверять память и винт, причём сначала непосредственно сами разъёмы/шлейфы а уж потом и тесты. Ибо ни одна софтинка никогда не покажет, что окислен контакт или пылинка в разъём попала. А покажет она в любом случае на какой либо файл/процесс/драйвер и придётся долгий и тернистый путь
-
DesignerMix
- Администратор
- Сообщения: 7010
- Зарегистрирован: 25 апр 2014, 10:51
- Откуда: Белгород
- Контактная информация:
Re: Исправляем синий экран смерти (BSOD). Windows Debugging
Сообщение
DesignerMix » 09 июн 2014, 22:45
Belyj, если грамотно проводить диагностику программно, при этом анализируя дампы памяти, заглядывая в журнал событий Windows и делая правильные выводы, то можно довольно быстро понять в чем именно проблема.
С тем что на опере часто окисляются контакты согласен, но вы-же сами сказали что тема обширна и поэтому сразу бросаться в поиск аппаратных неисправностей наверное не стоит. Тем более те люди которые смотрели это видео в большинстве своем не имеют опыта в разборе компьютера не говоря уже о извлечении отдельных его частей и было-бы опрометчиво им это советовать т.к. если они не исправят проблему, а сделают только хуже будет не очень хорошо.
- Правила форума
- История изменений форума
- Мой YouTube-канал
-
Belyj
- Постоянный пользователь
- Сообщения: 112
- Зарегистрирован: 09 июн 2014, 21:16
Re: Исправляем синий экран смерти (BSOD). Windows Debugging
Сообщение
Belyj » 11 июн 2014, 00:03
Согласен. Но далеко не всё можно починить программными методами. Синие экраны в большинстве своём как раз таки возникают из-за неполадок с памятью и жестким диском. А если не лазить внутрь компьютера, то как же тогда учиться ремонту. Не думаю что требуются какие-то особые навыки, чтоб достать планочку и поводить по ней ластиком, народ нынче продвинутый пошел.
Сам в таких случаях предпочитаю сперва исключать такие вот проблемы, чем по пять раз гонять тесты, это же всё уйму времени отнимает. Анализ дампов штука,конечно хорошая, сам предпочитаю упомянутую выше bluescreen view, но на практике до анализа дампа почти никогда не доходит.
-
DesignerMix
- Администратор
- Сообщения: 7010
- Зарегистрирован: 25 апр 2014, 10:51
- Откуда: Белгород
- Контактная информация:
Re: Исправляем синий экран смерти (BSOD). Windows Debugging
Сообщение
DesignerMix » 12 июн 2014, 23:01
banzay_man писал(а):Всем привет. У меня стоит ОС Windows 8.1 и появляется синий экран при загрузке. Я сделал все как описано чтоб информация об ошибке сохранилась в .dmp файле для следующего анализа, но C:WindowsMinidump папка пуста. Как сделать чтоб информация сохранилась в Minidump папке?
Нажмите комбинацию клавиш Win+Pause Break в открывшемся окне выберите «Дополнительные параметры системы», далее в пункте «Загрузка и восстановление» нажмите кнопку «Параметры» и проверьте чтобы в пункте «Отказ системы» были такие параметры:
- Правила форума
- История изменений форума
- Мой YouTube-канал
-
DesignerMix
- Администратор
- Сообщения: 7010
- Зарегистрирован: 25 апр 2014, 10:51
- Откуда: Белгород
- Контактная информация:
Re: Исправляем синий экран смерти (BSOD). Windows Debugging
Сообщение
DesignerMix » 13 июн 2014, 10:26
banzay_man писал(а):я все делаю как показано но система не сохраняет в minidump папке ничего
Ладно, тогда проверьте что-бы был включен файл подкачки: Нажмите комбинацию клавиш Win+Pause Break в открывшемся окне выберите «Дополнительные параметры системы» далее как на картинке:
Если файл подкачки у вас тоже был включен, попробуйте вручную создать папку Minidump (путь в итоге должен быть таким «Имя_диска_с_ОС:WindowsMinidump»).
Если ничего не поможет и после появления синего экрана дамп так и не появиться сделайте следующее:
Если вы уже вошли в систему:
- Прокрутите от правой границы экрана и затем последовательно коснитесь элементов Параметры и Изменить параметры компьютера. (Если вы используете мышь, переместите указатель в верхний правый угол экрана, затем вниз и последовательно щелкните Параметры и Изменить параметры компьютера.)
- В разделе Параметры компьютера выберите Обновление и восстановление.
- Теперь выберете Восстановление
- В разделе Особые варианты загрузки выберете Перезагрузить сейчас
- Далее последовательно зайдите — Диагностика -> Дополнительные параметры -> Параметры загрузки -> Перезагрузить -> При запросе нажмите клавишу F9, таким образом вы отключите автоматическую перезагрузку при отказе системы.
И когда синий экран появится снова компьютер не перезагрузится, таким образом вы сможете переписать код ошибки. Напишите его сюда и будем думать в чем проблема.
- Правила форума
- История изменений форума
- Мой YouTube-канал
-
DesignerMix
- Администратор
- Сообщения: 7010
- Зарегистрирован: 25 апр 2014, 10:51
- Откуда: Белгород
- Контактная информация:
Re: Исправляем синий экран смерти (BSOD). Windows Debugging
Сообщение
DesignerMix » 15 июн 2014, 12:24
banzay_man писал(а):он так и не создается. когда виндоус питается загружаться зависает и показывает синий экран с грустным смайликом и там написано SYSTEM_THREAD_EXCEPTION_NOT_HANDLED, но код ошибки не написанно.
Вам выше задавали вопрос, но вы так и не ответили… У вас ноутбук или стационарный компьютер? Если ноут, напишите его модель.
По поводу ошибки SYSTEM_THREAD_EXCEPTION_NOT_HANDLED:
— Попробуйте отключить все USB-устройства из портов (кроме клавиатуры и мышки , если они USB);
— Если не помогло, попробуйте восстановить BIOS на значения по умолчанию. Для этого зайдите в BIOS и в пункте «Exit» выберите «load optimal defaults» и затем нажмите F10, таким образом будут восстановлены значения по умолчанию для BIOS материнской платы:
Инструкция по входу в BIOS
— Если ничего из вышеперечисленного не помогло, попробуйте переключить режим работы жесткого диска в BIOS — на «Compateble IDE» если он стоит на «AHCI», либо наоборот на «AHCI» если он стоял на «Compateble IDE». Если это не изменит ситуацию верните значение на то, которое было изначально.
— Ну и наконец если все вышеперечисленное не принесет результата, нужно проверить жесткий диск на ошибки. К примеру воспользовавшись утилитой HDD Regenerator
- Правила форума
- История изменений форума
- Мой YouTube-канал
-
Belyj
- Постоянный пользователь
- Сообщения: 112
- Зарегистрирован: 09 июн 2014, 21:16
Re: Исправляем синий экран смерти (BSOD). Windows Debugging
Сообщение
Belyj » 16 июн 2014, 22:15
Как в хр сделать не получится.
Смею предположить что проблема возникла после установки драйвера, либо обновления. Пока вы нам не расскажите подробно, мы не сможем вам помочь. Заданные мной вопросы вы проигнорировали. Система хоть иногда загружается? Безопасный режим работает? Может получится, удерживая shift, нажать кнопочку перезагрузка и откатить системку?
-
DesignerMix
- Администратор
- Сообщения: 7010
- Зарегистрирован: 25 апр 2014, 10:51
- Откуда: Белгород
- Контактная информация:
Re: Исправляем синий экран смерти (BSOD). Windows Debugging
Сообщение
DesignerMix » 17 июн 2014, 08:07
banzay_man писал(а):ни кто ничего не игнорировал, не ваши вопросы и не предложенные вами варианты. потому задаю новый вопрос что, делаю как пишите но все ровно не помогает, иначе написал бы что решено. проблема появилось после обновления и в безопасный режим загружается нормально.
Тогда вам необходимо просто выполнить откат на предыдущую точку восстановления. Точки восстановления автоматически создаются перед установкой обновлений Windows.
Чтобы это сделать загрузитесь в безопасном режиме и сделайте следующее:
— Нажмите комбинацию клавиш Win+R и в открывшемся окне введите rstrui затем нажмите Enter.
— В открывшемся окне просто следуя инструкциям мастера восстановления системы выберите контрольную точку ориентируйтесь по дате создания точки и описанию. Что-бы узнать какие программы будут затронуты при откате нажмите соответствующую кнопку в мастере.
После восстановления, если проблема была только в установке обновления, система должна загрузиться корректно.
- Правила форума
- История изменений форума
- Мой YouTube-канал
-
banzay_man
- Новичок
- Сообщения: 6
- Зарегистрирован: 12 июн 2014, 07:37
-
Vladiclavgj
- Новичок
- Сообщения: 1
- Зарегистрирован: 23 авг 2014, 14:20
Re: Исправляем синий экран смерти (BSOD). Windows Debugging
Сообщение
Vladiclavgj » 23 авг 2014, 14:25
Здраствуйте. Я посмотрел ваше видео по поводу Синего экрана смерти.Сделал все как в видео вплоть до kdfe и переделал его.Но когда я выбираю dump file(он у меня 1)он не выдает ничего. Не подскажете что делать? Экран появляется при просмотре видео в вк и (т.п).Win 8.1,ошибка DPC_Watchdog_Violation. Архив прикреплен всей папкой.
- Вложения
-
- Minidump.rar
- Minidump
- (70.21 КБ) 255 скачиваний
В случае критической ошибки система останавливает свою работу, отображает синий экран смерти (BSOD), информация об ошибке и содержимое памяти сохраняется в файле подкачки. При последующей загрузке системы, на основе сохраненных данных, создается аварийный дамп c отладочной информацией. В системном журнале событий создается запись о критической ошибке.
Если критическая ошибка возникла на ранней стадии загрузки системы или в результате ошибки произошел отказ дисковой подсистемы, аварийный дамп сохранен не будет.
Аварийный дамп может быть проанализирован с помощью утилиты BlueScreenView или системного отладчика WinDbg (Debugging Tools for Windows).
Содержание
- Анализ аварийного дампа утилитой BlueScreenView
- Анализ аварийного дампа отладчиком WinDbg
- Получение информации о проблемном драйвере
- Аппаратные причины возникновения критических ошибок
- Настройка параметров сохранения аварийного дампа
Анализ аварийного дампа утилитой BlueScreenView
Простейшим инструментом для анализа аварийных дампов является утилита BlueScreenView от NirSoft.
Загружаем программу с сайта разработчика.
BlueScreenView сканирует папку с минидампами и отображает информацию по найденным отказам.
По каждому отказу отображается дата, данные об ошибке и драйвер, который предположительно вызвал отказ.
В нижней части окна отображается список загруженных в системе драйверов. Модули, к которым выполнялось обращение в момент отказа, выделены цветом, на них следует обратить особое внимание, они могут быть причиной отказа.
По двойному клику отображается дополнительная информация.
Анализ аварийного дампа отладчиком WinDbg
С помощью WinDbg из аварийного дампа можно вытащить более детальную информацию, включая расшифровку стека.
Установка Debugging Tools for Windows (WinDbg)
Microsoft распространяет WinDbg только в составе SDK, загрузить веб-установщик можно на странице загрузки.
Для анализа аварийных дампов установка SDK не требуется. Скачать Debugging Tools for Windows (WinDbg) отдельным пакетом можно здесь.
После установки, корректируем ярлык для запуска WinDbg. В свойствах ярлыка, устанавливаем флажок запуска от имени администратора. Также, в качестве рабочей папки, задаем: %SystemRoot%Minidump.
Настройка отладочных символов
Отладочные символы содержат символические имена функций из исходного кода. Они необходимы для расшифровки и интерпретации аварийного дампа.
При первом запуске WinDbg, необходимо указать путь к отладочным символам, для этого открываем меню File, Symbol File Path, или используем комбинацию Ctrl+S.
Следующей строкой включаем загрузку отладочных символов из сети, задаем локальный путь для сохранения файлов и адрес для загрузки из интернета:
srv*C:Windowssymbols*http://msdl.microsoft.com/download/symbols
Анализ аварийного дампа
Запускаем WinDbg.
В меню выбираем File, Open Crash Dump, или нажимаем Ctrl+D.
Указываем путь к дампу %SystemRoot%MEMORY.DMP или %SystemRoot%Minidumpфайл.dmp.
Загрузка отладочных символов из интернета может занять некоторое время.
Для получения детальной информации выполняем команду:
!analyze -v
Дебаггер сам вам предложит ее выполнить, достаточно навести указатель мыши на ссылку и кликнуть.
В результате получаем следующий вывод:
******************************************************************************* * * * Bugcheck Analysis * * * ******************************************************************************* Тип ошибки: KMODE_EXCEPTION_NOT_HANDLED (1e) Комментарий к ошибке: This is a very common bugcheck. Usually the exception address pinpoints the driver/function that caused the problem. Always note this address as well as the link date of the driver/image that contains this address. Arguments: Аргументы ошибки: Arg1: 0000000000000000, The exception code that was not handled Arg2: 0000000000000000, The address that the exception occurred at Arg3: 0000000000000000, Parameter 0 of the exception Arg4: 0000000000000000, Parameter 1 of the exception Debugging Details: ------------------ EXCEPTION_CODE: (Win32) 0 (0) - . FAULTING_IP: +3332313336383065 00000000`00000000 ?? ??? EXCEPTION_PARAMETER1: 0000000000000000 EXCEPTION_PARAMETER2: 0000000000000000 ERROR_CODE: (NTSTATUS) 0 - STATUS_WAIT_0 BUGCHECK_STR: 0x1E_0 CUSTOMER_CRASH_COUNT: 1 DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT Процесс, вызвавший ошибку: PROCESS_NAME: VirtualBox.exe CURRENT_IRQL: 2 EXCEPTION_RECORD: fffff80000ba24d8 -- (.exr 0xfffff80000ba24d8) ExceptionAddress: fffff800034d8a70 (nt!DbgBreakPoint) ExceptionCode: 80000003 (Break instruction exception) ExceptionFlags: 00000000 NumberParameters: 1 Parameter[0]: 0000000000000000 TRAP_FRAME: fffff80000ba2580 -- (.trap 0xfffff80000ba2580) NOTE: The trap frame does not contain all registers. Some register values may be zeroed or incorrect. rax=0000000000142940 rbx=0000000000000000 rcx=fffffa80055be690 rdx=0000000000009018 rsi=0000000000000000 rdi=0000000000000000 rip=fffff800034d8a71 rsp=fffff80000ba2718 rbp=fffff88006fa0000 r8=0000000000002274 r9=11d0851b22c6ac61 r10=fffff80003464000 r11=fffff80000ba27e0 r12=0000000000000000 r13=0000000000000000 r14=0000000000000000 r15=0000000000000000 iopl=0 nv up ei pl nz ac po nc nt!DbgBreakPoint+0x1: fffff800`034d8a71 c3 ret Resetting default scope LAST_CONTROL_TRANSFER: from fffff800034d85fe to fffff800034e0c10 STACK_TEXT: Стек вызовов: fffff800`00ba15b8 fffff800`034d85fe : fffffa80`03c05530 00000000`ffffffff fffff800`00ba1d30 fffff800`0350c830 : nt!KeBugCheck fffff800`00ba15c0 fffff800`0350c4fd : fffff800`036ea71c fffff800`03627c30 fffff800`03464000 fffff800`00ba24d8 : nt!KiKernelCalloutExceptionHandler+0xe fffff800`00ba15f0 fffff800`0350b2d5 : fffff800`0362b028 fffff800`00ba1668 fffff800`00ba24d8 fffff800`03464000 : nt!RtlpExecuteHandlerForException+0xd fffff800`00ba1620 fffff800`0351c361 : fffff800`00ba24d8 fffff800`00ba1d30 fffff800`00000000 00000000`00142940 : nt!RtlDispatchException+0x415 fffff800`00ba1d00 fffff800`034e02c2 : fffff800`00ba24d8 fffffa80`07149010 fffff800`00ba2580 00000000`00000000 : nt!KiDispatchException+0x135 fffff800`00ba23a0 fffff800`034de0f4 : 00000000`00000016 00000000`00000001 00000000`00000001 00000000`00000000 : nt!KiExceptionDispatch+0xc2 fffff800`00ba2580 fffff800`034d8a71 : fffff880`05861446 00000000`df029940 fffff880`02f45bec 00000000`deee7000 : nt!KiBreakpointTrap+0xf4 fffff800`00ba2718 fffff880`05861446 : 00000000`df029940 fffff880`02f45bec 00000000`deee7000 fffff880`01229f06 : nt!DbgBreakPoint+0x1 fffff800`00ba2720 00000000`df029940 : fffff880`02f45bec 00000000`deee7000 fffff880`01229f06 fffffa80`05635af8 : cmudaxp+0x25446 fffff800`00ba2728 fffff880`02f45bec : 00000000`deee7000 fffff880`01229f06 fffffa80`05635af8 00000000`00000000 : 0xdf029940 fffff800`00ba2730 00000000`deee7000 : fffff880`01229f06 fffffa80`05635af8 00000000`00000000 00000000`00000003 : VBoxDrv+0x6bec fffff800`00ba2738 fffff880`01229f06 : fffffa80`05635af8 00000000`00000000 00000000`00000003 fffff880`05865913 : 0xdeee7000 fffff800`00ba2740 00000000`00000000 : 00000000`00000001 00000000`00000006 00000000`00000001 fffff800`00ba2800 : CLASSPNP!ClasspServiceIdleRequest+0x26 STACK_COMMAND: kb FOLLOWUP_IP: cmudaxp+25446 fffff880`05861446 ?? ??? SYMBOL_STACK_INDEX: 8 SYMBOL_NAME: cmudaxp+25446 FOLLOWUP_NAME: MachineOwner Драйвер, в котором возникла ошибка: MODULE_NAME: cmudaxp IMAGE_NAME: cmudaxp.sys DEBUG_FLR_IMAGE_TIMESTAMP: 47906a45 FAILURE_BUCKET_ID: X64_0x1E_0_cmudaxp+25446 BUCKET_ID: X64_0x1E_0_cmudaxp+25446 Followup: MachineOwner ---------
Получение информации о проблемном драйвере
Если удалось обнаружить драйвер, в котором возникла ошибка, имя драйвера будет отображено в полях MODULE_NAME и IMAGE_NAME.
Чтобы получить путь к файлу и прочую информацию, щелкаем по ссылке на модуль:
start end module name
fffff880`0583c000 fffff880`059ef000 cmudaxp T (no symbols)
Loaded symbol image file: cmudaxp.sys
Image path: SystemRootsystem32driverscmudaxp.sys
Image name: cmudaxp.sys
Timestamp: Fri Jan 18 13:58:45 2008 (47906A45)
CheckSum: 0013077F
ImageSize: 001B3000
Translations: 0000.04b0 0000.04e4 0409.04b0 0409.04e4
Если полный путь к драйверу не указан, по умолчанию используется папка %SystemRoot%system32drivers.
Находим указанный файл, и изучаем его свойства.
Обновляем проблемный драйвер.
Аппаратные причины возникновения критических ошибок
Источником критических ошибок нередко бывают неисправности в дисковой подсистеме, или в подсистеме памяти.
Диагностика неисправностей диска
В случае ошибок дисковой подсистемы, аварийный дамп может не сохраняться.
Чтобы исключить проблемы с диском, проверяем системный журнал событий на наличие ошибок чтения и записи на диск.
Проверяем параметры S.M.A.R.T жесткого диска, получить их можно, например, с помощью программы SpeedFan.
Особое внимание обращаем на параметры: «Current Pending Sector Count» и «Uncorrectable Sector Count», ненулевые значения этих параметров сигнализируют о неисправности диска.
Ненулевое значение параметра: «UltraDMA CRC Error Count», сигнализирует о проблеме с SATA-кабелем.
Подробнее о параметрах S.M.A.R.T. читаем в статье Википедии.
Диагностика неисправностей памяти
Проблемы с памятью нередко могут стать причиной самых разнообразных глюков, включая различные синие экраны, зависания, аварийное завершение программ, повреждение реестра, повреждение файловой системы и данных.
Выявить проблемы с памятью можно с помощью утилиты Memtest86+.
Загружаем образ по ссылке, записываем на диск, загружаемся с диска, запускается тест.
Начиная с Windows Vista, в системе имеется свой тест памяти. Для его запуска нажимаем «Пуск», в строке поиска набираем «памяти«, выбираем «Средство диагностики памяти Windows».
Проблемы с памятью в некоторых случаях могут быть устранены обновлением BIOS.
Настройка параметров сохранения аварийного дампа
Для изменения параметров сохранения аварийного дампа нажимаем кнопку «Пуск», щелкаем на «Компьютер» правой кнопкой мыши, в контекстном меню выбираем «Свойства». В окне «Система» слева выбираем «Дополнительные параметры системы», в группе «Загрузка и восстановление» нажимаем кнопку «Параметры».
Подробнее о дампах памяти читаем здесь.