Как проанализировать дамп памяти в Windows после ошибки синего экрана?

15

Мой компьютер под управлением Windows 7 x64 время от времени ломает. Не могли бы вы посоветовать, как проанализировать дамп памяти или указать возможные причины и дальнейшие действия по устранению неполадок?

Компьютер перезагрузился из-за ошибки. Ошибка была: 0x0000003b (0x00000000c0000005, 0xfffff96000015de8, 0xfffff88007db9fb0, 0x0000000000000000). Дамп был сохранен в: C: \ Windows \ MEMORY.DMP. Идентификатор отчета: 080210-24819-01.

Цитата из результата запуска WinDbg

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - Инструкция в 0x% 08lx ссылается на память в 0x% 08lx. Память не может быть% s.

...

DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT

BUGCHECK_STR: 0x3B

PROCESS_NAME: explorer.exe

...

MODULE_NAME: win32k

IMAGE_NAME: win32k.sys

Есть ли способ понять, какой именно драйвер имеет проблемы?

bublegumm
источник
Смотрите также - superuser.com/questions/28448/…
Ник Йозевски

Ответы:

19

Я бы использовал инструмент отладки Microsoft: WinDbg . Он может читать и автоматически анализировать дампы памяти, как у вас. (Команда WinDbg метко назвал: !analyze)

Инструмент мощный, но довольно сложный. Вот подробное руководство .

Этот же форум предлагает BlueScreenView . Я не пробовал это; это, вероятно, проще в использовании, но не дает такой подробной информации.


Обновить:

Есть ли способ понять, какой именно драйвер имеет проблемы?

После !analyzeзапуска kили kd. Это покажет трассировку стека прямо перед сбоем. Трассировка стека - это список вызовов функций, выполненных непосредственно перед сбоем, причем самый последний из них находится вверху. Вы должны по крайней мере быть в состоянии узнать имена файлов вовлеченных модулей (DLL).

Я предлагаю поделиться полными результатами !analyzeи / или дампом памяти с людьми, которые опытны в WinDbg и заинтересованы в помощи. Ранее связанный форум MajorGeeks выглядит как хорошее место.

Leftium
источник
Благодарность! Есть ли у вас какие-либо идеи, каков следующий шаг? Я добавил результаты запуска WinDbg
bublegumm
1
Эта ветка MajorGeeks Forum великолепна, шаг за шагом предлагает довольно хороший способ чтения файла memory.dmp.
russds
Без каких-либо глубоких знаний пытаться осмыслить !analyze -vрезультаты (а в основном это предлагает BlueScreenView) практически бессмысленно. Предложение о просмотре стека вызовов может быть разумным в StackOverflow, но здесь это немного глупо. Кроме того, я выполнил свою часть посмертной отладки драйверов Windows, и во многих случаях это далеко не так ясно, как кажется.
0xC0000022L
1

Существует бесплатный инструмент под названием BlueScreenView, который анализирует файлы дампа c:\windows\minidumpи отображает графические окна, чтобы пользователь мог определить ошибки

Джейкоб Джастин
источник
-1

Это может быть причиной http://support.microsoft.com/kb/980932 (используйте «Просмотр и запрос на загрузку исправлений» в верхней части страницы, чтобы запросить исправление, не устанавливайте исправление, если оно не является FireWire 1394). выпуск)

В противном случае его, вероятно, вызывающий его видеодрайвер, кажется распространенным в W7, но это может быть вызвано и другим оборудованием, плохие модули памяти также весьма подозрительны

Проверка на ошибку 0x3B: SYSTEM_SERVICE_EXCEPTION

http://msdn.microsoft.com/en-us/library/ff558949(v=VS.85).aspx

Проверка ошибки SYSTEM_SERVICE_EXCEPTION имеет значение 0x0000003B. Это указывает на то, что произошло исключение при выполнении подпрограммы, которая переходит от непривилегированного кода к привилегированному коду. параметры

Следующие параметры отображаются на синем экране. ParameterDescription 1 Исключение, вызвавшее проверку на наличие ошибок 2 Адрес адрессной записи для исключения, вызвавшего проверку на наличие ошибок 3 Адрес контекстной записи для исключения, вызвавшего проверку на наличие ошибок 40

причина

Эта ошибка была связана с чрезмерным использованием выгружаемого пула и может возникать из-за того, что графические драйверы пользовательского режима пересекают и передают неверные данные в код ядра.

Moab
источник