Dump memorije pada. Dump memorije za rušenje Windows Šta znači dump memorije?

Ova kratka napomena ima za cilj da pokaže kako možete da konfigurišete sistem da biste dobili hitan slučaj dump Windows memorija , odnosno dump koji se može kreirati ako dođe do kritičnog kvara, karakteriziranog pojavom plavog ekrana smrti (BSOD). Šta je uopšte deponija, zašto nam je potrebna i šta je to, koje probleme treba da reši i koje informacije sadrži?

Dump memorije - sadržaj radne memorije procesa, kernela ili cijele operativni sistem, koji pored radnih prostora obuhvata, Dodatne informacije o stanju registara procesora, sadržaju steka i drugim uslužnim strukturama.

Zašto bi nam ovaj sadržaj mogao biti potreban, tj. Dump Windows memorije? Možda je najčešća upotreba memorije za proučavanje uzroka kvara sistema (), koji je uzrokovao potpuno zaustavljanje operativnog sistema. Pored ovoga, stanje memorije se može koristiti u druge svrhe. Također je važno da je memorijski dump doslovno jedini način da se dobije informacija o bilo kakvom kvaru! A uzimanje (dobivanje) deponije sistemske memorije je, u stvari, jedina tačna metoda za dobijanje trenutnog otiska prsta (kopije) sadržaja fizička memorija sistemima.

Što preciznije sadržaj dumpa odražava stanje memorije u trenutku kvara, to ćemo detaljnije moći analizirati hitnu situaciju. Stoga je izuzetno važno da dobijete ažurnu kopiju fizičke memorije sistema u strogo definisanom trenutku koji neposredno prethodi kvaru. A jedini način da to učinite je da napravite potpuni dump. Razlog je sasvim trivijalan - kada dođe do crash dump sistemske memorije, bilo kao rezultat kvara ili kao rezultat vještački simulirane situacije, sistem je u ovom trenutku primanja kontrole nad funkcijama za hitne slučajeve (KeBugCheckEx) u apsolutno nepromijenjeno (statično) stanje, dakle, između trenutka nastanka kvara i trenutka upisivanja podataka na medij, ništa ne mijenja sadržaj fizičke memorije, a na disk se upisuje u izvornom stanju. Pa, to je u teoriji, ali povremeno u životu, ali postoje situacije u kojima se zbog neispravnih hardverskih komponenti sam memorijski dump može oštetiti ili se stanica može zamrznuti dok snima dump.

U velikoj većini slučajeva, od trenutka kada počne proces kreiranja dumpa memorije do kraja upisivanja sadržaja memorije na disk, informacije u memoriji ostaju nepromijenjene.

Teoretski, statičnost (nepromjenjivost) memorijskog „otiska prsta“ objašnjava se činjenicom da je kada se pozove funkcija KeBugCheckEx, koja prikazuje informacije o kvaru i pokreće proces kreiranja memorijskog dumpa, sistem već potpuno zaustavljen i sadržaj fizičke memorije se upisuje u blokove koje na disku zauzima datoteka stranične memorije, nakon čega se, tokom naknadnog učitavanja operativnog sistema, resetuje u datoteku na sistemskom mediju. Pa, skoro jednom sam uočio situaciju u kojoj je neispravan matična ploča spriječilo me da sačuvam dump memorije: a) zamrzavanje dok je pokrenuta logika čuvanja dump-a (proces nije dostigao 100%), b) oštećenje datoteke s dumpom memorije (debuger se žalio na strukture), c) pisanje memory.dmp dump-a datoteke nulte dužine. Stoga, uprkos činjenici da je sistem već potpuno zaustavljen u trenutku kreiranja memorijskog dump-a, a radi samo kod za hitne slučajeve, neispravan hardver može izvršiti prilagođavanja bilo koje logike bez izuzetka u bilo kojoj fazi rada.
Tradicionalno, u početnoj fazi, blokovi diska dodijeljeni datoteci stranice koriste se za spremanje Windows memorije. Zatim, nakon što se pojavi plavi ekran i ponovno pokretanje, podaci se premještaju zaseban fajl, a zatim se datoteka preimenuje pomoću obrasca ovisno o tipu dump-a. Međutim, počevši od verzije Windows Vista, ovo stanje stvari se može promijeniti sada korisniku daje mogućnost da sačuva odabrani dump bez učešća swap datoteke, stavljajući informacije o neuspjehu u privremenu datoteku. Ovo je učinjeno kako bi se eliminisale konfiguracijske greške povezane s neispravno podešavanje veličina i pozicija datoteke stranične memorije, što je često dovodilo do problema tokom procesa čuvanja memorijskog dumpa.
Hajde da vidimo koje vrste dumpova nam operativni sistem Windows dozvoljava da kreiramo:

  • Dump memorije procesa (aplikacije);
  • Dump memorije kernela;
  • Kompletan dump memorije (dump dostupnog dijela fizičke memorije sistema).

