Tämän ohjeen avulla voit analysoida tarkemmin mahdollista Blue Screen of Death -virheilmoitusta ja sen luomaa kaatumisvedosta. Analysointiin tarvitset WinDBG -ohjelman joka on osa Debugging Tools for Windows -pakettia. Ohjelman saa kuitenkin ladattua erillisenä versiona jolloin koko Debugging Tools for Windows -pakettia ei tarvitse asentaa.
64-bittisessä versiossa tulee asennusohjelma mukana jolla se asennetaan järjestelmään. Asennus käynnistyy joko setup_amd64(.exe) tai dbg_amd64(.msi) -tiedostosta riippumatta siitä onko koneessa AMD:n tai Intelin prosessori. ia64 tarkoittaa Itanium -prosessoria jota tuskin kenelläkään on. 32-bittisessä versiossa taas ei tule asennusohjelmaa, vaan arkisto vain puretaan johonkin kansioon ja ajetaan sieltä windbg suoraan.
Ennen ensimmäistä WinDBG -ohjelman käyttökertaa on tehtävä seuraava toimenpide:
1. Paina näppäimistöltä pohjaan WIN ja PAUSE -näppäimet tai paina (omasta) tietokoneesta hiiren oikealla ja ominaisuudet
Windows XP:
2a. Avaa "Lisäasetukset" -välilehti
2b. Paina "Ympäristömuuttujat" -painiketta
Windows Vista/7:
2a. Paina "Järjestelmän lisäasetukset" -linkkiä/painiketta vasemmalla
3. Valitse vaihtoehto "Open Crash Dump... (CTRL+D)"
4. Selaa itsesi Minidump-kansioon (oletus C:\Windows\Minidump tai %WINDIR%\Minidump), valitse sieltä .dmp -tiedosto ja paina "Avaa" -painiketta.
5. Paina "No" -painiketta.
6. Odota, että ohjelma käsittelee kaatumisen muistivedostiedoston. Tässä voi mennä useita minuutteja.
7. Kun ohjelma on pysähtynyt, selaa vähän ylöspäin lokia, etsi rivi jossa in painettava "!analyze -v" -linkki ja paina sitä.
8. Tämän jälkeen voit yrittää joko itse tarkastella ohjelman luomaa analyysiä tai pistää sen esimerkiksi paste2 -palveluun tai vastaavaan ja aloittaa uuden aiheen esimerkiksi Windows -ongelmat -alueelle jossa pyydät apua muilta aD:n käyttäjiltä.
Esimerkki ohjelman luomasta lokista:
Lainaus:Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\WINDOWS\Minidump\Mini061912-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available
WARNING: Whitespace at end of path element
Symbol search path is: srv*C:\Symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows XP Kernel Version 2600 (Service Pack 3) UP Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 2600.xpsp_sp3_gdr.120504-1619
Machine Name:
Kernel base = 0x804d7000 PsLoadedModuleList = 0x805540c0
Debug session time: Tue Jun 19 23:13:20.640 2012 (UTC + 2:00)
System Uptime: 0 days 4:53:36.232
Loading Kernel Symbols
...............................................................
................................................................
.................................
Loading User Symbols
Loading unloaded module list
.............
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck F4, {3, 89e3eda0, 89e3ef14, 805c863c}
unable to get nt!KiCurrentEtwBufferOffset
unable to get nt!KiCurrentEtwBufferBase
Probably caused by : hardware_disk ( +f8 )
CRITICAL_OBJECT_TERMINATION (f4)
A process or thread crucial to system operation has unexpectedly exited or been
terminated.
Several processes and threads are necessary for the operation of the
system; when they are terminated (for any reason), the system can no
longer function.
Arguments:
Arg1: 00000003, Process
Arg2: 89e3eda0, Terminating object
Arg3: 89e3ef14, Process image file name
Arg4: 805c863c, Explanatory message (ascii)
Debugging Details:
------------------
unable to get nt!KiCurrentEtwBufferOffset
unable to get nt!KiCurrentEtwBufferBase
EXCEPTION_CODE: (NTSTATUS) 0xc0000006 - K sky osoitteessa "0x%08lx" viittasi muistiin osoitteessa "0x%08lx". tarvittavaa dataa ei sijoitettu muistiin. Syyn I/O-virhe "0x%08lx".
CUSTOMER_CRASH_COUNT: 1
DEFAULT_BUCKET_ID: DRIVER_FAULT
ERROR_CODE: (NTSTATUS) 0xc0000006 - K sky osoitteessa "0x%08lx" viittasi muistiin osoitteessa "0x%08lx". tarvittavaa dataa ei sijoitettu muistiin. Syyn I/O-virhe "0x%08lx".
EXCEPTION_PARAMETER1: 00000008
EXCEPTION_PARAMETER2: 75b5b421
EXCEPTION_PARAMETER3: c000000e
IO_ERROR: (NTSTATUS) 0xc000000e - M ritetty laitetta ei ole.
EXCEPTION_STR: 0xc0000006_c000000e
FAULTING_IP:
+f8
75b5b421 ?? ???
BUGCHECK_STR: 0xF4_IOERR_C000000E
FOLLOWUP_IP:
+f8
75b5b421 ?? ???
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: hardware_disk
SYMBOL_NAME: +f8
STACK_COMMAND: kb
FAILURE_BUCKET_ID: 0xF4_IOERR_C000000E_+f8
BUCKET_ID: 0xF4_IOERR_C000000E_+f8
Followup: MachineOwner
---------
Tässä esimerkiksi on tullut BSOD 0xc0000006 joka aiheutui I/O -virheestä ja sen tarkennuksena on "M ritetty laitetta ei ole.", eli laite on jostain syystä irroitettu järjestelmästä tai se on lakannut vastaamasta järjestelmän komentoihin, joka on taas aiheuttanut BSOD virhesanoman ja muistivedoksen luomisen.
BlueScreenView ei analysoi noita raportteja mitenkään, vaan se näyttää periaatteessa vain saman viestin minkä näet kun alunperin saat BSOD sanoman ruutuun. Analysoinnilla pääsee paljon paremmin jäljille mistä kaatuminen johtui. Toki jos tuosta BSV:stä löytyy mahdollisuus oikeasti analysoida kaatumisesta luotuja .dmp tiedostoja, niin ohje olisi hyvä linkittää.
EDIT: Näemmä DumpChk päästään lähelle, mutta vaatii Windows Debugging Tools asennusta eikä toimi x64 käyttöjärjestelmissä. Ei siis mitään järkeä tuossa ehdotuksessa. Lisäksi täytyy tuossakin tehdä omasta ohjeestani kohdat "Ennen ensimmäistä WinDBG -ohjelman käyttökertaa".