Windows 7:n muistivedosanalyysi. Muistin vedosten käyttö kaatumisten diagnosointiin. Tietojen saaminen ongelmallisesta kuljettajasta

Kriittisestä virheestä (BSOD) johtuva järjestelmävika johtuu useimmiten ohjaimen toimintahäiriöstä tai vioittumisesta, paitsi jos tietokoneen laitteistossa on ongelmia.

Tässä artikkelissa tarkastellaan perusvaiheita, jotka auttavat sinua määrittämään itsenäisesti BSOD:n syyn ja sen seurauksena poistamaan sen.

Analysoimme muistivedoksia käyttämällä WinDBG-debuggeria, joten ennen kuin aloitat, sinun on asennettava debuggeri ja määritettävä se.
Kuinka tehdä tämä, opit artikkelista.

WinDBG käyttöliittymä

Kun avaat muistivedostiedoston, näet seuraavan ikkunan:

On syytä huomata, että oletuskomentoikkuna on riippumaton virheenkorjausikkunasta, joten voit muuttaa sen kokoa, siirtää sitä tai sovittaa sen virheenkorjausikkunaan vetämällä sen yläreunaa työkalupalkin alareunaan ja myös maksimoida sen. koko näyttöön.

Kun avaat vedostiedoston, debuggerilta kestää jonkin aikaa muodostaa yhteys Internetiin ja ladata tarvittavat symbolit virheenkorjausta varten. Virheenkorjaussymboleja ladattaessa tulee näkyviin virheenkorjauskomentorivi Debuggee ei yhdistetty, et voi käyttää debuggeria tällä hetkellä.

Kun symbolit on ladattu ja debuggeri on valmis jäsentämään vedostiedoston, näet viestin Seuranta: koneenomistaja tekstiruudun alareunassa.

Nyt kaikki on valmis aloittamaan muistivedosten analysoinnin. Kaikki komennot syötetään ikkunan alareunassa olevalle komentoriville.

Muistin tyhjennysanalyysi

Ensimmäinen asia, johon sinun on kiinnitettävä huomiota vedostiedostoa avattaessa, on virhekoodi, joka määrittää suurelta osin virheen pääsuunnan ja analyysimenetelmän.

Virhekoodit määritetään aina heksadesimaaliarvona ja näyttävät 0xXXXXXXXX . Virhekoodit ilmaistaan ​​jollakin seuraavista vaihtoehdoista:

  • STOP: 0x0000009F
  • 6/03/2015 0009F

Virhekoodin viite: Windows Dev Centerin virheentarkistuskoodin viite

!-säie Command and Driver Analysis

Yleisin BSOD:n syy on kolmannen osapuolen ohjaimet (laitevalmistajat). Jotta voimme nähdä, näkyykö laiteohjain kaatopaikassa, meidän on tarkasteltava pinoa.
Suorita komento ! lanka ja löytää sen toteutuksen tuloksista Pohja Ja raja, ja niiden heksadesimaaliarvot.
Tässä esimerkissä ne ovat:
Perus fffff80000b9b000 Raja fffff80000b95000

Kirjoita komentoriville dps sitten välilyönnillä erotettu heksadesimaaliarvo raja, jota seuraa arvo Pohja. Tässä tapauksessa arvojen määritysjärjestys on tärkeä - sen on oltava päinvastainen kuin !thread-komennon suorittamisen seurauksena.

dps fffff80000b95000 fffff80000b9b000

Kun pino on ladattu, näet monia rivejä tekstillä ja arvoilla. Etsi komennon tuloksista virheilmoituksia, jotka osoittavat ohjaimiin. Tässä esimerkissä tämä on ohjain igdkmd64.sys ja iaStorA.sys, ja debuggerissa se näyttää tältä:

Etsi tietokoneeltasi määritetyt ohjaimet. Tämä ei ole välttämätöntä, mutta se on toivottavaa. Kun olet poistanut ohjaimen Laitehallinnasta tai käyttämällä laitevalmistajan asennuksen poistoohjelmaa, ajuria ei välttämättä poisteta, jolloin se voidaan poistaa manuaalisesti. Toinen syy on se, että se voi olla haittaohjelmatiedosto (virus, troijalainen, kaivostyöntekijä jne.), ja tällaisissa tapauksissa ohjain sijaitsee yleensä kansioissa, jotka ovat epätavallisia tälle.
Menettelyn yksinkertaistamiseksi suorita seuraava komento komentokehotteessa järjestelmänvalvojana:

driverquery /v > "%USERPROFILE%\Desktop\drivers.txt"