Sve crash dumps mogu se podijeliti u dvije glavne kategorije:

  • Dumpovi pada s informacijama o izuzetku koji se dogodio. Obično nastaje u automatski način rada, kada se dogodi neobrađeni izuzetak u aplikaciji/kernelu i, shodno tome, može se pozvati sistemski (ugrađeni) debugger. U ovom slučaju, informacije o izuzetku se bilježe u dump, što olakšava određivanje vrste izuzetka i mjesta na kojem se dogodio tokom naknadne analize.
  • Dumpovi pada bez informacija o izuzetku. Obično se kreira ručno od strane korisnika kada je potrebno jednostavno napraviti snimak procesa za naknadnu analizu. Ova analiza ne podrazumijeva određivanje vrste izuzetka, jer se izuzetak nije dogodio, već analizu sasvim druge vrste, na primjer, proučavanje strukture podataka procesa i tako dalje.

Konfiguracija dumpa memorije kernela

Morate biti prijavljeni pod administrativnim račun da izvršite korake opisane u ovom odeljku.

Pređimo direktno na konfigurisanje postavki Windows crash dump. Prvo, moramo otići do prozora sa svojstvima sistema na jedan od sljedećih načina:

  1. Kliknite desni klik miš na ikonu "Moj računar" - "Svojstva" - " Dodatne opcije sistemi" - "Napredni".
  2. Dugme "Start" - "Kontrolna tabla" - "Sistem" - "Napredne postavke sistema" - "Napredno".
  3. Prečica na tastaturi "Windows" + "Pauza" - "Napredne postavke sistema" - "Napredno".

  4. kontrolni sistem.cpl,3
  5. Pokreni na komandnoj liniji (cmd):
    SystemPropertiesAdvanced

Rezultat opisanih radnji je otvaranje prozora "Svojstva sistema" i odabir kartice "Napredno":

Nakon toga, u odjeljku “Boot and Recovery” kliknemo, izaberemo “Opcije” i time otvorimo novi prozor pod nazivom “Preuzimanje i oporavak”:

Svi parametri rušenja su grupirani u blok parametara pod nazivom "System Failure". U ovom bloku možemo postaviti sljedeće parametre:

  1. Upišite događaje u sistemski dnevnik.
  2. Izvršite automatsko ponovno pokretanje.
  3. Snimanje informacija o otklanjanju grešaka.
  4. Dump fajl.
  5. Zamijenite postojeći dump fajl.

Kao što vidite, mnogi parametri sa liste su prilično trivijalni i lako razumljivi. Međutim, želio bih elaborirati parametar "Dump File". Parametar je predstavljen kao padajuća lista i ima četiri moguće vrijednosti:

Mali dump memorije

Mali dump memorije (minidump) je datoteka koja sadrži najmanju količinu informacija o grešci. Najmanji od svih mogućih memorijskih dumpova. Uprkos očiglednim nedostacima, mini-dampovi se često koriste kao informacije o neuspjehu koje treba prenijeti dobavljačima drajvera treće strane za naknadno proučavanje.
spoj:

  • Poruka o grešci.
  • Vrijednost greške.
  • Parametri greške.
  • Kontekst procesora (PRCB) na kojem se dogodio kvar.
  • Informacije procesa i kontekst kernela (EPROCESS) za proces pada i sve njegove niti.
  • Informacije o procesu i kontekst kernela (ETHREAD) za nit koja je uzrokovala pad.
  • Stek načina rada jezgre za nit koja je uzrokovala pad.
  • Lista učitanih drajvera.

Smještaj: %SystemRoot%\Minidump\MMDDYY-XXXXX-NN.dmp. Gdje je MMDDYY mjesec, dan i godina, NN je serijski broj deponije.
Volumen: Veličina zavisi od bitnosti operativnog sistema: potrebno je samo 128 kilobajta za 32-bitni i 256 kilobajta za 64-bitni OS u straničnoj datoteci (ili u datoteci navedenoj u DedicatedDumpFile). Pošto ne možemo postaviti tako malu veličinu, zaokružujemo je na 1 megabajt.

Dump memorije kernela

Ova vrsta dumpa sadrži kopiju sve memorije kernela u trenutku pada.
spoj:

  • Lista pokrenutih procesa.
  • Stanje trenutne niti.
  • Stranice memorije u režimu jezgra prisutne u fizičkoj memoriji u trenutku pada: memorija drajvera u režimu jezgra i programska memorija u režimu jezgra.
  • Memorija zavisna od hardvera (HAL).
  • Lista učitanih drajvera.

U dumpu memorije kernela nedostaju nedodijeljene memorijske stranice i stranice korisničkog načina. Slažem se, malo je vjerovatno da će nas procesne stranice korisničkog načina zanimati tokom kvara sistema (BugCheck), budući da sistemski kvar obično inicira kod načina rada kernela.

Veličina: varira u zavisnosti od veličine adresnog prostora kernela koji je dodijelio operativni sistem i broja drajvera za režim kernela. Obično je oko trećine fizičke memorije potrebno u swap datoteci (ili u datoteci navedenoj u DedicatedDumpFile). Može varirati.

Kompletan dump memorije

