Como encontrar a fonte deste BSOD? Como corrigi-lo?

8

Ocasionalmente (sempre no momento menos conveniente ...) recebo este BSOD no meu PC com 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

Tentar descobrir mais informações sobre isso parece ser inútil porque o arquivo C:\Users\al\AppData\Local\Temp\WER-37500-0.sysdata.xmlnão existe (a pasta existe, mas nenhum arquivo que começa com "WER") e a tentativa de analisar o arquivo minidump produz o seguinte:

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 

e:

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        

Bem, hal.dlle ntoskrnl.exefazem parte do sistema operacional e não parece haver nada que eu possa fazer para atualizar esses "drivers".

Eu sei que o hardware é perfeito (incluindo voltagens de RAM na BIOS etc) porque esse mesmo sistema exato funciona perfeitamente com Ubuntu 8e Ubuntu 10(configuração de inicialização tripla). O problema está definitivamente no software do sistema, mas como faço para descobrir o que é?

Aprendiz Eterno
fonte
11
Nós poderíamos ajudá-lo se o Windows 7 fosse de código aberto ...
m0skit0
3
Fazer qualquer um dos passos da [aqui] ( sevenforums.com/crash-lockup-debug-how/... ajuda?
AndrejaKo
2
@AndrejaKo Este é um ótimo recurso. Parece exatamente o que eu estava procurando. Volte a postar como resposta e eu aceito. Obrigado +1 por enquanto.
Eternal Learner
11
Aluno Eterno @ Simplesmente vincular a uma resposta não é considerado uma resposta aqui no SuperUser, ele deve permanecer um comentário, a menos que eles desejem copiar todo o conteúdo da resposta para uma resposta do SuperUser. A principal razão para isso é a podridão de links e sites que desaparecem do ciberespaço. A segunda razão é que o SuperUser não é um fórum.
Moab

Respostas:

4
  1. Instale as ferramentas de depuração para Windows .
  2. Após a instalação, abra o WinDbg no menu Iniciar.
  3. Clique em Arquivo> Caminho do arquivo de símbolo e insira (substitua C: \ SymbolCache pelo caminho de sua escolha)SRVC:\SymbolCachehttp://msdl.microsoft.com/download/symbols
  4. Clique em Arquivo> Abrir Crashdump e abra o arquivo memory.dmp no% SystemRoot% (geralmente C: \ WINDOWS ou C: \ WINNT) OU no arquivo mais recente em% SystemRoot% \ Minidump, se você tiver os despejos completos desativados.
  5. O driver incorreto será listado abaixo, semelhante a este:, Probably caused by : usbhub.sys ( usbhub!UsbhTrapFatalTimeout_x9f+28 )mas você pode clicar no !analyze -vlink para obter um rastreamento detalhado da pilha.
kinokijuf
fonte
Isso é bom para desenvolvedores de drivers, não para um administrador.
Eternal Learner
@EternalLearner Mas mostra a fonte BSOD, o que é uma coisa boa.
kinokijuf
Sim, é uma coisa boa, mas eu já recebo todas essas informações BlueScreenView. A única vantagem !analyze -vé a capacidade de mostrar o código-fonte, se eu o tiver, e como eu não sou o desenvolvedor ntoskrnl.exe, isso não me ajuda. Além do fato de estar horrivelmente inchado e comprometer ainda mais a estabilidade do sistema. A instalação é justificada apenas quando você desenvolve drivers.
Eternal Learner
@EternalLearner Acho que é impossível obter mais informações.
kinokijuf
2

Uma maneira muito mais simples seria usar o BlueScreenView . Se você olhar para a coluna "Endereço na pilha", poderá ver de onde veio a chamada problemática. Esta é a última linha que possui uma entrada nesta coluna.

Tomando o nome do arquivo do driver, você pode rastrear novamente o fornecedor / aplicativo / dispositivo ao qual pertence e, portanto, encontrar o culpado com alta probabilidade.

Robert
fonte
11
O BlueScreenView é exatamente o local onde tirei as informações que publiquei na minha pergunta. O back-trilha pára em que eu postei originalmente: ntoskrnl.exe+18d513. O comentário postado por @AndrejaKo é a melhor resposta até agora.
Eternal Learner