Komennon suorittamisen jälkeen työpöydälle luodaan drivers.txt-tiedosto, joka sisältää yksityiskohtaiset tiedot kaikista järjestelmään asennetuista ohjaimista, niiden kuvauksista ja ajuritiedoston sijainnista.

Tässä esimerkissä todennäköisiä syyllisiä BSOD:n esiintymiseen olivat Intel-näytönohjaimen (igdkmd64.sys) ja SATA/AHCI-ohjaimen (iaStorA.sys) ohjaimet.

On syytä huomata, että ajurit eivät aina ole BSOD:n syy, tämä voi johtua myös laitteiston toimintahäiriöstä, mutta jos virhekoodi osoittaa ohjaimen ongelman, on suositeltavaa käyttää Windows Driver Checker -ohjelmaa.

Komento!analyze -v

!analyze-komento näyttää tiedot nykyisestä poikkeuksesta tai virhekoodista, ja vaihtoehto -v tuottaa monisanaisen tulosteen. Tarkasteltavana olevassa tapauksessa tarvitsemme arvoon tietoja estetyistä IRP-paketteista Arg4 ja arvot FAILURE_ÄMPÄRI_ID Ja ÄMPÄRI_ID.

Suorita komento !irp lisäämällä arvoa Arg4

!irp ffffe001eb781600

Komennon suorittamisen seurauksena havaittiin ongelmallinen ajuri - Rt630x64.sys

Tässä tapauksessa Rt630x64.sys-ohjain liittyy verkkosovittimeen ja aiheuttaa DRIVER_POWER_STATE_FAILURE -virheen, kun järjestelmä sammuu.
Saat yksityiskohtaisia ​​tietoja ohjaintiedostosta suorittamalla komennon

Kuten näette, ajurin päivämäärä on melko vanha ja se kannattaa päivittää ongelman korjaamiseksi.

Johtopäätös

Tämän artikkelin tarkoituksena on puhua muistivedosanalyysialgoritmista BSOD:n syyn tunnistamiseksi. Yhden artikkelin puitteissa on mahdotonta harkita kaikkia analyysivaihtoehtoja, ja monet hienovaraisuudet tulevat vain kokemuksella. Vain yksi virhekoodi huomioitiin. sen analyysin järjestys vaikutti minusta mielenkiintoisimmalta, toisin kuin esimerkiksi virhe 0x124, joka useimmissa tapauksissa osoittaa laitteisto-ongelmaa, tai 0x116, joka osoittaa ongelmaa näytönohjaimessa tai näytönohjaimen toimintahäiriötä 95 prosentissa tapauksista. tapauksia.

Jos et ole pystynyt selvittämään BSOD:n syytä tai tarvitset vain nopeaa ja pätevää apua ongelman analysointiin, voit aina ottaa yhteyttä foorumiin

Sininen kuoleman näyttö(Eng. Blue Screen of Death, Blue Screen of Doom, BSoD) - viestit kriittisestä järjestelmävirheestä Microsoft Windows -käyttöjärjestelmissä. Monet, jotka kohtaavat kuoleman sinisen näytön tietokoneessaan / kannettavassa tietokoneessaan, näkevät käyttöjärjestelmän uudelleenasentamisen ainoana ratkaisuna. Mutta joskus käyttöjärjestelmällä ei ole mitään tekemistä sen kanssa, mutta ongelma on laitteistossa. Jotta ei arvaa miksi kuoleman sininen näyttö ilmestyi, sinun on käytettävä tietoja, jotka käyttöjärjestelmä itse tarjoaa lokien muodossa. Tässä artikkelissa kuvailen askel askeleelta, kuinka saada selville sinisen kuoleman syy.

Joten kuoleman sinisen näytön ilmestyminen on aina odottamatonta ja väärään aikaan, joten monilla ei yksinkertaisesti ole aikaa nähdä, mitä on kirjoitettu, mutta siellä on sanottava (tosin ei kovin selkeästi) syyt siihen. epäonnistuminen. Ensinnäkin ehdotan tietokoneen / kannettavan tietokoneen asentamista niin, että se ei käynnisty uudelleen heti järjestelmävian jälkeen, vaan antaa mahdollisuuden nähdä vian syy, jos nämä tiedot eivät riitä, sinun on katsottava kaatopaikka tiedosto, joka sisältää tietoja: virhekoodin parametreineen, luettelon RAM-muistiin ladatuista ohjaimista järjestelmän kaatumisen aikana jne., mutta nämä tiedot riittävät viallisen ohjaimen määrittämiseen.

