Как найти источник этого BSOD? Как это исправить?

8

Я иногда (всегда в самый неподходящий момент ...) получаю этот BSOD на моем настольном ПК с Windows 7:

  Problem signature:
  Problem Event Name:   BlueScreen
  OS Version:   6.1.7601.2.1.0.256.1
  Locale ID:    1033

  Additional information about the problem:
  BCCode:   124
  BCP1: 0000000000000000
  BCP2: FFFFFA8007BBB028
  BCP3: 00000000B2000040
  BCP4: 0000000000000800
  OS Version:   6_1_7601
  Service Pack: 1_0
  Product:  256_1

  Files that help describe the problem:
  C:\Windows\Minidump\010812-16578-01.dmp
  C:\Users\al\AppData\Local\Temp\WER-37500-0.sysdata.xml

Попытка найти дополнительную информацию об этом кажется бесполезной, поскольку файл C:\Users\al\AppData\Local\Temp\WER-37500-0.sysdata.xmlне существует (папка существует, но нет файла, начинающегося с «WER»), а попытка проанализировать файл мини-дамп приводит к следующему:

Bug Check Code: 0x00000124
Parameter 1:    00000000`00000000
Parameter 2:    fffffa80`07bbb028
Parameter 3:    00000000`b2000040
Parameter 4:    00000000`00000800
Causing driver: hal.dll
Address:    hal.dll+12a3b
Processor:  x64
Crash address:  ntoskrnl.exe+7cc40
CPU count:  4
Major ver:  15
Minor ver:  7601
Dump size:  283,576 

а также:

Filename:       ntoskrnl.exe
Addr. in Stack: ntoskrnl.exe+18d513
From addr:      fffff800`02a18000
To addr:        fffff800`03001000
Size:           0x005e9000
Timestamp:      0x4e02aaa3
Time string:    6/22/2011 9:53:23 PM
Product name:   Microsoft® Windows® Operating System
File desc:      NT Kernel & System
File ver:       6.1.7601.17640 (win7sp1_gdr.110622-1506)
Company:        Microsoft Corporation
Full path:      C:\Windows\system32\ntoskrnl.exe        

Ну, hal.dllи они ntoskrnl.exeявляются частью ОС, и, похоже, я ничего не могу сделать, чтобы обновить эти «драйверы».

Я знаю, что аппаратное обеспечение идеально (включая напряжение ОЗУ в BIOS и т. Д.), Потому что эта же точная система прекрасно работает с Ubuntu 8и Ubuntu 10(конфигурация с тройной загрузкой). Проблема определенно в системном программном обеспечении, но как мне узнать, что это такое?

Вечный ученик
источник
1
Мы могли бы помочь вам, если бы Windows 7 была с открытым исходным кодом ...
m0skit0
3
Делать какие-либо шаги из [здесь] ( sevenforums.com/crash-lockup-debug-how/… help?
AndrejaKo
2
@AndrejaKo Это отличный ресурс. Похоже, именно то, что я искал. Пожалуйста, повторно отправьте как ответ, и я приму это. Спасибо +1 сейчас.
Вечный ученик
1
@ Вечный ученик Простая ссылка на ответ здесь не считается ответом в SuperUser, он должен оставаться комментарием, если они не захотят скопировать все содержание ответа в ответ SuperUser. Основной причиной этого является гниение ссылок и исчезновение сайтов из киберпространства. Вторая причина - SuperUser - это не форум.
Моав

Ответы:

4
  1. Установите средства отладки для Windows .
  2. После установки откройте WinDbg из меню «Пуск».
  3. Нажмите Файл> Путь к символьному файлу и введите (замените C: \ SymbolCache на выбранный вами путь)SRVC:\SymbolCachehttp://msdl.microsoft.com/download/symbols
  4. Нажмите Файл> Открыть Crashdump и откройте файл memory.dmp в вашем% SystemRoot% (обычно C: \ WINDOWS или C: \ WINNT) ИЛИ последний файл в% SystemRoot% \ Minidump, если у вас отключены полные дампы.
  5. Драйвер-нарушитель будет указан ниже, аналогично следующему:, Probably caused by : usbhub.sys ( usbhub!UsbhTrapFatalTimeout_x9f+28 )но вы можете щелкнуть !analyze -vссылку, чтобы получить подробную трассировку стека.
kinokijuf
источник
Это хорошо для разработчиков драйверов, а не для администратора.
Вечный ученик
@EternalLearner Но он показывает вам источник BSOD, и это хорошо.
kinokijuf
Да, это хорошо, но я уже получаю всю эту информацию BlueScreenView. Единственным преимуществом !analyze -vявляется возможность показывать исходный код, если он у меня есть, и, поскольку я не являюсь разработчиком ntoskrnl.exe, он мне не помогает. Помимо того, что он ужасно раздут и еще больше подрывает стабильность системы. Установка его оправдана только при разработке драйверов.
Вечный ученик
@EternalLearner Тогда я боюсь, что получить дополнительную информацию невозможно.
kinokijuf
2

Намного проще было бы использовать BlueScreenView . Если вы заглянете в столбец «Адрес в стеке», то увидите, откуда исходил проблемный вызов. Это последняя строка, в которой есть запись в этом столбце.

Взяв имя файла драйвера, вы можете отследить поставщика / приложение / устройство, к которому он принадлежит, и, следовательно, с высокой вероятностью найти виновника.

Роберт
источник
1
BlueScreenView - именно то, где я взял информацию, которую я разместил в своем вопросе. Обратно-трек останавливается на то , что я писал изначально: ntoskrnl.exe+18d513. Комментарий, опубликованный @AndrejaKo, пока является лучшим ответом.
Вечный ученик