Dump pune memorije sadrži kopiju cjelokupne fizičke memorije (RAM) u vrijeme kvara. U skladu s tim, cijeli sadržaj sistemske memorije je uključen u datoteku. Ovo je i prednost i veliki nedostatak, jer njegova veličina može biti značajna na nekim serverima sa velikim količinama RAM-a.
spoj:

  • Sve stranice "vidljive" fizičke memorije. Ovo je skoro cela sistemska memorija, sa izuzetkom oblasti koje koristi hardver: BIOS, PCI prostor, itd.
  • Podaci iz procesa koji su bili pokrenuti na sistemu u vrijeme kvara.
  • Stranice fizičke memorije koje nisu mapirane u virtuelni adresni prostor, ali koje mogu pomoći u istraživanju uzroka kvara.

Podrazumevano, dump pune memorije ne uključuje oblasti fizičke memorije koje koristi BIOS.
Lokacija: %SystemRoot%\MEMORY.DMP . Prethodni dump je prepisan.
Volumen: Datoteka stranica (ili datoteka navedena u DedicatedDumpFile) zahtijeva volumen jednak veličini fizičke memorije + 257 megabajta (ovih 257 MB podijeljeno je na određeno zaglavlje + podatke drajvera). Zapravo, u nekim operativnim sistemima, donji prag datoteke stranične memorije može se postaviti tačno na vrijednost veličine fizičke memorije.

Automatski dump memorije

Od Windows 8/ Windows Server 2012. u sistem je uveden novi tip dumpa pod nazivom "Automatic Memory Dump", koji je postavljen kao zadani tip. U ovom slučaju, sistem sam odlučuje koji će memorijski dump snimiti u slučaju određenog kvara. Štaviše, logika izbora zavisi od mnogih kriterijuma, uključujući i učestalost „pada“ operativnog sistema.

Nakon što promijenite konfiguraciju Windows memorije, možda ćete morati ponovo pokrenuti računar.

Postavke registra

Odjeljak registra koji definira parametre ispisa rušenja:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

Opcije:

Parametar Tip Opis
AutoReboot REG_DWORD Omogućite/onemogućite automatsko ponovno pokretanje kada se pojavi BSOD.
CrashDumpEnabled REG_DWORD Vrsta deponije koja se kreira.
  • 0 - ne kreirajte dump memorije;
  • 1 - kompletan dump memorije;
  • 2 - dump memorije kernela;
  • 3 - mala memorija;
DumpFile REG_EXPAND_SZ Put i naziv dumpa memorije kernela i dumpa pune memorije.
DumpFilters REG_MULTI_SZ Filter drajvera u stogu drajvera za ispis memorije. Omogućava vam da dodate novu funkcionalnost u fazi kreiranja dumpova rušenja. Na primjer, šifriranje sadržaja dumpa. Promjena vrijednosti se ne preporučuje.
LogEvent REG_DWORD Snimanje događaja u sistemski dnevnik.
MinidumpDir REG_EZPAND_SZ Putanja i naziv malog memorijskog deponija.
MinidumpsCount REG_DWORD Maksimalan broj malih memorijskih dumpova. Kada se prekorači, starije verzije počinju da se prepisuju.
Overwrite REG_DWORD Zamijenite postojeći dump fajl. Samo za dump memorije kernela i dump pune memorije.
IgnorePagefileSize REG_DWORD Zanemaruje standardnu ​​datoteku stranice kao mjesto za privremenu (srednju) pohranu memorije. Označava da bi dump memorije trebao biti upisan u zasebnu datoteku. Koristi se u kombinaciji s opcijom DedicatedDumpFile.
DedicatedDumpFile REG_EZPAND_SZ Putanja i naziv privremene alternativne datoteke za snimanje memorije. U drugom prolazu podaci će i dalje biti premješteni u DumpFile/MinidumpDir.

Ručno kreiranje memorije

Gore smo opisali postavke za automatsko kreiranje dumpovi pada sistema u slučaju kritične greške, odnosno neobrađenog izuzetka u kodu kernela. Ali unutra pravi zivot, pored pada operativnog sistema, postoje situacije kada je potrebno dobiti dump sistemske memorije u određenom trenutku. Kako biti u ovom slučaju? Postoje metode za dobijanje snimka celokupne fizičke memorije, na primer korišćenjem komande .dump u WinDbg/LiveKD programima za otklanjanje grešaka. LiveKD je program koji vam omogućava da pokrenete Kd kernel debugger na pokrenutom sistemu u lokalnom načinu. WinDbg debugger također ima sličnu funkciju. Međutim, on-the-fly dump metoda nije tačna jer je dump generiran u ovom slučaju "nedosljedan" jer je potrebno vrijeme da se generiše dump, a u slučaju korištenja ispravljača grešaka u načinu kernela, sistem nastavlja da radi i stvara promjene na memorijskim stranicama.

Uglavnom, vi, kao korisnik, ne biste trebali biti zainteresirani za memorijski dump. Ovo je samo informacija o kvaru sistema, koju bi u idealnom slučaju trebalo poslati Microsoft programerima da pronađu i poprave kritične greške. Ako se ne planirate baviti takvom dobrotvornom organizacijom, možete onemogućiti deponiju.