Järjestelmän kaatumisen jälkeiseen uudelleenkäynnistykseen liittyvät asetukset voidaan määrittää napsauttamalla hiiren kakkospainikkeella pikakuvaketta Oma tietokone / Tietokone (sopii Windows XP:lle, Windows7:lle, Windows8:lle), valitse " Ominaisuudet" tai paina pikanäppäintä + . Kaikki alla olevat tulostusnäytöt liittyvät Windows7:ään, samalla tavalla kuin Windows XP, Windows8, Windows8.1.

välilehdellä " Lisäksi"Valitse ruudusta Lataa ja palauta" Vaihtoehdot".

Poista valinta " Suorita automaattinen uudelleenkäynnistys", jotta ehtii nähdä kaiken, mitä kuoleman sininen näyttö kirjoittaa. Dump file -rivillä on polku, johon tiedosto tallennetaan, mikä kertoo epäonnistumisen syyt.

Nyt voit tutkia tietoja huolellisesti, kun sininen kuolemanruutu ilmestyy. Jos tietokoneesi ei ole enää käynnistettävä, etkä voi muuttaa näitä asetuksia, paina tässä tapauksessa latauksen aikana näppäimistön F8-näppäintä ja valitse valikkokohta "Jos järjestelmä epäonnistuu, älä käynnistä uudelleen".

Jos siellä ilmoitetut tiedot eivät riitä, voit käyttää kaatopaikkaa ( dmp tiedosto). Voit tehdä tämän käyttämällä microsoft-microsoft-virheenkorjaustyökalua, mutta se painaa paljon, vaatii asennuksen ja kehyksen 4.5 olemassaolon. Voit pärjätä pienemmillä uhrauksilla, jos käytät ohjelmaa sinisen näytön näkymä . Mielestäni erittäin kätevä ohjelma, joka ei vaadi asennusta ja venäjäksi (lisää tiedosto kansioon ohjelman kanssa). Suorittamalla BlueScreenView.exe-tiedoston avaat ohjelmaliittymän, jossa tämän tietokoneen vedos on jo ladattu (oletuspolku on C:\Windows\MiniDump, jos siirryt kohtaan Asetukset-Lisäasetukset, voit määrittää eri polku, jos kopioit vedon toiseen paikkaan).

Yksi yleisimmistä Windows-vioista on järjestelmäpoikkeukset, jotka käyttäjä näkee "kuoleman sinisenä näyttönä" (BSOD). Yleensä tämä kohtalokas virhe johtuu joko ohjainten, laitteiston toimintahäiriöstä (useammin käyttöjärjestelmää ladattaessa) tai virusten ja virustentorjuntaohjelmien toiminnasta.

Kuoleman sininen näyttö sisältää tietoa poikkeuksen aiheuttaneista syistä (STOP-virhekoodin muodossa 0x0000007b), muistiosoitteet, jotka aiheuttivat poikkeuksen käytön, ja muuta hyödyllistä tietoa. Tällaista tietoa kutsutaan STOP-virheeksi, jonka muuttujaparametrit ovat vain muistiosoitteita. Joskus se sisältää myös poikkeuksen aiheuttaneen tiedoston nimen.

Kaikki nämä tiedot ovat näytöllä lyhyen aikaa (enintään 100 sekuntia), jonka jälkeen tietokone käynnistyy uudelleen. Tämän lyhyen ajan aikana muodostuu yleensä muistivedos, joka kirjoitetaan tiedostoon. Yksi tärkeimmistä ammatillisista tavoista diagnosoida vikoja on analysoida muistivedos, jota käsitellään yksityiskohtaisesti tässä artikkelissa.

Mikä on kaatopaikka

  • kaatopaikka (englanniksi) - roskakasa; kaatopaikka; reikä; slummi.
  • dump (muistivedos) - 1) dump, RAM-muistin sisällön tulostaminen tulostukseen tai näyttöön; 2) "snapshot" RAM:sta; polkumyynnin seurauksena saadut tiedot; 3) hätäpoisto, sammutus, nollaus.
  • polkumyynti - polkumyynti, polkumyynti.

Muistivedosten tallentamisen asetukset tallennetaan Windowsin järjestelmärekisteriin.

Muistin tyhjennystiedot järjestelmän rekisterissä:

Windowsin rekisteriavaimen alla kaatumisvedos määritellään seuraavilla asetuksilla:

– REG_DWORD-parametri AutoReboot, jonka arvo on 0×1 (vaihtoehto Suorita Järjestelmän ominaisuudet -valintaikkunan Boot and Restore -apuikkunan automaattinen uudelleenkäynnistys);

– REG_DWORD-parametri CrashDumpEnabled arvolla 0x0, jos muistivedosta ei luoda; 0x1 - Täysi muisti vedos; 0x2 - Ytimen muistivedos; 0×3 - Pieni muistivedos (64KB);

