Pliki DMP są użyteczne dla debugowania Windows 7. Zawierają one w sobie informacje, dlaczego został wywołany dany niebieski ekran. Jednak bez możliwości ich otwarcia pliki DMP są bezużyteczne dla ciebie.
Otworzenie pliku jest proste wymaga on tylko odpowiedniego oprogramowania gorzej z lokalizacją i analizą danego pliku DMP, chociaż od tego jest Google i nie jest aż tak źle, o czym napiszę później.
Use !analyze -v to get detailed debugging information.
BugCheck D1, {8, 2, 0, 92f7e860}
*** WARNING: Unable to verify timestamp for ndis.sys
*** ERROR: Module load completed but symbols could not be loaded for ndis.sys
*** WARNING: Unable to verify timestamp for athrusb.sys
*** ERROR: Module load completed but symbols could not be loaded for athrusb.sys
*** WARNING: Unable to verify timestamp for Wdf01000.sys
*** ERROR: Module load completed but symbols could not be loaded for Wdf01000.sys
*** WARNING: Unable to verify timestamp for USBPORT.SYS
*** ERROR: Module load completed but symbols could not be loaded for USBPORT.SYS
***** Kernel symbols are WRONG. Please fix symbols to do analysis.
Do otworzenie pliku DMP w Windows 7 musisz zainstalować najpierw odpowiednie oprogramowanie.
Pobranie debugging Tools for Windows
Do otworzenia plików DMP potrzebujesz narzędzi Windows Debugging Tools. Mogą one być pobrane tutaj.
Oprogramowanie wymaga .NET 4.0.
NET 4.0 to zbiór bibliotek programistycznych (w żaden sposób one nie przeciąża systemu xD wręcz przeciwnie nawet pomagają) i na pewno może być pobrany wraz z tą Instalką.
Swoją drogą narzędzia te są częścią Windows Driver Kit. Jest to plik ISO (czyli obraz płyty) o wielkości zbliżonej do 700 MB. Jeśli masz szybkie łącze dobrym pomysłem jest pobranie obrazu tej płyty i być może zainstalowanie czegoś więcej. Płyta będzie wielokrotnego użytku i nie trzeba będzie pobierać tego samego materiału w kółko.
Instalacja
Instalacja wymaga Internetu więc w przypadku jego braku na komputerze X, na którym narzędzia mają być zainstalowane trzeba pobrać obraz płyty Windows Driver Kit. Na płycie ISO w folderze Debuggers odnajdziesz instalkę dla systemu x64 i dla x32.
Dla systemu Windows 64-bitowego będzie to instalka x64. Dla 30-bitowego x32.
W czasie instalacji z menu musisz wybrać interesujące ciebie składniki. Zaznacz “Windows Debbuging Tools” i zignoruj inne zaznaczone już elementy. Jak chcesz może zainstalować coś więcej.
Otworzenie narzędzia WindDBG
Domyślnie program ten znajduje się pod ścieżką C:\Program Files\Debugging Tools for Windows (x86) albo może być ona inna, jeśli ją zmieniłeś albo masz system 64-bitowy.
Mówimy tutaj o Windows 7 więc plik może być odnaleziony w menu start w sposób pokazany powyżej.
Ustawienie symboli
To jeszcze nie koniec musimy jeszcze ustawić symbole. Chociaż jest to opcja trochę zaawansowana przyda ona się do analizy pliku DMP.
Otwórz folder w wygodnym dla ciebie miejscu. Symbole to pliki, które będą ściągane z Internetu i będą lądować do tego folderu.
Otwórz okno “Symbole Search Path” poprzez skrót “Ctrl + S” albo poprzez wybranie z menu “File/Symbol File Path”.
Do ścieżki dodaj:
SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
Zamiast c:\Symbols wstaw ścieżkę do swojego folderu. Pozostaw jednak gwiazdki.
Aby utrwalić te symbole zapisz przestrzeń roboczą za pomocą menu “File/Save WorkSpace”.
Otworzenie pliku DMP
Dobrze ,że ostatnio na komputerze otrzymałem niebieski ekran, ponieważ nie mógłbym inaczej tego pokazać.
Najszybszym sposobem na wywołanie dialogu otwarcia pliku to skrót CTRL+D.
Możesz też z menu wybrać “File/Open Crash Dump
Gdzie pliki DMP się znajdują?
Pliki DMP znajdują się na C:/Windows/Minidump/
Możesz zmienić miejsce ich lokacji ,ale lepiej zostawić to tak jak jest.
Błąd otwarcia
W wypadku błędu musisz uruchomić program WinDBG jako administrator.
Jeśli to nie pomaga to skopiuj plik DMP w inną lokacje, do której masz dostęp i po problemie.
Analizowanie pliku DMP
Gdy zostaniesz zapytany o zapisanie miejsca roboczego naciśnij na tak.
Bez wprowadzenia symboli analiza pliku DMP może być też dość informacyjna. Chociaż w pliku spotkasz informacje o tym ,że powinieneś to zrobić.
Symbol search path is: *** Invalid ***
****************************************************************************
* Symbol loading may be unreliable without a symbol search path. *
* Use .symfix to have the debugger choose a symbol path. *
* After setting your symbol path, use .reload to refresh symbol locations. *
****************************************************************************
Executable search path is:
*** Your debugger is not using the correct symbols
***
*** In order for this command to work properly, your symbol path
*** must point to .pdb files that have full type information.
***
*** Certain .pdb files (such as the public OS symbols) do not
*** contain the required information. Contact the group that
*** provided you with these symbols if you need this command to
*** work.
***
*** Type referenced: nt!_KPRCB
Pod koniec pliku możesz zobaczyć sugerowany plik systemowy, który wywołał niebieski ekran. Dalej może ci pomóc Google.
Probably caused by : nwifi.sys ( nwifi+4860 )
Jak i jakie błędy otrzymał system.
*** WARNING: Unable to verify timestamp for ndis.sys
*** ERROR: Module load completed but symbols could not be loaded for ndis.sys
*** WARNING: Unable to verify timestamp for athrusb.sys
*** ERROR: Module load completed but symbols could not be loaded for athrusb.sys
*** WARNING: Unable to verify timestamp for Wdf01000.sys
*** ERROR: Module load completed but symbols could not be loaded for Wdf01000.sys
*** WARNING: Unable to verify timestamp for USBPORT.SYS
*** ERROR: Module load completed but symbols could not be loaded for USBPORT.SYS
***** Kernel symbols are WRONG. Please fix symbols to do analysis.
Jednak chcemy wykorzystać w pełni ten program więc myślę ,że podałeś symbole. Mogę więc omówić krok po kroku co trzeba zrobić.
W WinDBG otworzy teraz plik DMP i poczekaj ,aż on go przetworzy. Może zająć to trochę czasu.
Powinieneś zobaczyć następujący plik txt.
Aby uzyskać więcej informacji znajdź i kliknij na “!analyze – v”. Teraz w następnym paragrafie możesz zobaczyć dokładne informacje na temat błędu.
FOLLOWUP_IP:
nwifi!Dot11GetSenderAddr+e
92f7e860 0fb710 movzx edx,word ptr [eax]
SYMBOL_STACK_INDEX: 1
SYMBOL_NAME: nwifi!Dot11GetSenderAddr+e
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: nwifi
IMAGE_NAME: nwifi.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4a5bc89f
FAILURE_BUCKET_ID: 0xD1_nwifi!Dot11GetSenderAddr+e
BUCKET_ID: 0xD1_nwifi!Dot11GetSenderAddr+e
W moim przypadku otrzymałem szczegółowe informacje na temat błędu sterownika nwifi.sys.
Jest to bardzo pomocne, zwłaszcza że wbrew pozorom łatwo w ten sposób ustalić, co stało się z systemem operacyjnym.