Računala Windows Internet

Instaliranje alata za ispravljanje pogrešaka za Windows. Alati za ispravljanje pogrešaka u sustavu Windows: dijagnosticiranje i popravljanje BSOD alata za ispravljanje pogrešaka za upotrebu sustava Windows

dana 22. lipnja 2010

Ranije je Windbg bio dostupan zasebno za preuzimanje. No, za najnovije verzije Microsoft ga zadržava kao dio Windows SDK -a. U nastavku se nalaze veze za preuzimanje.

Windows 10

Najnoviju verziju Windbga za Windows 7 možete preuzeti s veze https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk

Windows 7

Preuzmite instalatere s gornjih veza. Imajte na umu da se ovim ne preuzima cijeli SDK, to je samo instalacijski program. Nakon što pokrenete datoteku, možete odabrati koje alate želite preuzeti. Ako vas zanima samo Windbg, možete isključiti sve ostalo i samo odabrati ‘Alati za otklanjanje pogrešaka’ pod ‘Uobičajeni uslužni programi’

Gornji paket instalira windbg 6.12 verziju. Ako želite brzo instalirati windbg, možete otići na stariju verziju (6.11) koju možete preuzeti s
link na kraju ovog posta.

Nakon što izvršite instalaciju, program možete pronaći u izborniku Start -> Svi programi -> Alati za ispravljanje pogrešaka za Windows -> Windbg

U trenutku kritičnog pada operacijski sustav Windows prekida rad i prikazuje plavi zaslon smrti (BSOD). Sadržaj RAM memorija a svi podaci o grešci koja se dogodila se zapisuju u datoteku straničenja. Na sljedećem podizanje sustava Windows na temelju spremljenih podataka stvara se dump rušenja s podacima za ispravljanje pogrešaka. U zapisniku događaja sustava generira se kritična pogreška.

Pažnja! Dump dump se ne generira ako podsistem diska ne uspije ili kritična greška pojavio se u početnoj fazi pokretanja sustava Windows.

Vrste dump operativnih sustava Windows

Na primjeru trenutnog operacijskog sustava Windows 10 (Windows Server 2016) razmotrit ćemo glavne vrste memorijskih ispisa koje sustav može stvoriti:

  • Mali ispis memorije(256 KB). Ova vrsta datoteke sadrži minimalnu količinu podataka. Sadrži samo poruku o pogrešci BSOD -a, podatke o upravljačkim programima, procesima koji su bili aktivni u trenutku rušenja i koji su proces ili nit jezgre uzrokovali rušenje.
  • Ispis memorije jezgre... Tipično male veličine - jedna trećina fizičke memorije. Dump memorije kernela je detaljniji od mini dumpa. Sadrži informacije o upravljačkim programima i programima u načinu rada jezgre i uključuje memoriju dodijeljenu jezgri sustava Windows i sloj apstrakcije hardvera (HAL) te memoriju dodijeljenu upravljačkim programima i drugim programima u načinu rada jezgre.
  • Potpuni ispis memorije... Najveći volumen i zahtijeva memoriju jednaku RAM -u vašeg sustava plus 1 MB, potrebni prozori za stvaranje ove datoteke.
  • Automatski ispis memorije... Informacijski odgovara dumpu memorije kernela. Razlikuje se samo u tome koliko prostora koristi za generiranje datoteke ispisa. Ova vrsta datoteke nije postojala u sustavu Windows 7. Dodana je u sustavu Windows 8.
  • Ispis aktivne memorije... Ova vrsta filtrira stavke koje ne mogu utvrditi uzrok kvara sustava. Ovo je dodano u sustavu Windows 10, a posebno je korisno ako koristite virtualni stroj ili ako je vaš sustav domaćin Hyper-V.

Kako mogu omogućiti ispis memorije u sustavu Windows?

Pomoću Win + Pause otvorite prozor postavki sustava, odaberite " Dodatni parametri sustava"(Napredne postavke sistema). Na kartici „ Dodatno"(Napredno), odjeljak" "(Pokretanje i oporavak) kliknite" Opcije"(Postavke). U prozoru koji se otvori konfigurirajte radnje u slučaju kvara sustava. Potvrdite okvir " Zapišite događaje u zapisnik sustava(Zapišite događaj u zapisnik sustava), odaberite vrstu dumpa koji će se generirati kada se sustav ruši. Ako je u potvrdnom okviru " Zamijenite postojeću datoteku ispisa"(Prebrišite bilo koju postojeću datoteku) potvrdite okvir, tada će se datoteka prebrisati pri svakom pogrešku. Bolje je ukloniti ovaj potvrdni okvir, tada ćete imati više informacija za analizu. Onemogućite i Automatsko ponovno pokretanje.

U većini slučajeva mali ispis memorije bit će dovoljan za analizu uzroka BSOD -a.

Sada, kada se pojavi BSOD, možete analizirati datoteku ispisa i pronaći uzrok rušenja. Minidump je prema zadanim postavkama spremljen u mapu% systemroot% \ minidump. Za analizu datoteke dump preporučujem korištenje programa WinDBG(Otklanjanje pogrešaka u jezgri Microsofta).

Instaliranje WinDBG -a na Windows

Korisnost WinDBG uključeno je u " SDK za Windows 10"(Windows 10 SDK). ...

Datoteka se zove winsdksetup.exe, veličina 1,3 MB.

Pokrenite instalaciju i odaberite što točno želite učiniti - instalirajte paket na ovo računalo ili ga preuzmite za instalaciju na druga računala. Instalirajte paket na lokalno računalo.

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

Nakon instaliranja, WinDBG prečaci se mogu pronaći u izborniku Start.

Konfiguriranje povezivanja .dmp datoteka s WinDBG -om

Da biste otvorili datoteke ispisa jednostavnim klikom, povežite proširenje .dmp s uslužnim programom WinDBG.

  1. Otvoriti naredbeni redak kao administrator i pokrenite naredbe za 64-bitni sustav: cd C: \ Program Files (x86) \ Windows Kits \ 10 \ Debuggers \ x64
    windbg.exe –IA
    za 32-bitni sustav:
    C: \ Program Files (x86) \ Windows Kits \ 10 \ Debuggers \ x86
    windbg.exe –IA
  2. Kao rezultat toga, vrste datoteka: .DMP, .HDMP, .MDMP, .KDMP, .WEW - bit će povezane s WinDBG -om.

Postavljanje poslužitelja simbola za otklanjanje pogrešaka u WinDBG -u

Simboli za otklanjanje pogrešaka (simboli za otklanjanje pogrešaka ili datoteke simbola) blokovi su podataka koji se generiraju tijekom sastavljanja programa zajedno s izvršnom datotekom. Takvi blokovi podataka sadrže informacije o nazivima varijabli, nazvanim funkcijama, knjižnicama itd. Ti podaci nisu potrebni pri izvršavanju programa, ali su korisni pri ispravljanju pogrešaka. Microsoftove komponente sastavljene su sa simbolima distribuiranim putem Microsoft Symbol Servera.

Konfigurirajte WinDBG na korištenje Microsofta Poslužitelj simbola:

  • Otvorite WinDBG;
  • Idite na izbornik Datoteka –> Putanja datoteke sa simbolima;
  • Dodajte redak koji sadrži URL za preuzimanje simbola za otklanjanje pogrešaka s Microsoftove web stranice i mapu za spremanje predmemorije: SRV * E: \ Sym_WinDBG * http: //msdl.microsoft.com/download/symbols U primjeru se predmemorija učitava u mapu E: \ Sym_WinDBG možete navesti bilo koju.
  • Ne zaboravite spremiti promjene u izbornik Datoteka–>Spremi radni prostor;

WinDBG će tražiti simbole u lokalnoj mapi i, ako u njoj ne pronađe potrebne simbole, automatski će preuzeti simbole s navedene web stranice. Ako želite dodati vlastitu mapu sa simbolima, to možete učiniti ovako:

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

Ako nemate internetsku vezu, prvo preuzmite paket simbola s resursa Windows Symbol Packages.

Analiza dumpa rušenja u WinDBG -u

Otklanjanje pogrešaka u WinDBG -u otvara datoteku ispisa i preuzima potrebne simbole za ispravljanje pogrešaka iz lokalne mape ili s Interneta. Tijekom ovog procesa ne možete koristiti WinDBG. Pri dnu prozora (u naredbenom retku ispravljača pogrešaka) pojavljuje se natpis Debugee nije povezan.