– REG_EXPAND_SZ DumpFile-parametri, jonka oletusarvo on %SystemRoot%\MEMORY.DMP (vedostiedoston tallennuspaikka);

– REG_DWORD-parametri LogEvent, jonka oletusarvo on 0×1 (käynnistys- ja palautusikkunassa vaihtoehto Kirjoita tapahtuma järjestelmälokiin);

– REG_EXPAND_SZ-parametri MinidumpDir oletusarvolla %SystemRoot%\Minidump (Käynnistys- ja palautusikkunan vaihtoehto Pieni vedoskansio);

– REG_DWORD-parametri Overwrite oletusarvolla 0×1 (vaihtoehto Korvaa Load and Restore -ikkunan olemassa oleva vedostiedosto);

– REG_DWORD-parametri SendAlert, jonka oletusarvo on 0x1 (Käynnistys- ja palautusikkunan vaihtoehto Lähetä järjestelmänvalvojan ilmoitus).

Kuinka järjestelmä luo kaatumisvedostiedoston

Käynnistyksen aikana käyttöjärjestelmä tarkistaa rekisteriavaimen kaatumisvedosasetukset. Jos vähintään yksi parametri on määritetty, järjestelmä luo kartan käynnistystaltiolla olevan sivutustiedoston varaamista levylohkoista ja tallentaa sen muistiin. Järjestelmä määrittää myös, mikä levylaiteohjain ohjaa käynnistysvoimakkuutta, laskee tarkistussummat ohjaimen muistin näköistiedostolle ja tietorakenteille, joiden on oltava kokonaislukuja, jotta ohjain voi suorittaa I/O-toimintoja.

Kaatumisen jälkeen järjestelmäydin tarkistaa sivutiedostokartan, levyohjaimen ja levyohjaimen ohjausrakenteiden eheyden. Jos näiden rakenteiden eheyttä ei rikota, järjestelmän ydin kutsuu levyohjaimen erityisiä I / O-toimintoja, jotka on suunniteltu tallentamaan muistikuva järjestelmävian jälkeen. Nämä I/O-toiminnot ovat omavaraisia ​​eivätkä ole riippuvaisia ​​järjestelmän ydinpalveluista, koska kaatumisvedosten kirjoittamisesta vastaavat ohjelmat eivät voi tehdä oletuksia siitä, mitkä järjestelmäytimen osat tai laiteohjaimet ovat vaurioituneet kaatumisen aikana. Järjestelmäydin kirjoittaa tiedot muistista sivutustiedoston sektorikartalle (sen ei tarvitse käyttää tiedostojärjestelmän ohjaimia).

Ensin järjestelmän ydin tarkistaa jokaisen vedosten tallentamiseen osallistuvan komponentin tilan. Tämä tehdään siten, että suora kirjoittaminen levyn sektoreihin ei vahingoita sivutiedoston ulkopuolella olevia tietoja. Sivutiedoston koon tulee olla 1 MB suurempi kuin fyysisen muistin koko, koska kun tietoja kirjoitetaan vedoskirjaan, syntyy otsikko, joka sisältää kaatumisvedostiedoston allekirjoituksen ja useiden tärkeiden järjestelmäytimen muuttujien arvot. Otsikko on alle 1 Mt, mutta käyttöjärjestelmä voi suurentaa (tai pienentää) sivutustiedoston kokoa vähintään 1 megatavulla.

Kun järjestelmä on käynnistynyt, Session Manager (Windows NT Session Manager; levyosoite \WINDOWS\system32\smss.exe) alustaa järjestelmän sivutiedostot käyttämällä omaa NtCreatePagingFile-toimintoaan jokaisen tiedoston luomiseen. NtCreatePagingFile määrittää, onko alustettava sivutiedosto olemassa, ja jos on, sisältääkö se vedosotsikon. Jos otsikko on olemassa, NtCreatePagingFile lähettää erityisen koodin istunnon hallintaan. Istunnonhallinta käynnistää sitten Winlogon-prosessin (Windows NT -kirjautumisohjelma; levyosoite on \WINDOWS\system32\winlogon.exe), jolle ilmoitetaan kaatumisvedosten olemassaolosta. Winlogon suorittaa SaveDump-ohjelman (Windows NT Memory Backup Program; levyosoite on \WINDOWS\system32\savedump.exe), joka jäsentää vedosotsikon ja määrittää, mitä tehdä hätätilanteessa.