Onemogućavanje memorije ni na koji način neće uticati na performanse sistema. Kada koristite svoj računar, sistem ne pristupa dumpu, bilo da je uključen ili ne. Snimanje se dešava samo kada se Windows "dovede" na BSOD ( plavi ekran). Traje najviše par sekundi.

Vrste deponija

Za opći razvoj, upoznajmo se s vrstama deponija. postoje tri od njih: mala deponija, deponija jezgra i velika. Mala deponija pohranjuje najvažnije informacije o problemu. Programeri bukvalno moraju da ga sastave malo po malo. Za mali dump morate izdvojiti 2 MB virtuelne memorije (swap fajl).

Dump jezgra– najčešći tip deponije. Ova opcija je obično zadana. On bilježi svu memoriju koja je dodijeljena jezgru - stanje upravljačkih programa i podatke na nivou koji ovisi o hardveru. Za to morate izdvojiti oko 30% ukupne količine RAM-a. Na primjer, ako imate 2 GB DDR, onda dodijelite oko 700 MB za swap datoteku.

Puni dump bilježi cijeli sadržaj RAM-a. U skladu s tim, da bi to funkcioniralo, morat ćete dodijeliti isti volumen straničnoj datoteci kao RAM. Potreban nam je pun dump za režim hibernacije, kada se svi podaci iz RAM-a učitavaju na čvrsti disk.

U Windows 7, dump parametri su skriveni prilično duboko. Unesite u traku za pretragu u meniju " Počni"riječ" sistem", Na primjer.

Odaberite rezultat " Sistem" Otvoriće se prozor. U gornjem desnom uglu je lista opcija, izaberite poslednju - “ Napredne sistemske postavke».


Svaki savremeni operativni sistem je veoma složen skup različitih softverski moduli, koji rade zajedno u različite kombinacije. Mogu sadržavati greške ili mogu biti u sukobu jedna s drugom ili sa pokrenuti program. Kao rezultat toga, dolazi do pada i Windows prestaje da radi, prikazujući dobro poznati „plavi ekran smrti“. Dump memorije Windows 10 će vam pomoći da shvatite zašto se to dogodilo, a radi i u drugim verzijama. Standardno se obično ne kreiraju, pa ih morate omogućiti i koristiti za učenje specijalni programi, koji će izvući korisne informacije na razumljiv način.

Postavljanje memorije.

U suštini, ovo je "snimka" RAM-a, njegovog sadržaja u trenutku kada je došlo do kvara. Ovaj sadržaj se upisuje u zasebnu datoteku, koja se zove dump. Analizirajući ga, možete razumjeti šta je pošlo po zlu i u kojem dijelu programa je došlo do problema. Kada je sve normalno i ne dođe do kvarova, sistem ne kreira nikakve fajlove sa sadržajem memorije. Stoga ova funkcija ni na koji način ne utječe na performanse. Ali vredi da se to desi fatalna greska, što uzrokuje da se pojavi „plavi ekran“ kada se takav fajl kreira. Ovo je poseban alat koji pomaže programerima da riješe takve probleme. Redovni korisnici također može koristiti ovo da sazna koji programi uzrokuju pad sistema. Ali imajte na umu da za to morate imati određeno znanje o tome kako računari rade i softver, inače će sve ove informacije biti potpuno beskorisne. Običan korisnik nivoa „mogu ga uključiti, otkucati, isključiti“ jednostavno neće ništa razumjeti o tome.

Postavljanje memorijskih dumpova za Windows greške

Da biste vidjeli i konfigurirali, na primjer, da povećate dump Windows memorije, razmotrite verziju 7 - i dalje je popularna. Da, iu drugim verzijama to se radi na sličan način. Da biste to uradili, kliknite desnim tasterom miša na ikonu „Moj računar“ i izaberite „Svojstva“. Možete ići na drugi način - idite na "Control Panel" i odaberite "System". U oba slučaja otvoriće se isti prozor. Zatim odaberite "Napredne postavke sistema" na lijevoj strani i u malom prozoru koji se pojavi idite na karticu "Napredno". Ovdje, u odjeljku “Boot and Recovery”, kliknite na dugme “Opcije”.

  1. Mali dump - njegov volumen je samo 256 kb, tamo su zabilježene samo najopćenitije informacije.
  2. Dump memorije kernela - ovdje se bilježi status razne programe u trenutku kvara za jedno jezgro procesora. Veličina datoteke je oko 33% ukupne dostupne RAM-a. Tu je korisne informacije, što vam omogućava da identifikujete uzrok kvara, ali ga nema mnogo.
  3. Puni dump je kopija cijele RAM memorije, a veličina datoteke će biti jednaka njenom kapacitetu. Ovdje možete pronaći sve što želite. Takav dump se stvara i pri prelasku u režim hibernacije - cijeli sadržaj RAM-a jednostavno se pohranjuje na tvrdi disk, a kada se računar uključi, nastavlja da radi sa istog mjesta.

U novijim verzijama Windowsa postoji način rada „Automatsko ispis memorije“ - možete ga odabrati i to će biti sasvim dovoljno. Kao što vidite, postavljanje deponije memorije u Windows 7 nije teško. Zabilježiće se samo za vrijeme kvarova i ni na koji način neće utjecati na rad sistema.

