Jak analizować zrzut pamięci w systemie Windows po błędzie niebieskiego ekranu?

15

Mój komputer z systemem Windows 7 x64 miażdży od czasu do czasu. Czy możesz doradzić, jak przeanalizować zrzut pamięci lub wskazać możliwą przyczynę i dalsze kroki rozwiązywania problemów?

Komputer uruchomił się ponownie po sprawdzeniu błędów. Błąd: 0x0000003b (0x00000000c0000005, 0xfffff96000015de8, 0xfffff88007db9fb0, 0x0000000000000000). Zrzut został zapisany w: C: \ Windows \ MEMORY.DMP. Identyfikator raportu: 080210-24819-01.

Cytat z wyniku uruchomienia WinDbg

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - Instrukcja o 0x% 08lx odnosiła się do pamięci o 0x% 08lx. Pamięć nie może być% s.

...

DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT

BUGCHECK_STR: 0x3B

PROCESS_NAME: explorer.exe

...

MODULE_NAME: win32k

IMAGE_NAME: win32k.sys

Czy jest jakiś sposób, aby zrozumieć, który konkretny sterownik ma problem?

bublegumm
źródło
Zobacz także - superuser.com/questions/28448/…
Nick Josevski

Odpowiedzi:

19

Chciałbym użyć narzędzia do debugowania Microsoft: WinDbg . Może czytać i automatycznie analizować zrzuty pamięci, takie jak twoje. (Komenda WinDbg jest trafnie nazwany: !analyze)

Narzędzie jest potężne, ale dość złożone. Oto szczegółowy przewodnik JAK .

To samo forum sugeruje BlueScreenView . Nie próbowałem tego; jest prawdopodobnie prostszy w użyciu, ale nie podaje szczegółowych informacji.


aktualizacja:

Czy jest jakiś sposób, aby zrozumieć, który konkretny sterownik ma problem?

Po !analyzeuruchomieniu klub kd. To pokaże ślad stosu tuż przed awarią. Śledzenie stosu to lista wywołań funkcji wykonanych tuż przed awarią, z najnowszymi na górze. Powinieneś przynajmniej być w stanie nauczyć się nazw plików zaangażowanych modułów (DLL).

Sugeruję udostępnienie pełnych wyników !analyzei / lub zrzutu pamięci osobom, które są wykwalifikowane w WinDbg i są zainteresowane pomocą. Poprzednio połączone forum MajorGeeks wygląda na dobre miejsce.

Leftium
źródło
Dzięki! Czy masz jakieś pomysły na następny krok? Dodałem wyniki uruchomienia WinDbg
bublegumm
1
Ten wątek na forum MajorGeeks jest świetny, oferuje całkiem niezły krok po kroku sposób odczytu pliku memory.dmp.
Russds
Bez jakiejś dogłębnej wiedzy próba zrozumienia samego !analyze -vwyniku (a BlueScreenView oferuje głównie to), jest prawie bezcelowa. Sugerowanie spojrzenia na stos wywołań może być sensowne w StackOverflow, ale tutaj jest trochę głupie. Poza tym zrobiłem część debugowania pośmiertnego sterownika systemu Windows i wiele przypadków nie jest tak wyraźnych, jak się wydaje.
0xC0000022L
1

Istnieje bezpłatne narzędzie o nazwie BlueScreenView , które analizuje pliki zrzutu c:\windows\minidumpi wyświetla okna graficzne, dzięki czemu użytkownik może zidentyfikować błędy

Jacob Justin
źródło
-1

Może to być przyczyną http://support.microsoft.com/kb/980932 (Użyj „Wyświetl i poproś o pobranie poprawek” u góry strony, aby poprosić o poprawkę, nie stosuj poprawki, jeśli nie jest to Firewire 1394 kwestia)

W przeciwnym razie prawdopodobnie jest to sterownik wideo, który wydaje się być powszechny w W7, ale może to również powodować inny sprzęt, złe moduły pamięci są również bardzo podejrzane.

Kontrola błędów 0x3B: SYSTEM_SERVICE_EXCEPTION

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

Kontrola błędów SYSTEM_SERVICE_EXCEPTION ma wartość 0x0000003B. Oznacza to, że wystąpił wyjątek podczas wykonywania procedury, która przechodzi z kodu nieuprzywilejowanego do kodu uprzywilejowanego. Parametry

Na niebieskim ekranie wyświetlane są następujące parametry. Parametr Opis 1 Wyjątek, który spowodował błąd 2 Adres rekordu wyjątku dla wyjątku, który spowodował błąd 3 Adres rekordu kontekstowego dla wyjątku, który spowodował błąd 40

Przyczyna

Ten błąd został powiązany z nadmiernym wykorzystaniem puli stronicowanej i może wystąpić z powodu przekierowywania sterowników graficznych w trybie użytkownika i przekazywania złych danych do kodu jądra.

Moab
źródło