Jos otsikko osoittaa vedoksen olemassaolon, SaveDump kopioi tiedot sivutiedostosta kaatumisvedostiedostoon, jonka nimen määrittää rekisteriavaimen REG_EXPAND_SZ-parametri DumpFile. Kun SaveDump kirjoittaa vedostiedostoa uudelleen, käyttöjärjestelmä ei käytä sivutiedoston osaa, joka sisältää kaatumisvedoksen. Tällä hetkellä järjestelmän ja sovellusten käytettävissä olevan näennäismuistin määrää pienentää vedosten koko (ja näytölle saattaa ilmestyä viestejä, jotka osoittavat, että virtuaalimuisti on vähissä). SaveDump ilmoittaa sitten muistinhallintaohjelmalle, että vedos on valmis, ja hallinta vapauttaa sivutiedoston osan, jossa vedos on, julkiseen käyttöön.

Kun vedostiedosto on tallennettu, SaveDump-ohjelma tallentaa kaatumisvedoksen luomisen järjestelmän tapahtumalokiin, esimerkiksi: "Tietokone käynnistettiin uudelleen kriittisen virheen jälkeen: 0x100000d1 (0xc84d90a6, 0x00000010, 0x00000000, 90xc684d). Muistikopio tallennettu: C:\WINDOWS\Minidump\Mini060309-01.dmp".

Jos Lähetä järjestelmänvalvojan ilmoitus -vaihtoehto on käytössä, SaveDump lähettää ilmoituksen järjestelmänvalvojalle.

Kaatopaikkojen tyypit

  • Täysi muistin tyhjennys kirjoittaa koko järjestelmämuistin sisällön, kun tapahtuu vakava virhe. Tämä vaihtoehto edellyttää swap-tiedoston käynnistystaltiolla, joka vastaa fyysisen RAM-muistin määrää plus 1 Mt. Oletuksena koko muistin vedos kirjoitetaan %SystemRoot%\Memory.dmp-tiedostoon. Kun uusi virhe tapahtuu ja uusi täyden ytimen vedostiedosto (tai ytimen vedos) luodaan, edellinen tiedosto korvataan (korvataan). Full Memory Dump -vaihtoehto ei ole käytettävissä tietokoneissa, joissa on 32-bittinen käyttöjärjestelmä ja 2 Gt tai enemmän RAM-muistia.

Kun tapahtuu uusi virhe ja uusi täyden muistin vedostiedosto luodaan, edellinen tiedosto korvataan.

  • Ytimen muistivedos kirjoittaa vain ytimen muistia, mikä nopeuttaa tietojen kirjoittamista lokiin äkillisen järjestelmän sammutuksen aikana. Riippuen tietokoneen fyysisen muistin määrästä, sivutustiedosto vaatii tässä tapauksessa 50–800 Mt tai kolmanneksen tietokoneen fyysisestä muistista käynnistystaltiolla. Oletuksena ytimen muistivedos kirjoitetaan %SystemRoot%\Memory.dmp-tiedostoon.

Tämä vedos ei sisällä varaamatonta muistia tai käyttäjätilan ohjelmille varattua muistia. Se sisältää vain Windows 2000:ssa ja uudemmissa ytimen ja laitteiston riippuvaiselle kerrokselle (HAL) varatun muistin sekä ydintilan ohjaimille ja muille ydintilan ohjelmille varatun muistin. Useimmissa tapauksissa tällainen kaatopaikka on suositeltava vaihtoehto. Se vie paljon vähemmän tilaa kuin täysi muistivedos, mutta sulkee pois vain ne muistin osat, jotka eivät todennäköisesti liity virheeseen.
Kun uusi virhe tapahtuu ja uusi ytimen vedostiedosto luodaan, edellinen tiedosto korvataan.

  • Pieni muistin tyhjennys tallentaa pienimmän määrän hyödyllistä tietoa, joka tarvitaan ongelman syyn määrittämiseen. Pienen muistivedoksen luomiseksi sivutustiedoston koon on oltava vähintään 2 Mt käynnistystaltiolla.

Pienet muistivedostiedostot sisältävät seuraavat tiedot:

  • kohtalokas virheilmoitus, sen parametrit ja muut tiedot;
  • luettelo ladatuista ohjaimista;
  • prosessorikonteksti (PRCB), joka epäonnistui;
  • prosessitiedot ja ytimen konteksti (EPROCESS) virheen aiheuttaneelle prosessille;
  • käsitellä tiedot ja ytimen konteksti (ETHREAD) virheen aiheuttaneelle säikeelle;
  • virheen aiheuttaneen säikeen ydintilan kutsupino.