Kako i čime otvoriti datoteku s dumpom memorije

Kada ne uspije i nastane novi fajl sa izvještajem o problemu, ipak ga morate nekako otvoriti i saznati šta piše u njemu. Datoteka ima ekstenziju dmp, ali ugrađeni alati za otvaranje su nezgodni i mogu joj se pristupiti iz komandne linije. Usput, sistem sprema ovu datoteku u svoj folder. Kako otvoriti datoteku s dumpom memorije sa dmp ekstenzijom? Za to postoje različiti uslužni programi, uključujući one od Microsofta, na primjer, Microsoft Kernel Debuggers. Može se preuzeti potpuno besplatno sa službene web stranice, ali morate uzeti u obzir da li je potrebna 32-bitna ili 64-bitna verzija. Ovaj program može otvoriti datoteke s dumpom memorije koje se nalaze u sistemski folder i pogledajte njihov sadržaj u obliku transkripta. Naravno, informacije su vrlo specifične i namijenjene stručnjacima.

Postoji još jedan popularan uslužni program - BlueScreenView. Vrlo je jednostavan i lak za korištenje. Ali prikazane informacije nije tako lako razumjeti, ali uz određeno tehničko znanje to je sasvim moguće. Crvenom bojom program na listi ističe problematične dijelove koda koji su uzrokovali plavi ekran, na primjer, određene drajvere. Ovo uvelike pojednostavljuje rad analize.

Kako izbrisati datoteku s dumpom memorije

Da li ih je uopće moguće ukloniti? Da, to su jednostavno servisne informacije za dalju analizu. Ako ste ih već pogledali ili vam nisu potrebni, možete ih sami izbrisati. na jednostavan način- Dodaj u korpu. Inače se postupno nakupljaju i počinju zauzimati puno prostora na tvrdom disku, posebno ako se napravi potpuna kopija ram memorija. Naravno, ručno pretraživanje i brisanje svih ovih datoteka nije baš ugodan zadatak. Stoga možete koristiti bilo koji uslužni program za čišćenje diska, čak i onaj koji je ugrađen u Windows, tako što ćete označiti „Izbriši sistemske datoteke" Kada proradi, svi dumpovi će također biti izbrisani. Sam sistem ne koristi ove datoteke i njihovo brisanje je potpuno sigurno.

U operativnom sistemu Windows 8, Microsoft je predstavio novi dump memorije - opciju automatskog dump memorije. Ova postavka je podrazumevano postavljena u operativnom sistemu. Windows 10 je predstavio novu vrstu dump datoteke - aktivnu memoriju. Za one koji ne znaju, u Windows 7 imamo mali dump, core dump i full core dump. Možda se pitate zašto je Microsoft odlučio kreirati ovu novu opciju za ispis memorije? Prema Robertu Simpkinsu, višem inženjeru podrške, automatski dump memorije može stvoriti podršku za „sistemsku“ stranicu u konfiguracijskoj datoteci.
Sistem za upravljanje konfiguracijom datoteke stranične memorije odgovoran je za upravljanje veličinom datoteke stranične stranice - time se izbjegava nepotreban prostor za zaglavljanje ili veličina datoteke stranice. Ova opcija je uvedena uglavnom za računare koji rade na SSD diskovima, koji su obično manje veličine, ali imaju ogromnu količinu RAM-a.

Opcije za ispis memorije

Glavna prednost “Automatskog dump-a memorije” je da će omogućiti sesiji podsistema u upravitelju procesa da automatski smanji datoteku stranice na veličinu manju od veličine RAM-a. Za one koji ne znaju, sesija menadžera podsistema je odgovorna za inicijalizaciju sistema, okruženje za pokretanje za usluge i procese koji su potrebni korisniku da se prijavi u sistem. U osnovi postavlja stranicu datoteka na virtuelna memorija i pokreće proces winlogon.exe.

Ako želite promijeniti postavke automatske memorije, evo kako to učiniti. Kliknite Windows tipke+ X i odaberite - Sistem. Zatim kliknite na dugme „Napredne sistemske postavke - Napred Sistem Postavke”.

Kliknite na dugme Napredne sistemske postavke.

Ovdje možete vidjeti padajući meni gdje piše “Napredno”.

Ovdje možete birati prava opcija. Predložene opcije:

Nema memorijskih dumpova.
Mali dump memorije.
Dump memorije kernela.
Kompletan dump memorije.
Automatski dump memorije. Dodato u Windows 8.
Dump aktivne memorije. Dodato u Windows 10.
Lokacija datoteke s dumpom memorije je u datoteci %SystemRoot%\MEMORY.DMP.

Ako koristite SSD disk, onda je bolje ostaviti ga na "Automatski dump memorije"; ali ako vam treba crash dump fajl, onda je bolje da ga postavite na “small memory dump”, sa njim možete, ako želite, poslati nekome da ga pogleda.

U nekim slučajevima, možda ćete morati povećati veličinu datoteke stranice veću od RAM-a tako da može stati u punu memoriju. U takvim slučajevima morate kreirati ključ registra:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl

zove se "LastCrashTime".

Ovo će automatski povećati veličinu swap datoteke. Da biste ga kasnije smanjili, možete jednostavno ukloniti ovaj ključ.

Windows 10 je predstavio novi dump fajl koji se zove aktivna memorija dump. Sadrži samo najosnovnije i stoga je manje veličine.

Nemam način da ga testiram, ali sam kreirao ovaj ključ i pratio veličinu datoteke stranice. Znam da ću prije ili kasnije dobiti kritičnu grešku. Onda ću to provjeriti.

Možete analizirati memorijski dump datoteka Windows.dmp koristeći WhoCrashed. WhoCrashed Home je besplatni uslužni program koji nudi drajvere koji su instalirani na vaš računar jednim klikom. U većini slučajeva može identificirati neispravan upravljački program koji uzrokuje probleme vašem računaru. Ovo je crash dump analize sistema, dump memorije, a sve prikupljene informacije su ovdje predstavljene u pristupačnom obliku.

Tipično, komplet alata za otklanjanje grešaka će otvoriti dump analize. Uz ovaj uslužni program, nije vam potrebno nikakvo znanje ili vještine otklanjanja grešaka da biste saznali koji upravljački programi uzrokuju probleme na vašem računaru.

WhoCrashed se oslanja na paket za otklanjanje grešaka (program windbg) iz Microsofta. Ako ovaj paket nije instaliran, WhoCrashed će preuzeti i automatski izdvojiti ovaj paket umjesto vas. Samo pokrenite program i kliknite na dugme Analiziraj. Kada imate instaliran WhoCrashed na vašem sistemu i ako se on sruši ili se neočekivano zatvori, program će vas obavijestiti da li je na vašem računalu omogućeno crash dumping i ponudit će vam prijedloge kako da ih omogućite.

Kada dođe do kritičnog kvara, Windows operativni sistem se ruši i prikazuje Plavi ekran smrti (BSOD). Sadržaj RAM-a i sve informacije o grešci koja se javlja upisuje se u datoteku stranične memorije. Sljedeći put pokretanje Windowsa kreira se crash dump sa informacijama o otklanjanju grešaka na osnovu sačuvanih podataka. Unos kritične greške je kreiran u evidenciji sistemskih događaja.

Pažnja! Dump se ne kreira ako diskovni podsistem otkaže ili kritična greška nastao tokom početne faze pokretanja Windowsa.

Vrste Windows padova

Na primjeru sadašnje operacione sale Windows sistemi 10 (Windows Server 2016) pogledajmo glavne tipove memorijskih dumpova koje sistem može kreirati:

  • Mini dump memorije(256 KB). Ovaj tip datoteke sadrži minimalnu količinu informacija. Sadrži samo BSOD poruku o grešci, informacije o drajverima, procesima koji su bili aktivni u vrijeme pada i koji je proces ili nit kernela uzrokovao pad.
  • Dump memorije kernela. Obično male veličine - jedna trećina veličine fizičke memorije. Dump memorije kernela je detaljniji od mini dumpa. Sadrži informacije o drajverima i programima u kernel modu, uključuje dodijeljenu memoriju Windows kernel i sloj hardverske apstrakcije (HAL), kao i memoriju dodijeljenu drajverima i drugim programima u kernel modu.
  • Kompletan dump memorije. Najveće veličine i zahtijeva memoriju jednaku RAM-u vašeg sistema plus 1MB, potreban Windows da kreirate ovu datoteku.
  • Automatski dump memorije. Odgovara ispisu memorije kernela u smislu informacija. Jedina razlika je koliko prostora koristi za kreiranje dump datoteke. Ovaj tip datoteke nije postojao u Windowsu 7. Dodan je u Windows 8.
  • Dump aktivne memorije. Ovaj tip eliminiše elemente koji ne mogu utvrditi uzrok kvara sistema. Ovo je dodato u Windows 10 i posebno je korisno ako ga koristite virtuelna mašina, ili ako je vaš sistem Hyper-V host.

Kako omogućiti dumping memorije u Windowsu?

Koristeći Win+Pause, otvorite prozor postavki sistema, odaberite " Napredne sistemske postavke"(Napredne postavke sistema). U " Dodatno" (Napredno), odjeljak "" (Pokretanje i oporavak) kliknite na dugme " Opcije"(Postavke). U prozoru koji se otvori, konfigurirajte radnje koje će se poduzeti kada sistem otkaže. Provjerite " Zabilježite događaje u sistemski dnevnik" (Upišite događaj u sistemski dnevnik), odaberite tip dumpa koji bi trebao biti kreiran kada se sistem sruši. Ako je u polju za potvrdu " Zamijenite postojeći dump fajl"(Prepiši bilo koju postojeću datoteku) potvrdite okvir, datoteka će biti prepisana svaki put kada dođe do greške. Bolje je da poništite ovaj okvir, tada ćete imati više informacija za analizu. Također onemogućite Automatsko ponovno pokretanje.

U većini slučajeva, mala memorija će biti dovoljna za analizu uzroka BSOD-a.