Naredbe se unose u naredbeni redak koji se nalazi pri dnu prozora.

Najvažnije na što treba obratiti pozornost je kôd pogreške, koji je uvijek naznačen u heksadecimalnoj vrijednosti i izgleda 0xXXXXXXXX(naznačeno u jednoj od opcija - STOP :, 02.07.2019 0008F, 0x8F). U našem primjeru kôd pogreške je 0x139.

Otklanjanje pogrešaka traži da pokrenete naredbu! Analyze -v, samo zadržite pokazivač miša iznad veze i kliknite. Čemu služi ova naredba?

  • Izvodi preliminarnu analizu ispisa memorije i pruža detaljne informacije za početak analize.
  • Ova naredba će prikazati STOP kod i simbolički naziv greške.
  • Prikazuje niz poziva naredbi koje su rezultirale abnormalnim prekidom.
  • Osim toga, ovdje se prikazuju greške u IP adresi, procesima i registrima.
  • Tim može dati gotove preporuke za rješavanje problema.

Glavne točke na koje trebate obratiti pozornost prilikom analize nakon pokretanja naredbe! Analyze –v (popis je nepotpun).

1: kd>! Analizirajte -v


* *
* Analiza pogreške *
* *
*****************************************************************************
Simbolički naziv greške STOP (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)
Opis pogreške (Komponenta jezgre oštetila je kritičnu strukturu podataka. Ta bi korupcija potencijalno mogla omogućiti napadaču da preuzme kontrolu nad ovim strojem):

Komponenta jezgre oštetila je kritičnu strukturu podataka. Korupcija bi potencijalno mogla dopustiti zlonamjernom korisniku da preuzme kontrolu nad ovim strojem.
Argumenti greške:

Argumenti:
Arg1: 0000000000000003, LIST_ENTRY je oštećen (tj. Dvostruko uklanjanje).
Arg2: ffffd0003a20d5d0, Adresa okvira zamke za iznimku koja je uzrokovala pogrešku
Arg3: ffffd0003a20d528, Adresa zapisa iznimke za iznimku koja je uzrokovala pogrešku
Arg4: 0000000000000000, Rezervirano
Detalji otklanjanja pogrešaka:
------------------

Brojač prikazuje koliko se puta sustav srušio sa sličnom pogreškom:

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY

KOD pogreške STOP u skraćenom obliku:

BUGCHECK_STR: 0x139

Postupak tijekom čijeg izvođenja je došlo do greške (nije nužno uzrok greške, upravo u vrijeme greške u memoriji ovaj je proces bio pokrenut):

PROCES_NAME: sqlservr.exe

Dešifriranje koda pogreške: Sustav je otkrio preljev međuspremnika steka u ovoj aplikaciji, što bi napadaču moglo omogućiti preuzimanje kontrole nad ovom aplikacijom.

ERROR_CODE: (NTSTATUS) 0xc0000409 - Sustav je otkrio prekoračenje međuspremnika zasnovanog na steku u ovoj aplikaciji. Ovo prekoračenje potencijalno bi moglo omogućiti zlonamjernim korisnicima da preuzmu kontrolu nad ovom aplikacijom.
EXCEPTION_CODE: (NTSTATUS) 0xc0000409 - Sustav je otkrio prekoračenje međuspremnika zasnovanog na steku u ovoj aplikaciji. Ovo prekoračenje potencijalno bi moglo omogućiti zlonamjernom korisniku da preuzme kontrolu nad ovom aplikacijom.

Zadnji poziv na stogu:

LAST_CONTROL_TRANSFER: od fffff8040117d6a9 do fffff8040116b0a0

Niz poziva u vrijeme kvara:

STACK_TEXT:
ffffd000`3a20d2a8 fffff804`0117d6a9: 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`3a20d528: nt! KeBugCheckEx
ffffd000`3a20d2b0 fffff804`0117da50: ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2: nt! KiBugCheckDispatch + 0x69
ffffd000`3a20d3f0 fffff804`0117c150: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000: nt! KiFastFailDispatch + 0xd0
ffffd000`3a20d5d0 fffff804`01199482: ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`000006f9: nt! KiRaiseSecurityCheckFailure + 0x3d0
ffffd000`3a20d760 fffff804`014a455d: 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951: nt! ?? :: FNODOBFM :: `string" + 0x17252
ffffd000`3a20d8c0 fffff804`013a34ac: 00000000`00000004 00000000`00000000 ffffd000`3a20d9d8 ffffe001`0a34c600: nt! IopSynchronousServiceTail + 0x379
ffffd000`3a20d990 fffff804`0117d313: ffffffff`fffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380: nt! NtWriteFile + 0x694
ffffd000`3a20da90 00007ffb`475307da: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000: nt! KiSystemServiceCopyEnd + 0x13
000000ee`f25ed2b8 00000000`00000000: 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000: 0x00007ffb`475307da

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

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

Naziv modula u tablici objekata jezgre. Ako analizator otkrije problematičan upravljački program, naziv se prikazuje u poljima MODULE_NAME i IMAGE_NAME:

MODUL_NAME: nt
IMAGE_NAME: ntkrnlmp.exe

1: kd> lmvm nt
Pregledajte cijeli popis modula
Učitana datoteka slike simbola: ntkrnlmp.exe
Mapirana slikovna datoteka memorije: C: \ ProgramData \ dbg \ sym \ ntoskrnl.exe \ 5A9A2147787000 \ ntoskrnl.exe
Staza slike: ntkrnlmp.exe
Naziv slike: ntkrnlmp.exe
Interno ime: ntkrnlmp.exe
Izvorni naziv datoteke: ntkrnlmp.exe
Verzija proizvoda: 6.3.9600.18946
Verzija datoteke: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)

U gornjem primjeru analiza je ukazala na datoteku jezgre ntkrnlmp.exe. Kada analiza dumpa memorije pokaže na upravljački program sustava (poput win32k.sys) ili datoteku jezgre (poput ntkrnlmp.exe u našem primjeru), najvjerojatnije je ovu datoteku nije uzrok problema. Vrlo često se ispostavi da problem leži u upravljačkom programu uređaja, Postavke BIOS -a ili kvar na hardveru.

Ako ste vidjeli da je BSOD uzrokovan upravljačkim programom treće strane, njegovo ime bit će navedeno u vrijednostima MODULE_NAME i IMAGE_NAME.

Na primjer:

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

Otvorite datoteku upravljačkog programa i provjerite njezinu verziju. U većini slučajeva problem s upravljačkim programima rješava se njihovim ažuriranjem.

Alati za ispravljanje pogrešaka za Windows- Otklanjanje pogrešaka alata za radni kod Windows sustavi... Oni su skup besplatnog Microsoftovog softvera osmišljenog za otklanjanje pogrešaka u korisničkom načinu rada i kodu u načinu rada jezgre: aplikacije, upravljački programi, usluge, moduli jezgre. Alat uključuje alatke za otklanjanje pogrešaka za načine konzole i grafičkog sučelja, pomoćne programe za rad sa simbolima, datotekama, procesima i pomoćne programe za daljinsko otklanjanje pogrešaka. Alat sadrži alate pomoću kojih možete pronaći uzroke kvarova u različitim komponentama sustava. Alati za ispravljanje pogrešaka za Windows od određenog trenutka nisu dostupni za preuzimanje u obliku samostalnog distribucijskog kompleta i uključeni su u Windows SDK (Windows Software Development Kit). Instrumentalni set Windows alati SDK je pak dostupan kao dio pretplatničkog programa MSDN ili se može slobodno preuzeti kao samostalna distribucija s stranice msdn.microsoft.com. Prema programerima, posljednji i najveći Trenutna verzija Alati za otklanjanje pogrešaka za Windows nalaze se u Windows SDK -u.

Alati za uklanjanje pogrešaka za Windows često se ažuriraju i javno stavljaju na raspolaganje, a taj proces ni na koji način ne ovisi o izdanju operacijskih sustava. Stoga povremeno provjeravajte ima li novih verzija.

Pogledajmo sada čemu služe alati za ispravljanje pogrešaka Microsoft Windows:

  • Otklanjanje pogrešaka u lokalnim aplikacijama, uslugama (uslugama), upravljačkim programima i jezgri;
  • Otklanjanje pogrešaka u udaljenim aplikacijama, uslugama (uslugama), upravljačkim programima i jezgri preko mreže;
  • Otklanjanje pogrešaka pri pokretanju aplikacija u stvarnom vremenu;
  • Analizirati datoteke ispisa memorije aplikacije, jezgre i sustava u cjelini;
  • Rad sa sustavima temeljenim na x86 / x64 / Itanium arhitekturi;
  • Otklanjanje pogrešaka u korisničkom načinu rada i programima u načinu rada jezgre;

Dostupne su sljedeće verzije Alata za ispravljanje pogrešaka za Windows: 32-bitni x86, Intel Itanium, 64-bitni x64. Trebamo ih dva: x86 ili x64.

Postoji nekoliko načina za instaliranje alata za ispravljanje pogrešaka za Windows, u ovom ćemo članku razmotriti samo glavne:

  • Instalacija putem web-instalacijskog programa.
  • Instaliranje alata za ispravljanje pogrešaka za Windows iz ISO -a Windows slika SDK.
  • Instaliranje alata za ispravljanje pogrešaka za Windows izravno iz paketa dbg_amd64.msi /dbg_x86.msi.

Ostaje nejasno u kojem trenutku, zašto bih trebao instalirati alat za otklanjanje pogrešaka na svoje računalo? Često se, uostalom, suočite sa situacijom u kojoj intervencija u radno okruženje krajnje nepoželjno! Štoviše, instalacija novog proizvoda, odnosno izmjene datoteka registra / sustava, može biti potpuno neprihvatljiva. Primjeri su poslužitelji kritični za misiju. Zašto programeri ne razmišljaju o opciji s prijenosnim (prijenosnim) verzijama aplikacija koje ne zahtijevaju instalaciju?
Postupak instalacije paketa Debugging Tools for Windows pretrpio je neke promjene od verzije do verzije. Prijeđimo odmah na postupak instalacije i pogledajmo načine na koje se alat može instalirati.

Instaliranje alata za ispravljanje pogrešaka za Windows pomoću web instalacijskog programa

Idite na stranicu Arhiva Windows SDK -a i pronađite odjeljak ispod Naziv Windows 10 i niže, pogledajte "Windows 10 SDK (10586) i Microsoft Windows 10 emulator mobilnih uređaja (verzija 10586.11)".

Kliknemo na stavku INSTALIRAJ SDK... Nakon klika preuzmite i pokrenite datoteku sdksetup.exe koja pokreće mrežnu instalaciju Windows SDK -a. U početnoj fazi instalacijski program će provjeriti je li paket .NET Framework instaliran na sustavu. Najnovija verzija(trenutno 4,5). Ako paket nedostaje, ponudit će se instalacija, a stanica će se ponovno pokrenuti po završetku. Odmah nakon ponovnog pokretanja, u fazi autorizacije korisnika, postupak instalacije započinje izravno s Windows SDK -a.

Često se prilikom odabira svih komponenti paketa bez iznimke mogu pojaviti pogreške tijekom procesa instalacije. U tom se slučaju preporučuje selektivna ugradnja komponenti, minimalno potrebni skup.

Nakon dovršetka instalacije alata za ispravljanje pogrešaka za Windows, mjesto datoteka za otklanjanje pogrešaka za ovaj način instalacije bit će sljedeće:

  • 64-bitne verzije: C: \ Program Files (x86) \ Windows Kits \ x.x \ Debuggers \ x64
  • 32-bitne verzije: C: \ Program Files (x86) \ Windows Kits \ x.x \ Debuggers \ x86

* gdje je x.x specifična verzija razvojnog kompleta;
Primijetili smo da se inačice 8 i novije, instalacijski putevi primjetno razlikuju od klasičnih za sve prethodne verzije alati za ispravljanje pogrešaka?

Veliki plus ovu metodu Instaliranje alata za uklanjanje pogrešaka za Windows instalacija je inačica alata za ispravljanje pogrešaka za sve arhitekture odjednom.

Instaliranje alata za ispravljanje pogrešaka za Windows sa ISO slike Windows SDK -a za Windows

Ova metoda uključuje instaliranje alata za ispravljanje pogrešaka za Windows pomoću potpune instalacijske slike Windows SDK -a (Software Developers Kit). Do određenog vremena preuzmite ISO slika za odgovarajući sustav mogao biti na stranici Arhiva Windows SDK -a. Međutim, trenutno možete dobiti ISO sliku SDK-a pokretanjem instalacijskog programa sdksetup.exe i odabirom stavke Preuzmite Windows Software Development Kit u početnom prozoru instalacijskog programa:

Kako se doznalo, prethodna metoda instalacije pomoću web instalatora prilično je hirovita i često ne uspijeva. Na čistim sustavima instalira se bez problema, međutim, na dovoljno opterećenim sustavima javljaju se brojni problemi. Ako imate upravo takav slučaj, upotrijebite ovu metodu.

U skladu s tim, na stranici je potrebno odabrati potrebni distribucijski komplet, za mene (i mislim da za mnoge) u ovom trenutku to je "Windows SDK za Windows 7 i .NET Framework 4" i odmah ispod kliknite vezu "Dohvati ISO slika DVD diska "...

Prilikom rada s web lokacijom msdn.microsoft.com savjetujem vam da koristite preglednik Internet Explorer jer je bilo slučajeva nesposobnosti konkurentnih proizvoda!

Sukladno tome, potrebno je birati samo kada je to potrebno. Obično je bitov alata za ispravljanje pogrešaka za Windows isti kao bitov sustava. Moji su sustavi pod istragom uglavnom 64-bitni, pa u većini slučajeva preuzimam sliku za 64-bitni sustav GRMSDKX_EN_DVD.iso.
Zatim, nakon preuzimanja slike, moramo nekako raditi sa postojećom ISO slikom. Tradicionalni način je, naravno, snimanje CD -a, ali to je prilično duga i ponekad skupa metoda. Predlažem korištenje besplatnih alata za stvaranje virtualnih diskovnih uređaja u sustavu. Osobno u tu svrhu više volim koristiti program DEAMON Tools Lite. Netko može imati druge preferencije, izravnije ili laganije pomoćne programe, okus i boju, kako kažu .. Nakon instalacije Daemon alati Lite, samo dvaput kliknem na slikovnu datoteku GRMSDKX_EN_DVD.iso i imam novi virtualni CD u sustavu:

Zatim dvostruki klik Aktiviram automatsko pokretanje i započinjem instalaciju Windows SDK -a:

Kad dođe red na odabir komponenti koje će se instalirati s popisa, tada onemogućujemo apsolutno sve opcije osim onih označenih na snimci zaslona. To će nam pomoći da sada izbjegnemo nepotrebne pogreške.


Sve je upravo tako, na snimci zaslona označene su dvije opcije: "Windows Performance Toolkit" i "Debugging Tools for Windows". Odaberite oboje, jer će vam Windows Performance Toolkit zasigurno dobro doći za rad! Nadalje, nakon što pritisnete gumb "Dalje", instalacija se nastavlja kao i obično. I na kraju ćete vidjeti natpis "Instalacija dovršena".
Na kraju instalacije radni direktoriji skupa alata za ispravljanje pogrešaka za Windows bit će sljedeći:

  • Za verziju x86:
  • Za verziju x64:

Time je dovršena instalacija alata za ispravljanje pogrešaka za Windows.

Instaliranje alata za ispravljanje pogrešaka za Windows putem .msi datoteke

U slučaju problema tijekom instalacije alata za ispravljanje pogrešaka za Windows na dva prethodna načina, imamo još jedan, najpouzdaniji i provjeren vremenom, koji je pomogao, da tako kažem, više puta. Nekada davno, prije integracije u Windows SDK, alati za ispravljanje pogrešaka za Windows bili su dostupni kao zasebni .msi instalacijski program, koji se, međutim, još uvijek može pronaći već u utrobi distribucijskog kompleta za Windows SDK. Budući da već imamo ISO sliku Windows SDK-a u rukama, ne možemo je montirati u sustav, već je jednostavno otvoriti pomoću poznatog WinRAR arhivara ili bilo kojeg drugog proizvoda koji radi sa sadržajem ISO diskova.

Nakon otvaranja slike, moramo otići u direktorij "Setup" koji se nalazi u korijenu, a zatim odabrati jedan od direktorija:

  • Da biste instalirali 64-bitnu verziju: \ Setup \ WinSDKDebuggingTools_amd64 i raspakirajte datoteku dbg_amd64.msi iz ovog direktorija.
  • Da biste instalirali 32-bitnu verziju: \ Setup \ WinSDKDebuggingTools i raspakirajte datoteku dbg_x86.msi iz ovog direktorija.

Na kraju instalacije radni direktoriji skupa alata za ispravljanje pogrešaka za Windows bit će sljedeći:

  • Za verziju x86: C: \ Program Files (x86) \ Debugging Tools za Windows (x86)
  • Za verziju x64: C: \ Program Files \ Debugging Tools za Windows (x64)

Na ovom je mjestu instalacija alata za ispravljanje pogrešaka za Windows dovršena.

dodatne informacije

Ne znam s čime je to povezano, možda mojom nepažnjom, ali nakon instaliranja Alata za ispravljanje pogrešaka za Windows, instalacijski program ne registrira put do direktorija s otklanjanjem pogrešaka u sistemskoj varijabli Path. To nameće određena ograničenja za izvođenje različitih zadataka otklanjanja pogrešaka izravno s konzole. Stoga, u nedostatku puta, i sam pišem u prozor Varijable okoliša put do alata za ispravljanje pogrešaka:

  • C: \ Program Files (x86) \ Windows Kits \ 10 \ Debuggers \ x86
  • C: \ Program Files (x86) \ Windows Kits \ 10 \ Debuggers \ x64

* U vašem slučaju, putevi se mogu razlikovati kako zbog upotrebe OS -a različite bitove, tako i zbog korištenja SDK -a druge verzije.

Alati za ispravljanje pogrešaka za pakete Windows mogu raditi kao prijenosne aplikacije, samo trebate kopirati direktorij iz radnog sustava Microsoft Windows Performance Toolkit te ga koristiti kao prijenosnu verziju na poslužitelju za proizvodnju. Ali ne zaboravite uzeti u obzir kapacitet sustava !! Ako ste čak izvršili potpunu instalaciju paketa na kritičnom sustavu, tada možete početi raditi odmah nakon instalacije, nije potrebno ponovno podizanje sustava.

Alati za ispravljanje pogrešaka za Windows Composition

I sada, konačno, predstavljamo sastav alata za ispravljanje pogrešaka za Windows:

Datoteka Ugovoreni sastanak
adplus.doc Dokumentacija za uslužni program ADPlus.
adplus.exe Konzolna aplikacija koja automatizira cdb ispravljač pogrešaka za stvaranje dumpova, datoteka dnevnika za jedan ili više procesa.
agestore.exe Pomoćni program za uklanjanje zastarjelih datoteka iz spremišta koji koristi poslužitelj simbola ili izvorni poslužitelj.
breakin.exe Uslužni program koji vam omogućuje slanje korisnički definirane kombinacije prekida procesima, slično pritiskom na CTRL + C.
cdb.exe Otklanjanje pogrešaka u konzoli korisničkog načina rada.
convertstore.exe Pomoćni program za pretvaranje simbola iz 2-slojne u 3-slojnu.
dbengprx.exe Reaper (proxy poslužitelj) za daljinsko otklanjanje pogrešaka.
dbgrpc.exe Uslužni program za prikaz informacija o statusu RPC poziva.
dbgsrv.exe Poslužiteljski proces koji se koristi za daljinsko otklanjanje pogrešaka.
dbh.exe Uslužni program za prikaz informacija o sadržaju datoteke sa simbolima.
dumpchk.exe Pomoćni program za provjeru smeća. Uslužni program za brzu provjeru datoteke ispisa.
dumpexam.exe Uslužni program za analizu ispisa memorije. Rezultat je prikazan u% SystemRoot% \ MEMORY.TXT.
gflags.exe Urednik globalnih zastava sustava. Uslužni program upravlja ključevima registra i drugim postavkama.
i386kd.exe Omotač za kd. Kada se zvao kd za sustave temeljene na Windows NT / 2000 za x86 strojeve? Vjerojatno ostavljeno zbog kompatibilnosti.
ia64kd.exe Omotač za kd. Kada se zvao kd za sustave temeljene na Windows NT / 2000 za ia64 strojeve? Vjerojatno ostavljen zbog kompatibilnosti.
kd.exe Otklanjanje pogrešaka u konzoli u načinu rada jezgre.
kdbgctrl.exe Alat za upravljanje otklanjanjem pogrešaka u jezgri. Pomoćni program za upravljanje i konfiguriranje veze za ispravljanje pogrešaka u jezgri.
kdsrv.exe Poslužitelj veze za KD. Uslužni program je mala aplikacija koja se pokreće i čeka udaljene veze... kd radi na klijentu i povezuje se s tim poslužiteljem radi daljinskog otklanjanja pogrešaka. Poslužitelj i klijent moraju biti iz istog sklopa alata za ispravljanje pogrešaka.
kill.exe Pomoćni program za prekid procesa.
list.exe Uslužni program za prikaz sadržaja datoteke na ekranu. Ovaj minijaturni uslužni program bio je u paketu s jednom svrhom - pregledom velikog teksta ili zapisnika. Zauzima malo memorijskog prostora dok učitava tekst u komadima.
logger.exe Minijaturni alat za ispravljanje pogrešaka koji može raditi samo s jednim procesom. Pomoćni program ubacuje logexts.dll u prostor procesa, koji bilježi sve pozive funkcija i druge radnje programa u istrazi.
logviewer.exe Uslužni program za pregled zapisnika koje je napisao ispravljač pogrešaka logger.exe.
ntsd.exe Simbolički ispravljač pogrešaka Microsoft NT (NTSD). Otklanjanje pogrešaka, identično cdb -u, osim što stvara tekstualni okvir pri pokretanju. Kao i cdb, ntsd je sposoban otklanjati pogreške i u konzolnim i u grafičkim aplikacijama.
pdbcopy.exe Uslužni program za uklanjanje privatnih simbola iz datoteke sa simbolima, kontrola nad javnim simbolima uključenim u datoteku simbola.
remote.exe Uslužni program za daljinsko otklanjanje pogrešaka i daljinsko upravljanje bilo kojim otklanjanjem pogrešaka na konzolama KD, CDB i NTSD. Omogućuje daljinsko pokretanje svih ovih programa za otklanjanje pogrešaka u konzoli.
rtlist.exe Daljinski preglednik zadataka. Pomoćni program koristi se za popis pokrenutih procesa kroz proces poslužitelja DbgSrv.
symchk.exe Alat za preuzimanje simbola s Microsoftovog poslužitelja simbola i stvaranje lokalne predmemorije simbola.
symstore.exe Pomoćni program za stvaranje mrežne ili lokalne memorije simbola (2-slojni / 3-slojni). Spremište simbola je specijalizirani direktorij na disku koji je izgrađen u skladu s određenom strukturom i sadrži simbole. U korijenskom direktoriju simbola stvara se struktura podmapa s imenima identičnim nazivima komponenti. Zauzvrat, svaka od ovih podmapa sadrži ugniježđene podmape koje imaju posebna imena dobivena raspršivanjem binarnih datoteka. Pomoćni program symstore skenira mape komponenti i dodaje nove komponente u spremište simbola odakle ih svaki klijent može dohvatiti. Za Symstore se kaže da se koristi za dobivanje simbola iz 0-slojne pohrane i njihovo stavljanje u 2-slojnu / 3-slojnu pohranu.
tlist.exe Preglednik zadataka. Uslužni program za popis svih pokrenutih procesa.
umdh.exe Korisnički program dump heap utility. Pomoćni program za analizu hrpa (hrpe) odabranog procesa. Omogućuje prikaz različitih opcija za hrpu.
usbview.exe USB preglednik. Pomoćni program za pregled USB uređaja spojenih na računalo.
vmdemux.exe Demultiplekser virtualni stroj... Stvara više imenovanih cijevi za jednu COM vezu. Kanali se koriste za ispravljanje pogrešaka različitih komponenti virtualnog stroja
windbg.exe GUI korisnički način rada i ispravljač pogrešaka u načinu rada jezgre.

Predstavljamo WinDBG - 1. dio

Aleksandar Antipov

WinDBG je izvrstan alat za ispravljanje pogrešaka. Možda nema vrlo sučelje prilagođeno korisniku i prema zadanim postavkama nema crnu pozadinu, ali je trenutno jedan od najmoćnijih i najstabilnijih programa za ispravljanje pogrešaka u sustavu Windows. U ovom članku upoznat ću vas s osnovama WinDBG -a kako biste mogli započeti s njim.


WinDBG je izvrstan alat za ispravljanje pogrešaka. Možda nema vrlo sučelje prilagođeno korisniku i prema zadanim postavkama nema crnu pozadinu, ali je trenutno jedan od najmoćnijih i najstabilnijih programa za ispravljanje pogrešaka u sustavu Windows. U ovom članku upoznat ću vas s osnovama WinDBG -a kako biste mogli započeti s njim.

Ovo je prvi članak u nizu o WinDBG -u. Popis svih članaka uključenih u ovaj ciklus:

  • 1. dio - instalacija, sučelje, simboli, daljinsko / lokalno otklanjanje pogrešaka, sustav pomoći, moduli, registri.
  • 2. dio - Točke prekida.
  • 3. dio - Pregled memorije, korak po korak otklanjanje pogrešaka u programu, savjeti i trikovi.

U ovom ćemo članku pokriti instalaciju i povezivanje s procesom, au nastavku ćemo obraditi točke prekida, postupno otklanjanje pogrešaka i pregled memorije.

Instaliranje WinDBG -a

U usporedbi sa sustavom Windows 7, postupak instalacije WinDBG -a u sustavu Windows 8 pretrpio je manje promjene. U ovom odjeljku ćemo vas provesti kroz instalaciju ispravljača pogrešaka za oba operativna sustava.

Instaliranje WinDBG -a na Windows 8

U sustavu Windows 8, WinDBG je uključen u Windows Driver Kit (WDK). Možete instalirati Visual Studio i WDK ili zasebno instalirati paket Debugging Tools za Windows 8.1, koji uključuje WinDBG.

Instalacijski program će vas pitati želite li instalirati WinDBG lokalno ili preuzeti cijeli razvojni paket za drugo računalo. Potonji je u biti ekvivalent offline instalacijskog programa, što je izvrsno ako želite instalirati paket na druge sustave u budućnosti.

Slika 1: Odabir vrste instalacije

U sljedećem prozoru morate poništiti odabir svih stavki osim "Alati za ispravljanje pogrešaka za Windows" i kliknite gumb "Preuzmi".

Čim instalacijski program dovrši svoj rad, idite u direktorij u koji je paket preuzet (prema zadanim postavkama to je c: \ Users \ Korisničko ime \ Preuzimanja \ Windows Kits \ 8.1 \ StandaloneSDK) i prođite kroz instalacijski postupak.

Instaliranje WinDBG -a na Windows 7 i starije verzije

Za Windows 7 i starije, WinDBG je uključen u paket Debugging Tools for Windows, koji je uključen u Windows SDK i .Net Framework. Morat ćete preuzeti instalacijski program, a zatim tijekom postupka instalacije odabrati "Alati za ispravljanje pogrešaka za Windows".

Tijekom instalacije odabirem opciju Alati za ispravljanje pogrešaka u odjeljku Redistributable Packages kako bih stvorio samostalni instalacijski program koji će olakšati sljedeće instalacije.

Slika 2: Odabir instalacijskih opcija za stvaranje samostalnog instalatera

Po završetku instalacije trebali biste imati WinDBG instalatere za različite platforme (u direktoriju c: \ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Redist \ Debugging Tools for Windows \).

Slika 3: Mapa s instalacijskim programima WinDBG za različite platforme

WinDBG sučelje

Slika 4: Izgled WinDBG -a

Čim prvi put vidite izgled WinDGB, otkrit ćete da je alat za ispravljanje pogrešaka zastrašujuće jednostavan. Većina značajki WinDBG -a nauči se tijekom ispravljanja pogrešaka u procesu. Umjesto gubljenja vremena na opis sučelja, u sljedećim ćemo odjeljcima pokriti samo najvažnije točke.

Najosnovnije što trebate znati o sučelju za ispravljanje pogrešaka je naredbeni prozor koji ima dva područja. Prvo područje: prozor u kojem je prikazan rezultat izvršavanja naredbe. Drugo područje: malo tekstualno polje za unos naredbi.

Slika 5: Prozor naredbe WinDBG

Simboli

U većini slučajeva WinDBG ne zahtijeva nikakve posebne postavke i radi ispravno. No, jedna važna stvar koju treba prilagoditi su simboli. Simboli su datoteke koje se stvaraju s izvršnom datotekom tijekom sastavljanja programa i sadrže informacije o otklanjanju pogrešaka (funkcije i nazive varijabli). Informacije o otklanjanju pogrešaka omogućuju vam da istražite funkcionalnost svoje aplikacije tijekom ispravljanja pogrešaka ili rastavljanja. Mnoge Microsoftove komponente sastavljene su sa simbolima koji se distribuiraju putem Microsoft Symbol Servera. S ostalim izvršnim datotekama sve nije tako ružičasto - vrlo rijetko datoteke s podacima o otklanjanju pogrešaka dolaze s aplikacijom. U većini slučajeva tvrtke ograničavaju pristup takvim podacima.

Da biste konfigurirali WinDBG da koristi Microsoft Symbol Server, idite na File: Symbol File Path i postavite SRV * C: \ Symbols * http: //msdl.microsoft.com/download/symbols. Naravno, malo je čudno što se zvjezdice koriste kao separator. Nakon što postavite Microsoft Symbol Server, simboli se preuzimaju u mapu C: \ Symbols.

Slika 6: Konfiguriranje Microsoft Symbol Servera

WinDBG će automatski učitati simbole za binarne datoteke kada je to potrebno. Također možete dodati vlastitu mapu sa simbolima, ovako:

SRV * C: \ Simboli * http: //msdl.microsoft.com/download/symbols; c: \ SomeOtherSymbolFolder

Dodavanje simbola tijekom ispravljanja pogrešaka

Ako trebate uvesti simbole tijekom ispravljanja pogrešaka, to možete učiniti pomoću .sympath (naredbeni prozor će se pojaviti kada se uključite u proces). Na primjer, da biste dodali mapu c: \ SomeOtherSymbolFolder, unesite sljedeću naredbu:

0: 025> .sympath + c: \ SomeOtherSymbolFolder
Staza pretraživanja simbola je: SRV * C: \ Symbols * http: //msdl.microsoft.com/download/symbols; c: \ SomeOtherSymbolFolder
Prošireni put pretraživanja simbola je: srv * c: \ symbols * http: //msdl.microsoft.com/download/symbols; c: \ someothersymbolfolder

Neće biti suvišno ponovno učitati simbole nakon dodavanja ili mijenjanja staza:

0: 025> .učitaj ponovno
Ponovno učitavanje trenutnih modula
................................................................
...............................................

Provjera učitanih simbola

Da biste vidjeli koji moduli imaju učitane simbole, možete koristiti naredbu x *! Iako WinDBG učitava samo simbole po potrebi, x *! prikazat će simbole koji se mogu učitati. Učitavanje simbola možete prisiliti naredbom ld * (to može potrajati, a ovaj proces možete zaustaviti odlaskom na Debug: Break).

Sada možemo vidjeti simbole za svaki modul.

Slika 8: Popis simbola

Otklanjanje pogrešaka u lokalnom procesu

Prilikom ispravljanja pogrešaka lokalnog procesa imate dva puta:

  1. Uključite već pokrenuti proces.
  2. Pokrenite proces putem WinDBG -a.

Svaka metoda ima svoje prednosti i nedostatke. Ako, na primjer, pokrenete program putem WinDBG -a, tada imate neke posebne opcije za ispravljanje pogrešaka (na primjer, ispravljanje pogrešaka u hrpi) koje mogu srušiti aplikaciju. S druge strane, postoje i programi koji se ruše kad na njih priključite ispravljač pogrešaka. Neke aplikacije (osobito zlonamjerni softver) provjeravaju prisutnost programa za otklanjanje pogrešaka u sustavu tijekom pokretanja i, u skladu s tim, u ovom slučaju ima smisla pridržavati se već pokrenutog procesa. Ponekad se otklanja pogreške na usluzi pod OS -om Windows, koja postavlja neke parametre tijekom pokretanja, pa je za pojednostavljenje procesa ispravljanja pogrešaka također bolje spojiti se na pokrenuti proces, nego pokrenuti uslugu putem programa za otklanjanje pogrešaka. Neki ljudi tvrde da pokretanje procesa putem programa za ispravljanje pogrešaka ima ozbiljan utjecaj na performanse. Ukratko, pokušajte oboje i odaberite ono što vam najviše odgovara. Ako iz nekog razloga preferirate određenu metodu, podijelite svoja razmišljanja u komentarima!

Pokretanje procesa

Ako otklanjate pogreške u samostalnoj aplikaciji koja se izvodi lokalno, a ne umrežena, možda biste je htjeli pokrenuti putem WinDBG -a. Međutim, to ne znači da se ne možete spojiti na već pokrenut proces. Odaberite način koji vam najviše odgovara.

Pokretanje procesa nije teško. Idite na "Datoteka: Otvori izvršnu datoteku" i odaberite izvršnu datoteku koju želite ukloniti. Također možete navesti argumente ili postaviti početni direktorij:

Slika 9: Odabir izvršne datoteke za ispravljanje pogrešaka

Povezivanje procesa

Povezivanje s već pokrenutim procesom također nije teško. No, imajte na umu da u nekim slučajevima može potrajati neko vrijeme da pronađete točan proces koji želite otkloniti pogreške. Na primjer, neki preglednici stvaraju jedan roditeljski proces, a zatim još nekoliko procesa za svaku karticu. Stoga, ovisno o ispisu rušenja na kojem otklanjate pogreške, možda ćete se htjeti spojiti ne na roditeljski proces, već na proces povezan s karticom.

Da biste se priključili na već pokrenut proces, idite na "Datoteka: Priključi na proces", a zatim odaberite PID ili naziv procesa. Zapamtite da morate imati odgovarajuća prava da biste započeli proces.

Slika 10: Odabir procesa za spajanje

Ako je nakon povezivanja aplikacija obustavila rad, možete upotrijebiti način "Noninvaise" označavanjem odgovarajućeg potvrdnog okvira.

Otklanjanje pogrešaka u udaljenom procesu

Možda ćete ponekad morati otkloniti pogreške u procesu na udaljenom sustavu. Bilo bi mnogo prikladnije to učiniti s lokalnim ispravljačem pogrešaka umjesto korištenja virtualnog stroja ili RDP -a. Ili možda otklanjate pogreške u procesu LoginUI.exe, koji je dostupan samo kada je sustav zaključan. U ovakvim situacijama možete koristiti lokalnu verziju WinDBG -a i daljinski se povezati s procesima. Postoje dva najčešća načina za postizanje ovih zadataka.

Postojeće sesije otklanjanja pogrešaka

Ako ste već počeli s ispravljanjem pogrešaka u svom programu lokalno (povezivanjem ili pokretanjem procesa putem WinDBG -a), možete unijeti određenu naredbu i WinDBG će pokrenuti slušatelja na koji se udaljeni program za uklanjanje pogrešaka može povezati. Da biste to učinili, upotrijebite naredbu .server:

Tcp poslužitelja: port = 5005

Nakon pokretanja gornje naredbe, možda ćete vidjeti upozorenje poput ovog:

Slika 11: Poruka upozorenja koja se može pojaviti nakon pokretanja naredbe za stvaranje "slušatelja"

Tada će WinDBG izvijestiti da poslužitelj radi:

0: 005> .server tcp: port = 5005
0: -daljinski tcp: Port = 5005, Server = USER-PC

Sada se možete povezati s udaljenog hosta na postojeću sesiju otklanjanja pogrešaka tako da odete na "Datoteka: Povežite se s udaljenom sesijom" i unesite nešto poput ovoga u tekstualno polje: tcp: Port = 5005, Poslužitelj = 192.168.127.138

Slika 12: Daljinsko povezivanje na sesiju otklanjanja pogrešaka

Nakon povezivanja primit ćete potvrdu na udaljenom klijentu:


Poslužitelj je pokrenut. Klijent se može povezati s bilo kojom od ovih naredbenih linija
0: -daljinski tcp: Port = 5005, Server = USER-PC
MACHINENAME \ User (tcp 192.168.127.138:13334) spojeno na pon 16. prosinca 09:03:03 2013

i poruku za lokalna verzija program za ispravljanje pogrešaka:

MACHINENAME \ User (tcp 192.168.127.138:13334) spojeno na pon 16. prosinca 09:03:03 2013

Stvaranje udaljenog poslužitelja

Također možete stvoriti zasebni poslužitelj s WinDBG -om, povezati se s njim na daljinu i odabrati proces za uklanjanje pogrešaka. To se može učiniti pomoću datoteke dbgsrv.exe u kojoj planirate otklanjanje pogrešaka u procesima. Da biste pokrenuli takav poslužitelj, pokrenite sljedeću naredbu:

dbgsrv.exe -t tcp: port = 5005

Slika 13: Pokretanje udaljenog poslužitelja

Ponovo možete primiti sigurnosno upozorenje koje biste trebali prihvatiti:

Slika 14: Sigurnosna poruka koja se može pojaviti tijekom pokretanja poslužitelja za ispravljanje pogrešaka

Na poslužitelj za otklanjanje pogrešaka možete se povezati ako odete do datoteke "Datoteka: Poveži se s udaljenom stubom" i unesete sljedeći redak u tekstualno polje: tcp: Port = 5005, Server = 192.168.127.138

Slika 15: Spajanje na poslužitelj za otklanjanje pogrešaka

Nakon povezivanja nećete primati nikakve signale koje ste povezali, ali ako odete na "Datoteka: Priključi na proces", vidjet ćete popis procesa poslužitelja za otklanjanje pogrešaka (gdje je pokrenut dbgsrv.exe). Sada se možete uključiti u proces kao da to radite lokalno.

Sustav pomoći

Sustav pomoći u WinDBG -u je odličan. Osim što ćete naučiti nešto novo, trebali biste moći dobiti i osnovne informacije o naredbi. Za pristup WinDBG pomoći upotrijebite naredbu .hh:

Također možete dobiti informacije o pomoći za određenu naredbu. Na primjer, za pomoć s naredbom .reload upotrijebite sljedeću naredbu:

windbg> .hh .reload

Ili samo idite na odjeljak Pomoć: Sadržaj.

Moduli

Tijekom izvođenja programa uvoze se različiti moduli koji pružaju funkcionalnost aplikacije. Stoga, ako znate koje module uvozi aplikacija, možete bolje razumjeti kako to funkcionira. U mnogim ćete slučajevima otklanjati pogreške u određenom modulu koji učitava program, a ne sama izvršna datoteka.

Nakon povezivanja s procesom, WinDBG će automatski prikazati učitane module. Na primjer, moduli u nastavku prikazani su nakon povezivanja na calc.exe:

Microsoft (R) Windows Debugger verzija 6.12.0002.633 X86
Autorska prava (c) Microsoft Corporation. Sva prava pridržana.

*** pričekajte s privitkom u tijeku
Put pretraživanja simbola je: SRV * C: \ Simboli * http: //msdl.microsoft.com/download/symbols
Izvršni put pretraživanja je:
ModLoad: 00a70000 00b30000 C: \ Windows \ system32 \ calc.exe
ModLoad: 77630000 7776c000 C: \ Windows \ SYSTEM32 \ ntdll.dll
ModLoad: 77550000 77624000 C: \ Windows \ system32 \ kernel32.dll
ModLoad: 75920000 7596a000 C: \ Windows \ system32 \ KERNELBASE.dll
ModLoad: 76410000 77059000 C: \ Windows \ system32 \ SHELL32.dll
ModLoad: 77240000 772ec000 C: \ Windows \ system32 \ msvcrt.dll
ModLoad: 76300000 76357000 C: \ Windows \ system32 \ SHLWAPI.dll
ModLoad: 75cd0000 75d1e000 C: \ Windows \ system32 \ GDI32.dll
ModLoad: 75fa0000 76069000 C: \ Windows \ system32 \ USER32.dll
ModLoad: 777b0000 777ba000 C: \ Windows \ system32 \ LPK.dll
ModLoad: 774b0000 7754d000 C: \ Windows \ system32 \ USP10.dll
ModLoad: 73110000 732a0000 C: \ Windows \ WinSxS \ x86_microsoft.windows.gdiplus_
6595b64144ccf1df_1.1.7600.16385_none_72fc7cbf861225ca \ gdiplus.dll
ModLoad: 75a80000 75bdc000 C: \ Windows \ system32 \ ole32.dll
ModLoad: 76360000 76401000 C: \ Windows \ system32 \ RPCRT4.dll
ModLoad: 777c0000 77860000 C: \ Windows \ system32 \ ADVAPI32.dll
ModLoad: 75be0000 75bf9000 C: \ Windows \ SYSTEM32 \ sechost.dll
ModLoad: 76270000 762ff000 C: \ Windows \ system32 \ OLEAUT32.dll
ModLoad: 74590000 745d0000 C: \ Windows \ system32 \ UxTheme.dll
ModLoad: 74710000 748ae000 C: \ Windows \ WinSxS \ x86_microsoft.windows.common-
ModLoad: 703d0000 70402000 C: \ Windows \ system32 \ WINMM.dll
ModLoad: 74c80000 74c89000 C: \ Windows \ system32 \ VERSION.dll
ModLoad: 77770000 7778f000 C: \ Windows \ system32 \ IMM32.DLL
ModLoad: 75c00000 75ccc000 C: \ Windows \ system32 \ MSCTF.dll
ModLoad: 74130000 7422b000 C: \ Windows \ system32 \ WindowsCodecs.dll
ModLoad: 74260000 74273000 C: \ Windows \ system32 \ dwmapi.dll
ModLoad: 756d0000 756dc000 C: \ Windows \ system32 \ CRYPTBASE.dll
ModLoad: 75e60000 75ee3000 C: \ Windows \ system32 \ CLBCatQ.DLL
ModLoad: 6ef10000 6ef4c000 C: \ Windows \ system32 \ oleacc.dll

Kasnije u procesu ispravljanja pogrešaka možete ponovno prikazati ovaj popis naredbom lmf:

0: 005> lmf
naziv završnog modula početka
00a70000 00b30000 calc C: \ Windows \ system32 \ calc.exe
6ef10000 6ef4c000 oleacc C: \ Windows \ system32 \ oleacc.dll
703d0000 70402000 WINMM C: \ Windows \ system32 \ WINMM.dll
73110000 732a0000 gdiplus C: \ Windows \ WinSxS \ x86_microsoft.windows.gdiplus_6595b64144ccf1df_
1.1.7600.16385_none_72fc7cbf861225ca \ gdiplus.dll
74130000 7422b000 WindowsCodecs C: \ Windows \ system32 \ WindowsCodecs.dll
74260000 74273000 dwmapi C: \ Windows \ system32 \ dwmapi.dll
74590000 745d0000 UxTema C: \ Windows \ system32 \ UxTheme.dll
74710000 748ae000 COMCTL32 C: \ Windows \ WinSxS \ x86_microsoft.windows.common-
kontrole_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc \ COMCTL32.dll
74c80000 74c89000 VERZIJA C: \ Windows \ system32 \ VERSION.dll
756d0000 756dc000 CRYPTBASE C: \ Windows \ system32 \ CRYPTBASE.dll
75920000 7596a000 KERNELBASE C: \ Windows \ system32 \ KERNELBASE.dll
75a80000 75bdc000 ole32 C: \ Windows \ system32 \ ole32.dll
75be0000 75bf9000 sechost C: \ Windows \ SYSTEM32 \ sechost.dll
75c00000 75ccc000 MSCTF C: \ Windows \ system32 \ MSCTF.dll
75cd0000 75d1e000 GDI32 C: \ Windows \ system32 \ GDI32.dll
75e60000 75ee3000 CLBCatQ C: \ Windows \ system32 \ CLBCatQ.DLL
75fa0000 76069000 USER32 C: \ Windows \ system32 \ USER32.dll
76270000 762ff000 OLEAUT32 C: \ Windows \ system32 \ OLEAUT32.dll
76300000 76357000 SHLWAPI C: \ Windows \ system32 \ SHLWAPI.dll
76360000 76401000 RPCRT4 C: \ Windows \ system32 \ RPCRT4.dll
76410000 77059000 SHELL32 C: \ Windows \ system32 \ SHELL32.dll
77240000 772ec000 msvcrt C: \ Windows \ system32 \ msvcrt.dll
774b0000 7754d000 USP10 C: \ Windows \ system32 \ USP10.dll
77550000 77624000 kernel32 C: \ Windows \ system32 \ kernel32.dll
77630000 7776c000 ntdll C: \ Windows \ SYSTEM32 \ ntdll.dll
77770000 7778f000 IMM32 C: \ Windows \ system32 \ IMM32.DLL
777b0000 777ba000 LPK C: \ Windows \ system32 \ LPK.dll
777c0000 77860000 ADVAPI32 C: \ Windows \ system32 \ ADVAPI32.dll

Također možete saznati adresu za preuzimanje za određeni modul pomoću naredbe "lmf m":

0: 005> lmf m kernel32
naziv završnog modula početka
77550000 77624000 kernel32 C: \ Windows \ system32 \ kernel32.dll

Također možete dobiti informacije o zaglavlju slike određenog modula pomoću! Dh ( Uskličnik označava proširenje):

0: 005>! Dh kernel32

Vrsta datoteke: DLL
VRIJEDNOSTI GLASNIKA DATOTEKE
14C stroj (i386)
4 broj odjeljaka
4A5BDAAD oznaka datuma datuma pon 13. srpnja 21:09:01 2009

0 pokazivač datoteke na tablicu simbola
0 broj simbola
E0 veličina dodatnog zaglavlja
2102 karakteristike
Izvršljivo
32 -bitni stroj za riječi
DLL

NEOBVEZNE VRIJEDNOSTI GLAVE
10B magija #
9.00 verzija povezivanja
C4600 veličina koda
C800 veličina inicijaliziranih podataka
0 veličina neinicijaliziranih podataka
510C5 adresa ulazne točke
1000 baza koda
----- novi -----
77550000 baza slika
Poravnanje presjeka 1000
200 poravnavanje datoteka
3 podsustava (Windows CUI)
Verzija operacijskog sustava 6.01
Verzija slike 6.01
Verzija podsustava 6.01
D4000 veličina slike
800 zaglavlja
D5597 kontrolni zbroj
00040000 veličina rezerve hrpe
00001000 veličina urezivanja steka
00100000 veličina rezerve hrpe
00001000 veličina predavanja hrpe
140 DLL karakteristike
Dinamička baza
NX kompatibilan
B4DA8 [A915] adresa Izvoznog imenika
BF6C0 [1F4] adresa Uvoznog imenika
C7000 [520] adresa Imenika resursa
0 [0] adresa direktorija iznimki
0 [0] adresa Sigurnosnog imenika
C8000 [B098] adresa direktorija za premještanje baze
C5460 [38] adresa direktorija za otklanjanje pogrešaka
0 [0] adresa Imenika opisa
0 [0] adresa Posebnog imenika
0 [0] adresa imenika za pohranu niti
816B8 [40] adresa Load Configuration Directory
278 [408] adresa Imenika uvezanog uvoza
1000 [DE8] adresa Imenika tablica uvoznih adresa
0 [0] adresa imenika odgođenog uvoza
0 [0] adresa direktorija zaglavlja COR20
0 [0] adresa Rezerviranog imenika

GLAVA ODJELJAKA # 1
.naziv teksta
C44C1 virtualna veličina
1000 virtualnih adresa
C4600 veličina neobrađenih podataka
800 datoteka pokazivač na neobrađene podatke

0 broj preseljenja
0 broj brojeva redaka
60000020 zastava
Kodirati
(nije navedeno poravnanje)
Izvrši čitanje

Otklanjanje pogrešaka u direktorijima (2)
Upišite veličinu Adresni pokazivač
cv 25 c549c c4c9c Format: RSDS, guide, 2, kernel32.pdb
(10) 4 c5498 c4c98

GLAVA ODJELJAKA # 2
.naziv podataka
Virtualna veličina FEC -a
Virtualna adresa C6000
E00 veličina neobrađenih podataka
C4E00 pokazivač datoteke na neobrađene podatke
0 pokazivač datoteke na tablicu preseljenja
0 pokazivač datoteke na brojeve redaka
0 broj preseljenja
0 broj brojeva redaka
C0000040 zastave
Inicijalizirani podaci
(nije navedeno poravnanje)
Čitaj Napiši

GLAVA ODJELJAKA # 3
.rsrc naziv
520 virtualne veličine
Virtualna adresa C7000
600 veličina neobrađenih podataka
C5C00 datoteka pokazivač na neobrađene podatke
0 pokazivač datoteke na tablicu preseljenja
0 pokazivač datoteke na brojeve redaka
0 broj preseljenja
0 broj brojeva redaka
40000040 zastava
Inicijalizirani podaci
(nije navedeno poravnanje)
Samo za čitanje

GLAVA ODJELJAKA # 4
.naziv preseljenja
B098 virtualna veličina
Virtualna adresa C8000
B200 veličina neobrađenih podataka
C6200 pokazivač datoteke na neobrađene podatke
0 pokazivač datoteke na tablicu preseljenja
0 pokazivač datoteke na brojeve redaka
0 broj preseljenja
0 broj brojeva redaka
42000040 zastave
Inicijalizirani podaci
Neispravno
(nije navedeno poravnanje)
Samo za čitanje

Poruke i iznimke

Nakon povezivanja s procesom, prvo se prikazuje popis modula, a zatim se mogu pojaviti i druge poruke. Na primjer, kada se držimo calc.exe, WinDBG automatski postavlja točku prekida (što je samo marker koji se koristi za zaustavljanje aplikacije). Prikazuju se informacije o točki prekida:

(da8.b44): Izuzetak od upute za prekid - kod 80000003 (prva prilika)

Ova je poruka iznimka, odnosno iznimka prve prilike. U biti, iznimka je poseban uvjet koji se javlja tijekom izvođenja programa. Iznimka prve prilike znači da se program zaustavio odmah nakon što je izuzetak izbačen. Iznimka druge prilike znači da će se nakon iznimke dogoditi neke operacije, a zatim će program prestati s radom.

Registri

Nakon prikaza poruka i iznimki, program za ispravljanje pogrešaka ispisuje stanje registara procesora. Registri su posebne varijable unutar procesora koje pohranjuju male dijelove informacija ili prate stanje nečega u memoriji. Procesor može vrlo brzo obraditi podatke u tim registrima. Ovo je mnogo brže nego svaki put dobivanje informacija o magistrali iz RAM -a.

Nakon povezivanja na calc.exe, WinDBG automatski prikazuje podatke o sljedećim registrima:

eax = 7ffd9000 ebx = 00000000 ecx = 00000000 edx = 776cd23d esi = 00000000 edi = 00000000
cs = 001b ss = 0023 ds = 0023 es = 0023 fs = 003b gs = 0000 efl = 00000246

Kasnije možete ponovno duplicirati ove podatke pomoću naredbe r:

0: 005> r
eax = 7ffd9000 ebx = 00000000 ecx = 00000000 edx = 776cd23d esi = 00000000 edi = 00000000
eip = 77663540 esp = 02affd9c ebp = 02affdc8 iopl = 0 nv gore ei pl zr na pe nc
cs = 001b ss = 0023 ds = 0023 es = 0023 fs = 003b gs = 0000 efl = 00000246
ntdll! DbgBreakPoint:
77663540 cc int 3

Ako želimo dobiti vrijednost određenog registra, tada možemo izvršiti sljedeću naredbu:

0: 005> r eax
eax = 7ffd9000

Podaci iz više registara istovremeno mogu se dobiti na sljedeći način:

0: 005> r eax, ebp
eax = 7ffd9000 ebp = 02affdc8

Pokazivač na instrukciju

Posljednja naredba posvećena je izvršnim uputama. Ovdje se također prikazuju informacije na zaslonu, kao u slučaju naredbe r, o tome što sadrži EIP registar. EIP je registar koji sadrži mjesto sljedeće upute koju procesor treba izvršiti. Ono što prikazuje WinDBG ekvivalent je naredbi u eip L1, nakon čega WinDBG odlazi na adresu navedenu u EIP registru, pretvara ovaj odjeljak u kôd sklopa i prikazuje ga na ekranu.

ntdll! DbgBreakPoint:
77663540 cc int 3

ostati u kontaktu

U budućim člancima ćemo pogledati kako koristiti WinDBG u živom okruženju: točke prekida, postupno otklanjanje pogrešaka i skeniranje memorije. Ne mijenjajte! J.

Ove vrste grešaka obično su povezane s neispravnim upravljačkim programom, što može biti teško izračunati. Međutim, poboljšani sustav praćenja grešaka u sustavu Windows Vista (i ne samo u sustavu Vista!) Često vas može dovesti do problematične datoteke. Zbog toga većina ljudi prestaje grčevito pokušavati raditi na nestabilnom računalu, spremajući dokumente s paranoičnom pravilnošću i nadajući se najboljem.

Na Windows se ruši obično se stvara takozvani "dump memorije". Potonje se može istražiti pomoću besplatnog programa za otklanjanje pogrešaka Windows alat Alati za uklanjanje pogrešaka koji vas mogu uputiti na izvor problema. Stoga sve što trebate učiniti je:

Preuzmite si alat za ispravljanje pogrešaka

Alate za ispravljanje pogrešaka u sustavu Windows možete preuzeti izravno s Microsoftovog web mjesta. Program radi s različitim operativnim sustavima od Windows NT 4 do Windows 2008, tako da s njim ne biste trebali imati problema. Da, ne može se reći da je stabilan pod Windows 7 RC, ali prema našim testovima i dalje radi. Stoga čak i pokušaj dijagnosticiranja problema ispod Windows 7 RC -a može biti uspješan.

Konfigurirajte svoj sustav

Potrebno je da tijekom rušenja vaše računalo stvori memorijske izvore koji će kasnije poslužiti kao izvor informacija za program za ispravljanje pogrešaka. Stoga je važno da je Windows konfiguriran za generiranje dumpa. Za prilagodbu operacijskog sustava kliknite desni klik mišem na računalu (Računalo) i odaberite Svojstva (Svojstva). Zatim kliknite karticu Napredne postavke sustava, pronađite pododsjek Postavke pokretanja i oporavka i provjerite je li parametar Zapisivanje informacija o ispravljanju pogrešaka postavljen na Ispis memorije jezgre) ili Potpuni ispis memorije.

Zatim kliknite Start, idite na Svi programi, odaberite Alati za ispravljanje pogrešaka i pokrenite WinDbg. U programu idite na izbornik Datoteka i odaberite Put datoteke simbola ... Zatim u prozor koji se otvori upišite sljedeći redak:

SRV * c: \ simboli * http: //msdl.microsoft.com/download/symbols

Potonji definira put do posebnih podataka - takozvanih "simbola" koji mogu pomoći alatu za ispravljanje pogrešaka u identifikaciji vaše neispravne datoteke.

Nakon ulaska u red, kliknite gumb U redu. Kasnije, pri radu s programom za otklanjanje pogrešaka, ovaj će redak preuzeti simbole s stranice msdl.microsoft.com i spremiti ih u mapu c: \ symbols.

Riješite svoj problem

Sada pričekajte sljedeći pad s plavim zaslonom i naknadni završetak ponovnog pokretanja računala. Zatim ponovno pokrenite WinDbg (korisnici Viste trebaju pokrenuti program kao administrator), kliknite izbornik Datoteka, odaberite Otvori dump sruši, otvorite datoteku \ Windows \ MEMORY.DMP i program će je odmah početi analizirati.

Nažalost, WinDbg pruža vrlo malo podataka o tome što radi, pa biste čak mogli pomisliti da je program zamrznut. Međutim, pričekajte. Shvatite, analiza, recimo, 4 GB memorije na ne baš moćnom računalu može potrajati neko vrijeme, do nekoliko sati. Stoga, budite strpljivi, a analizu je bolje ostaviti za noć.

Međutim, obično se rezultat postigne u roku od nekoliko minuta. To dokazuje linija analizatora pogreške Bugcheck Analysis, koja izvješćuje nešto poput "Vjerojatno uzrokovano: UACReplace.sys". Prevedeno na ruski, to znači da je problem vjerojatno uzrokovan datotekom UACReplace.sys. Unesite ga u traku za pretraživanje, na primjer, Google i saznat ćete njegovo pravo podrijetlo. Konkretno, ako pripada nekom od programa koje ste instalirali ili instalirani upravljački program onda možete samo pokušati ažurirati nju ili njega. Možda će ovo riješiti probleme koje imate.

Moram reći da s vremena na vrijeme WinDbg uopće ne može imenovati datoteku ili jednostavno odabere jedan od Windows DLL -ova. Ako se to dogodilo s vama, samo kliknite na naredbeni prozor iznad statusne trake i upišite naredbu:

Zatim pritisnite Enter. Ovo će vam pružiti detaljnije izvješće koje može sadržavati informacije o mogućim uzrocima vaših problema.

Ako ovaj put nemate sreće, nemojte očajavati. Otklanjanje pogrešaka prilično je teško, čak i za stručnjake. Zato samo zatvorite WinDbg i ponovno pokrenite analizator nakon sljedećeg rušenja. Možda će vam ovo dati još informacija. Sretno!