Pientä muistivedostiedostoa käytetään, kun kiintolevytilaa on rajoitetusti. Kuitenkin sen sisältämien rajallisten tietojen vuoksi tämän tiedoston jäsentäminen ei välttämättä aina havaitse virheitä, jotka eivät ole suoraan aiheutuneet virheen tapahtuessa käynnissä olleesta säikeestä.

Jos seuraava virhe tapahtuu ja toinen pieni muistivedostiedosto luodaan, edellinen tiedosto säilyy. Jokaiselle lisätiedostolle annetaan yksilöllinen nimi. Päivämäärä on koodattu tiedostonimeen. Esimerkiksi Mini051509-01.dmp on ensimmäinen muistivedostiedosto, joka luotiin 15. toukokuuta 2009. Kansioon on tallennettu luettelo kaikista pienistä muistivedostiedostoista. %SystemRoot%\Minidump.

Windows XP -käyttöjärjestelmä on epäilemättä paljon luotettavampi kuin aiemmat versiot, kiitos sekä Microsoftin kehittäjien, laitteisto-ohjainkehittäjien että sovellusohjelmistojen kehittäjien ponnistelujen. Hätätilanteet - kaikenlaiset järjestelmähäiriöt ja kaatumiset - ovat kuitenkin väistämättömiä, ja riippuu siitä, onko tietokoneen käyttäjällä tietoja ja taitoja niiden poistamiseen, hänen on käytettävä useita minuutteja vianetsintään (esimerkiksi ajurin päivittämiseen / virheenkorjaukseen tai järjestelmän kaatumisen aiheuttavan sovellusohjelman uudelleenasentaminen) tai useita tunteja käyttöjärjestelmän ja sovellusohjelmiston uudelleenasentamiseen/määrittämiseen (mikä ei takaa, että tulevaisuudessa ei tapahdu vikoja ja kaatumisia!).

Monet järjestelmänvalvojat laiminlyövät edelleen Windowsin kaatumisvedosten analysoinnin, koska he uskovat, että niiden kanssa työskentely on liian vaikeaa. Vaikeaa, mutta mahdollista: vaikka esimerkiksi yhden kaatopaikan analyysi kymmenestä osoittautuisi onnistuneeksi, ponnistelut, jotka on käytetty yksinkertaisimpien törmäyskaatopaikkojen analysointitekniikoiden hallitsemiseen, eivät ole turhia!..

Annan esimerkkejä "sysadmin"-käytännöstäni.

Paikallisessa verkossa ilman näkyvää syytä ("laitteisto" on kunnossa, virusten puuttuminen on taattu, käyttäjät - "normaaleilla käsillä"), useita Windows XP SP1/SP2 -työasemia "on-board" kuoli. Tietokoneita ei voitu ladata normaalitilassa - se tuli "Tervehdys" - ja käynnistää uudelleen määräämättömäksi ajaksi. Samaan aikaan, vikasietotilassa, tietokone ladattiin.

Muistivedosten tutkiminen mahdollisti toimintahäiriön syyn tunnistamisen: syyllinen osoittautui Kaspersky-virustorjuntaohjelmaksi, tarkemmin sanoen tuoreiksi virustorjuntatietokantoiksi (tarkemmin sanottuna kaksi tietokantamoduulia - base372c.avc, base032c.avc).

…Oli toinenkin tällainen tapaus. Paikallisessa Windows XP SP3 -tietokoneessa tapahtui uudelleenkäynnistys yrittäessään avata .avi- ja .mpeg-videotiedostoja. Muistivedosten tutkiminen mahdollisti toimintahäiriön syyn tunnistamisen - NVIDIA GeForce 6600 -näytönohjaimen ajurin nv4_disp.dll-tiedoston. Ajurin päivityksen jälkeen vika korjattiin. Yleensä nv4_disp.dll-ohjain on yksi epävakaimmista ohjaimista, mikä usein johti BSOD:iin.

Molemmissa tapauksissa törmäyskaappauksen tutkiminen mahdollisti diagnoosin ja vianmäärityksen minimoinnin (useita minuutteja!).

Muistin tyhjennysanalyysi

On olemassa monia ohjelmia kaatopaikkojen analysoimiseen, esimerkiksi DumpChk, Kanalyze, WinDbg.

Tarkastellaan muistin kaatumisvedosten analysointia WinDbg-ohjelman avulla (sisältyy Windowsin virheenkorjaustyökaluihin).