Sada, kada se pojavi BSOD, možete analizirati dump datoteku i pronaći uzrok kvara. Mini dump je po defaultu sačuvan u folderu %systemroot%\minidump. Za analizu dump datoteke preporučujem korištenje programa WinDBG(Microsoft Kernel Debugger).

Instalacija WinDBG na Windows

Utility WinDBG uključeno u " Windows 10 SDK"(Windows 10 SDK). .

Fajl je pozvan winsdksetup.exe, veličina 1,3 MB.

Pokrenite instalaciju i odaberite šta tačno želite da uradite - instalirajte paket na ovom računaru ili ga preuzmite za instalaciju na drugim računarima. Hajde da instaliramo paket na lokalni računar.

Možete instalirati cijeli paket, ali da biste instalirali samo alat za otklanjanje grešaka, odaberite Alati za otklanjanje grešaka za Windows.

Nakon instalacije, WinDBG prečice se mogu naći u start meniju.

Postavljanje povezivanja .dmp datoteka sa WinDBG

Da biste otvorili dump datoteke jednostavnim klikom, mapirajte ekstenziju .dmp u uslužni program WinDBG.

  1. Otvori komandna linija kao administrator i pokrenite komande za 64-bitni sistem: cd C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
    windbg.exe –IA
    za 32-bitni sistem:
    C:\Program Files (x86)\Windows Kits\10\Debuggers\x86
    windbg.exe –IA
  2. Kao rezultat toga, tipovi datoteka: .DMP, .HDMP, .MDMP, .KDMP, .WEW će biti mapirani u WinDBG.

Postavljanje servera simbola za otklanjanje grešaka u WinDBG

Simboli za otklanjanje grešaka (simboli za otklanjanje grešaka ili datoteke simbola) su blokovi podataka koji se generišu tokom kompilacije programa zajedno sa izvršnom datotekom. Takvi blokovi podataka sadrže informacije o imenima varijabli, zvanim funkcijama, bibliotekama itd. Ovi podaci nisu potrebni prilikom izvršavanja programa, ali su korisni pri otklanjanju grešaka. Microsoft komponente su kompajlirane sa simbolima distribuiranim preko Microsoft Symbol Servera.

Konfigurirajte WinDBG da koristi Microsoft Symbol Server:

  • Open WinDBG;
  • Idi na meni File –> Symbol File Path;
  • Napišite red koji sadrži URL za preuzimanje simbola za otklanjanje grešaka sa Microsoft veb lokacije i fasciklu za čuvanje keša: SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/symbols U primeru, keš se preuzima u folder E:\Sym_WinDBG, možete označiti bilo koji.
  • Ne zaboravite da sačuvate promene u meniju File–>Save WorkSpace;

WinDBG će tražiti simbole u lokalnom folderu i, ako u njemu ne pronađe potrebne simbole, automatski će preuzeti simbole sa navedenog sajta. Ako želite da dodate svoj folder sa simbolima, to možete učiniti na sledeći način:

SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/symbols;c:\Symbols

Ako nemate internet vezu, prvo preuzmite paket simbola sa resursa Windows Symbol Packages.

Analiza crash dumpa u WinDBG

WinDBG debugger otvara dump datoteku i učitava potrebne simbole za otklanjanje grešaka iz lokalni folder ili sa interneta. Ne možete koristiti WinDBG tokom ovog procesa. Na dnu prozora (u komandnoj liniji za otklanjanje grešaka) pojavljuje se poruka Debugee nije povezan.

Komande se unose u komandnu liniju koja se nalazi na dnu prozora.

Najvažnija stvar na koju treba obratiti pažnju je kod greške, koji je uvijek naveden heksadecimalno i ima oblik 0xXXXXXXXX(naznačeno u jednoj od opcija - STOP: , 07/02/2019 0008F, 0x8F). U našem primjeru, kod greške je 0x139.

Program za otklanjanje grešaka nudi pokretanje komande!analyze -v, samo pređite mišem preko veze i kliknite. Čemu služi ova komanda?

  • Izvodi preliminarnu analizu dump memorije i pruža detaljne informacije da započnete analizu.
  • Ova komanda će prikazati STOP kod i simbolički naziv greške.
  • Prikazuje hrpu komandnih poziva koji su doveli do pada.
  • Osim toga, ovdje se prikazuju greške IP adrese, procesa i registra.
  • Tim može dati gotove preporuke za rješavanje problema.

Glavne tačke na koje biste trebali obratiti pažnju kada analizirate nakon izvršenja naredbe!analyze –v (navođenje nepotpuno).

1: kd> !analiziraj -v


* *
* Bugcheck analiza *
* *
*****************************************************************************
Simbolički naziv STOP greške (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)
Opis greške (Komponenta kernela je oštetila kritičnu strukturu podataka. Ova korupcija bi potencijalno mogla omogućiti napadaču da preuzme kontrolu nad ovom mašinom):

Komponenta kernela je oštetila kritičnu strukturu podataka. Oštećenje bi potencijalno moglo omogućiti zlonamjernom korisniku da preuzme kontrolu nad ovom mašinom.
Argumenti greške:

Argumenti:
Arg1: 0000000000000003, LIST_ENTRY je oštećen (tj. dvostruko uklanjanje).
Arg2: ffffd0003a20d5d0, Adresa okvira trap za izuzetak koji je izazvao bugcheck
Arg3: ffffd0003a20d528, Adresa zapisa izuzetka za izuzetak koji je izazvao bugcheck
Arg4: 0000000000000000, rezervirano
Detalji otklanjanja grešaka:
------------------

Brojač pokazuje koliko se puta sistem srušio sa sličnom greškom:

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY

STOP kod greške u skraćenom formatu:

BUGCHECK_STR: 0x139

Proces tokom kojeg je došlo do kvara (ne nužno uzrok greške, upravo u vrijeme kvara ovaj proces je bio pokrenut u memoriji):

PROCESS_NAME: sqlservr.exe

Opis šifre greške: Sistem je otkrio prelijevanje međuspremnika steka u ovoj aplikaciji, što bi moglo omogućiti napadaču da preuzme kontrolu nad ovom aplikacijom.

ERROR_CODE: (NTSTATUS) 0xc0000409 - Sistem je otkrio prekoračenje bafera baziranog na steku u ovoj aplikaciji. Ovo prekoračenje potencijalno može omogućiti zlonamjernom korisniku da preuzme kontrolu nad ovom aplikacijom.
EXCEPTION_CODE: (NTSTATUS) 0xc0000409 - Sistem je otkrio prekoračenje bafera baziranog na steku u ovoj aplikaciji. Ovo prekoračenje potencijalno može omogućiti zlonamjernom korisniku da preuzme kontrolu nad ovom aplikacijom.

Zadnji poziv na stacku:

LAST_CONTROL_TRANSFER: sa fffff8040117d6a9 na fffff8040116b0a0

Stog poziva u trenutku kvara:

STACK_TEXT:
ffffd000`3a20d2a8 fffff804`0117d6a9: 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`3a20dhe!
ffffd000`3a20d2b0 fffff804`0117da50: ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2: 0116e2a2: 0116e2a2: Butch
FFFD000`3A20D3F0 FFFFF804`0117C150: 0000000000 000000 000000 00000000 000000 00000000 000000`0000000 0000000`0000000
ffffd000`3a20d5d0 fffff804`01199482: ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000006Kickise3
ffffd000`3a20d760 fffff804`014a455d: 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951 ?? ::FNODOBFM::`string"+0x17252
ffffd000`3a20d8c0 fffff804`013a34ac: 00000000`00000004 00000000`00000000 ffffd000`3a20d9d8 ffffe001`0a34c7er 0a34c7 000000000
ffffd000`3a20d990 fffff804`0117d313: ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380: 000000eb`a0cf1380:
ffffd000`3a20da90 00007ffb`475307da: 00000000`00000000 00000000`00000000 00000000`00000000 00000000 00000000`0 vice x 13
000000ee`f25ed2b8 00000000`00000000: 00000000`00000000 00000000`00000000 00000000`00000000`00000000`00000000 0000007 3 07da

Odjeljak koda u kojem je došlo do greške:

FOLLOWUP_IP:
nt!KiFastFailDispatch+d0
fffff804`0117da50 c644242000 mov byte ptr ,0
FAULT_INSTR_CODE: 202444c6
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: nt!KiFastFailDispatch+d0
FOLLOWUP_NAME: Vlasnik mašine

Ime modula u tabeli objekata kernela. Ako je analizator uspio otkriti problematičan drajver, ime se prikazuje u poljima MODULE_NAME i IMAGE_NAME:

MODULE_NAME:nt
IMAGE_NAME: ntkrnlmp.exe

1: kd> lmvm nt
Pregledajte kompletnu listu modula
Učitana datoteka slike simbola: ntkrnlmp.exe
Datoteka slike mapirane memorije: C:\ProgramData\dbg\sym\ntoskrnl.exe\5A9A2147787000\ntoskrnl.exe
Putanja slike: ntkrnlmp.exe
Naziv slike: ntkrnlmp.exe
Interno ime: ntkrnlmp.exe
Originalni naziv datoteke: ntkrnlmp.exe
Verzija proizvoda: 6.3.9600.18946
Verzija fajla: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)

U datom primjeru, analiza je ukazala na datoteku kernela ntkrnlmp.exe. Kada analiza memorije ukaže drajver sistema(na primjer, win32k.sys) ili datoteka kernela (kao u našem primjeru ntkrnlmp.exe), najvjerovatnije ovaj fajl nije uzrok problema. Vrlo često se ispostavi da problem leži u drajveru uređaja, BIOS postavke ili kvar opreme.

Ako vidite da je BSOD nastao zbog drajver treće strane, njegovo ime će biti naznačeno u vrijednostima MODULE_NAME i IMAGE_NAME.

Na primjer:

Putanja slike: \SystemRoot\system32\drivers\cmudaxp.sys
Naziv slike: cmudaxp.sys

Otvorite svojstva datoteke drajvera i provjerite njegovu verziju. U većini slučajeva problem sa drajverima se rešava njihovim ažuriranjem.



Učitavanje...
Top