Vianetsintätyökalujen asentaminen

  • käy Microsoftin Web-sivustossa http://www.microsoft.com/whdc/devtools/debugging/default.mspx;
  • lataa Debugging Tools for Windows, esimerkiksi Windowsin 32-bittiselle versiolle. Voit tehdä tämän Lataa Windowsin virheenkorjaustyökalut -sivulla.
  • latauksen jälkeen suorita asennustiedosto;
  • Napsauta Windowsin ohjatun asennustoiminnon virheenkorjaustyökalut -ikkunassa Seuraava;
  • aseta lisenssisopimuksen ikkunassa kytkin Hyväksyn –> Seuraava;
  • valitse seuraavassa ikkunassa asennustyyppi (oletusarvoisesti virheenkorjaustyökalut asennetaan kansioon \Program Files\Debugging Tools for Windows) –> Seuraava –> Asenna –> Valmis;
  • Muistivedostiedostojen tulkitsemiseksi sinun on myös ladattava symbolipaketti (symbolipaketit, ns. symbolitiedostot tai virheenkorjaussymbolitiedostot) Windows-versiollesi - siirry Lataa Windows-symbolipaketit -sivulle;
  • valitse Windows-versiosi, lataa ja suorita Symbol Packages -asennustiedosto;
  • napsauta lisenssisopimuksen sisältävässä ikkunassa Kyllä;
  • valitse seuraavassa ikkunassa asennuskansio (oletus on \WINDOWS\Symbols) –> OK –> Kyllä;
  • Microsoft Windows Symbols -ikkunassa, jossa on viesti "Asennus on valmis", napsauta OK.

WinDbg:n käyttäminen kaatumisvedosten analysointiin

  • suorita WinDbg (oletusarvoisesti se on asennettu kansioon \Program Files\Debugging Tools for Windows);
  • valitse valikosta Tiedosto –> Symbolitiedostopolku…;
  • Napsauta Symbol Search Path -ikkunassa Selaa… -painiketta;
  • Määritä Selaa kansioita -ikkunassa Symbols-kansion sijainti (oletuksena - \WINDOWS\Symbols) –> OK –> OK;
  • valitse valikosta Tiedosto –> Avaa Crash Dump… (tai paina Ctrl + D);
  • Avaa kaatumisvedos -ikkunassa määritä Crash Dump -tiedoston sijainti (*.dmp) –> Avaa;
  • Työtila-ikkunassa, jossa on kysymys "Tallenna tiedot työtilaan?", valitse "Älä kysy uudelleen -> Ei;
  • Command Dump -ikkuna avautuu WinDbg-ikkunaan<путь_и_имя_файла_дампа>dump-analyysillä;
  • tarkista muistivedosanalyysi;
  • "Bugcheck Analysis" -osiossa ilmoitetaan mahdollinen kaatumisen syy, esimerkiksi "Todennäköisesti aiheuttaja: smwdm.sys (smwdm + 454d5)";
  • nähdäksesi yksityiskohtaiset tiedot, napsauta linkkiä "!analyze -v" rivillä "Käytä !analyze -v:tä saadaksesi yksityiskohtaisia ​​virheenkorjaustietoja";
  • sulje WinDbg;
  • käyttää saatuja tietoja vian syyn poistamiseen.

Esimerkiksi seuraavassa kuvakaappauksessa toimintahäiriön syy on näytönohjaimen ohjaimen nv4_disp.dll-tiedosto.

Kaikki Windows-järjestelmät, kun vakava virhe havaitaan, tekevät hätävedoksen (snapshot) RAM-muistin sisällöstä ja tallentavat sen kiintolevylle. Muistivedoksia on kolmenlaisia:

Full memory dump - tallentaa koko RAM-muistin sisällön. Tilannekuvan koko on yhtä suuri kuin RAM-muistin koko + 1 Mt (otsikko). Sitä käytetään hyvin harvoin, koska järjestelmissä, joissa on paljon muistia, vedoskoko on liian suuri.

Ytimen muistivedos - tallentaa vain ytimen tilaan liittyvät RAM-tiedot. Käyttäjätilan tietoja ei tallenneta, koska ne eivät sisällä tietoja järjestelmän kaatumisen syystä. Dump-tiedoston koko riippuu RAM-muistin koosta ja vaihtelee 50 Mt:sta (järjestelmille, joissa on 128 Mt RAM) 800 Mt:iin (järjestelmille, joissa on 8 Gt RAM-muistia).

Pieni muistivedos (mini dump) - sisältää melko pienen määrän tietoa: virhekoodin parametreineen, luettelon RAM-muistiin ladatuista ohjaimista järjestelmän kaatumisen aikana jne., mutta tämä tieto riittää tunnistamaan epäonnistuneen ohjaimen . Toinen tämän tyyppisen dumpin etu on pieni tiedostokoko.

Järjestelmän asennus

Sen aiheuttaneen ohjaimen tunnistamiseksi riittää, että käytämme pientä muistivedosta. Jotta järjestelmä voi tallentaa minikaappauksen kaatumisen aikana, sinun on suoritettava seuraavat vaiheet:

Windows XP:lle Windows 7:lle
  1. Tietokoneeni Ominaisuudet
  2. Siirry välilehteen Lisäksi;
  3. Vaihtoehdot;
  4. Kentällä Kirjoitetaan virheenkorjaustietoja valita Pieni muistivedos (64 kt).
  1. Napsauta kuvaketta hiiren kakkospainikkeella Tietokone valitse pikavalikosta Ominaisuudet(tai näppäinyhdistelmä Win+Pause);
  2. Napsauta vasemmanpuoleisessa valikossa kohdetta Järjestelmän lisäasetukset;
  3. Siirry välilehteen Lisäksi;
  4. Napsauta Lataa ja palauta -kentässä -painiketta Vaihtoehdot;
  5. Kentällä Kirjoitetaan virheenkorjaustietoja valita Pieni muistivedos (128 kt).

Kun kaikki käsittelyt on tehty, jokaisen BSoD:n jälkeen tiedosto, jonka pääte on .dmp, tallennetaan kansioon C:\WINDOWS\Minidump. Suosittelen lukemaan materiaalin "". Voit myös valita ruudun " Korvaa olemassa oleva vedostiedosto". Tässä tapauksessa jokainen uusi kaatumisvedos korvaa vanhan. En suosittele tämän vaihtoehdon ottamista käyttöön.

Crash Dump -analyysi BlueScreenView-sovelluksella

Joten kuoleman sinisen näytön ilmestymisen jälkeen järjestelmä tallensi uuden kaatopaikan. Vedon analysoimiseksi suosittelen BlueScreenView-ohjelman käyttöä. Sen voi ladata ilmaiseksi. Ohjelma on varsin kätevä ja siinä on intuitiivinen käyttöliittymä. Asennuksen jälkeen ensimmäinen asia on määrittää muistivedosten tallennuspaikka järjestelmässä. Voit tehdä tämän siirtymällä valikkokohtaan " Vaihtoehdot" ja valitse " Pitkälle kehittynytVaihtoehdot". Valitse valintanappi ladataalkaentheseurataMini kaatopaikkakansio” ja määritä kansio, johon kaatopaikat on tallennettu. Jos tiedostot on tallennettu C:\WINDOWS\Minidump-kansioon, voit napsauttaa " Oletus". Napsauta OK ja siirry ohjelman käyttöliittymään.

Ohjelma koostuu kolmesta päälohkosta:

  1. Päävalikkolohko ja ohjauspaneeli;
  2. Crash dump luettelo estää;
  3. Valituista parametreista riippuen se voi sisältää:
  • luettelo kaikista RAM-muistissa olevista ohjaimista ennen sinisen näytön ilmestymistä (oletus);
  • luettelo RAM-pinossa sijaitsevista ohjaimista;
  • kuvakaappaus BSoD:stä;
  • ja muita arvoja, joita emme käytä.

Valitse muistivedosluettelolohkosta (merkitty kuvassa numerolla 2) kiinnostava dump ja katso luetteloa RAM-muistiin ladatuista ohjaimista (merkitty kuvassa numerolla 3). Muistipinossa olleet ajurit ovat vaaleanpunaisia. Ne ovat BSoD:n syy. Siirry seuraavaksi ohjaimen päävalikkoon ja määritä, mihin laitteeseen tai ohjelmaan ne kuuluvat. Ensinnäkin, kiinnitä huomiota ei-järjestelmätiedostoihin, koska järjestelmätiedostot ladataan joka tapauksessa RAM-muistiin. On helppo nähdä, että myfault.sys on viallinen ohjain kuvassa. Sanon, että tämä ohjelma käynnistettiin erityisesti Stop-virheen aiheuttamiseksi. Kun olet tunnistanut epäonnistuneen ohjaimen, sinun on joko päivitettävä se tai poistettava se järjestelmästä.

Jotta ohjelma voisi näyttää luettelon ajureista, jotka ovat muistipinossa BSoD:n esiintymisen aikana, sinun on siirryttävä valikkokohtaan " Vaihtoehdot"klikkaa valikkoa" AlempiPane-tilassa" ja valitse " VainKuljettajatLöytyiSisäänPino" (tai paina F7-näppäintä) ja näyttöön tulee kuvakaappaus virheestä valitsemalla " SininenNäyttösisäänXPtyyli” (F8). Palataksesi kaikkien ohjainten luetteloon, sinun on valittava kohta " KaikkiKuljettajat” (F6).