A WinDBG telepítése és konfigurálása a memóriakiíratok elemzéséhez. Windows hibakereső eszközök: diagnosztizálja és javítsa ki a BSOD hibakereső eszközöket a Windows használatához

Kritikus meghibásodás esetén a Windows operációs rendszer leáll, és a halál kék képernyőjét (BSOD) jelzi. Tartalom véletlen hozzáférésű memóriaés a fellépő hibával kapcsolatos minden információ a lapozófájlba kerül. A következőnél Windows rendszerindításösszeomlási dump jön létre a mentett adatok alapján hibakeresési információkkal. Végzetes hibabejegyzés jön létre a rendszereseménynaplóban.

Figyelem! Nem jön létre összeomlási dump, ha a lemezalrendszer meghibásodott, vagy ha kritikus hiba történt a Windows rendszerindításának kezdeti szakaszában.

A Windows összeomlási dumpjainak típusai

A jelenlegi Windows 10 operációs rendszer példájával ( Windows Server 2016) fontolja meg a rendszer által létrehozható memóriakiíratok fő típusait:

  • Mini memória kiíratása (Kis memória kiíratása)(256 KB). Az ilyen típusú fájl minimális mennyiségű információt tartalmaz. Csak a BSOD hibaüzenetet tartalmazza, információkat az illesztőprogramokról, az összeomlás idején aktív folyamatokról, valamint arról, hogy melyik folyamat vagy kernelszál okozta az összeomlást.
  • Kernel memória kiíratása. Általában kicsi, a fizikai memória mennyiségének egyharmada. A kernel memória kiíratása részletesebb, mint a minidump. Információkat tartalmaz az illesztőprogramokról és a kernel módú programokról, tartalmazza a Windows kernelhez és a hardveres absztrakciós réteghez (HAL) lefoglalt memóriát, valamint az illesztőprogramokhoz és más kernel módú programokhoz lefoglalt memóriát.
  • Teljes memória kiíratása. A legnagyobb méretű, és memóriát igényel, amely megegyezik a rendszer RAM-jával, plusz a Windows által a fájl létrehozásához szükséges 1 MB-tal.
  • Automatikus memória dump. Információ tekintetében a kernel memória kiíratásának felel meg. Csak abban különbözik, hogy mennyi helyet használ a dump fájl létrehozásához. Ez a fájltípus nem létezett a Windows 7 rendszerben. A Windows 8 rendszerben került hozzáadásra.
  • Aktív memória kiíratása. Ez a típus kiszűri azokat az elemeket, amelyek nem tudják meghatározni a rendszerhiba okát. Ezt a Windows 10 rendszerben adták hozzá, és különösen akkor hasznos, ha virtuális gépet futtat, vagy ha rendszere Hyper-V gazdagép.

Hogyan lehet engedélyezni a memória kiíratását a Windows rendszerben?

A Win + Pause használatával nyissa meg a rendszerbeállítások ablakát, válassza a " Extra lehetőségek rendszerek" (Haladó rendszerbeállítások). A lapon " Továbbá" (Speciális), "" szakasz (Indítás és helyreállítás), kattintson a "" gombra Lehetőségek" (Beállítások). A megnyíló ablakban konfigurálja a műveleteket rendszerhiba esetén. Jelölje be a jelölőnégyzetet " Események írása a rendszernaplóba» (Esemény írása a rendszernaplóba), válassza ki a rendszer összeomlásakor generálandó dump típusát. Ha a jelölőnégyzetben " Cserélje le a meglévő dump fájlt» (A meglévő fájl felülírása) jelölőnégyzetet, a fájl minden összeomláskor felül lesz írva. Jobb, ha törli a jelölőnégyzetet, akkor több információhoz jut az elemzéshez. Tiltsa le a rendszer automatikus újraindítását is (Automatikus újraindítás).

A legtöbb esetben egy kis memóriakép elegendő a BSOD okának elemzéséhez.

Most, ha BSOD történik, elemezheti a dump fájlt, és megtalálhatja a hibák okát. A minidump alapértelmezés szerint a %systemroot%\minidump mappában található. A dump fájl elemzéséhez a program használatát javaslom WinDBG(Microsoft Kernel Debugger).

A WinDBG telepítése Windows rendszeren

Hasznosság WinDBG tartalmazza " Windows 10 SDK» (Windows 10 SDK). .

A fájl neve winsdksetup.exe, mérete 1,3 MB.

Futtassa a telepítést, és válassza ki, hogy telepíti-e a csomagot erre a számítógépre, vagy töltse le más számítógépekre való telepítéshez. Telepítse a csomagot a helyi számítógépre.

Telepítheti a teljes csomagot, de csak a hibakereső eszköz telepítéséhez válassza ki Hibakereső eszközök Windowshoz.

A telepítés után a WinDBG parancsikonok a start menüben találhatók.

A .dmp fájlok WinDBG-vel való társításának beállítása

Dump fájlok megnyitásához egy egyszerű kattintással, rendelje hozzá a .dmp kiterjesztést a WinDBG segédprogramhoz.

  1. Nyisd ki parancs sor rendszergazdaként, és futtassa a parancsokat a 64 bites rendszerhez: cd C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
    windbg.exe –IA
    32 bites rendszerhez:
    C:\Program Files (x86)\Windows Kits\10\Debuggers\x86
    windbg.exe –IA
  2. Ennek eredményeként a .DMP, .HDMP, .MDMP, .KDMP, .WEW fájltípusok hozzá lesznek rendelve a WinDBG-hez.

Hibakeresési szimbólumszerver beállítása a WinDBG-ben

A hibakereső szimbólumok (debug-symbols vagy szimbólumfájlok) olyan adatblokkok, amelyek egy program és egy végrehajtható fájl összeállítása során keletkeznek. Az ilyen adatblokkok változónevekről, úgynevezett függvényekről, könyvtárakról stb. tartalmaznak információkat. Ezek az adatok nem szükségesek a program futtatásakor, de hasznosak a hibakeresés során. A Microsoft összetevői a Microsoft Symbol Serveren keresztül terjesztett szimbólumokkal vannak összeállítva.

Állítsa be a WindDBG-t Microsoft használat Szimbólum szerver:

  • Nyissa meg a WinDBG-t;
  • Menjen a menübe Fájl –> Szimbólum fájl elérési útja;
  • Írjon egy karakterláncot, amely tartalmazza a hibakeresési szimbólumok Microsoft webhelyről történő letöltésének URL-címét és a gyorsítótár mentési mappáját: SRV*E:\Sym_WinDBG*http://msdl.microsoft.com/download/symbols A példában a gyorsítótár letöltése megtörténik. az E:\Sym_WinDBG mappába, bármelyiket megadhatja.
  • Ne felejtse el menteni a menü módosításait Fájl–>Munkaterület mentése;

A WinDBG szimbólumokat keres a helyi mappában, és ha nem találja meg benne a szükséges szimbólumokat, automatikusan letölti a szimbólumokat a megadott webhelyről. Ha saját szimbólummappát szeretne hozzáadni, ezt a következőképpen teheti meg:

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

Ha nincs internetkapcsolat, először töltse le a szimbólumcsomagot a Windows Szimbólumcsomagok erőforrásból.

Összeomlási dump elemzése a WinDBG-ben

A WinDBG hibakereső megnyitja a dump fájlt, és letölti a hibakereséshez szükséges szimbólumokat egy helyi mappából vagy az internetről. A folyamat során nem használhatja a WinDBG-t. Az ablak alján (a hibakereső parancssorban) megjelenik a felirat Debugee nincs csatlakoztatva.

A parancsok az ablak alján található parancssorba kerülnek.

A legfontosabb dolog, amire figyelni kell, a hibakód, amely mindig hexadecimális értékben van megadva, és így néz ki 0xXXXXXXXXX(az egyik opcióban jelezve - STOP:, 2019.02.07. 0008F, 0x8F). Példánkban a hibakód 0x139.

A hibakereső felszólítja az Analy -v parancs végrehajtására, csak vigye az egérmutatót a hivatkozásra, és kattintson. Mire való ez a parancs?

  • Elvégzi a memóriakiírás előzetes elemzését és biztosítja részletes információk az elemzés elindításához.
  • Ez a parancs megjeleníti a STOP kódot és a hiba szimbolikus nevét.
  • Az összeomláshoz vezető parancsok hívási veremét mutatja.
  • Ezen kívül itt jelennek meg az IP-cím, a folyamat- és a regiszterhibák.
  • A csapat kész javaslatokat tud adni a probléma megoldására.

A főbb pontok, amelyekre figyelni kell az !analyze -v parancs végrehajtása után végzett elemzés során (a felsorolás nem teljes).

1: kd> !analyze -v


* *
*Hibaellenőrzési elemzés*
* *
*****************************************************************************
A STOP hiba szimbolikus neve (BugCheck)
KERNEL_SECURITY_CHECK_FAILURE (139)
A hiba leírása (Egy kernelkomponens megsértett egy kritikus adatszerkezetet. Ez a sérülés lehetővé teheti, hogy a támadó átvegye az irányítást a gép felett):

Egy kernel-összetevő megrongált egy kritikus adatszerkezetet. A korrupció potenciálisan lehetővé teheti egy rosszindulatú felhasználó számára, hogy átvegye az irányítást a gép felett.
Hiba argumentumok:

Érvek:
Arg1: 0000000000000003, A LIST_ENTRY megsérült (azaz dupla eltávolítás).
Arg2: ffffd0003a20d5d0, A hibaellenőrzést okozó kivétel csapdakeretének címe
Arg3: ffffd0003a20d528, a hibaellenőrzést okozó kivétel kivételrekordjának címe
Arg4: 000000000000000, fenntartva
Hibakeresés részletei:
------------------

A számláló azt mutatja, hogy a rendszer hányszor omlott össze hasonló hibával:

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: FAIL_FAST_CORRUPT_LIST_ENTRY

STOP hibakód rövidített formátumban:

BUGCHECK_STR: 0x139

A folyamat, amely összeomlott (nem feltétlenül a hiba oka, csak ez a folyamat futott a memóriában az összeomlás időpontjában):

PROCESS_NAME: sqlservr.exe

Hibakód visszafejtése: A rendszer verempuffer túlcsordulást észlelt ebben az alkalmazásban, ami lehetővé teheti a támadó számára, hogy átvegye az irányítást az alkalmazás felett.

ERROR_CODE: (NTSTATUS) 0xc0000409 – A rendszer egy veremalapú puffer túlcsordulását észlelte ebben az alkalmazásban. Ez a túllépés lehetővé teheti egy rosszindulatú felhasználó számára, hogy átvegye az irányítást az alkalmazás felett.
EXCEPTION_CODE: (NTSTATUS) 0xc0000409 – A rendszer egy veremalapú puffer túlcsordulását észlelte ebben az alkalmazásban. Ez a túllépés lehetővé teheti egy rosszindulatú felhasználó számára, hogy átvegye az irányítást az alkalmazás felett.

Utolsó hívás a veremben:

LAST_CONTROL_TRANSFER: fffff8040117d6a9-ről fffff8040116b0a0-ra

Verem hívása a hiba idején:

STACK_TEXT:
ffffd000`3a20d2a8 fffff804`0117d6a9: 00000000`00000139 00000000`00000003 ffffd000`3a20d5d0 ffffd000`B28:20nt!
ffffd000`3a20d2b0 fffff804`0117da50: ffffe000`f3ab9080 ffffe000`fc37e001 ffffd000`3a20d5d0 fffff804`0116e2a2: CheckiisBpatch nt!
ffffd000`3a20d3f0 ffff804`0117c150: 00000000`00000000 00000000`00000000 00000000`00000000 000000000 000000000 000000000 000000000 000000000 xd 0
ffffd000`3a20d5d0 fffff804`01199482: ffffc000`701ba270 ffffc000`00000001 000000ea`73f68040 fffff804`0000006fffff804`0000006f90
ffffd000`3a20d760 fffff804`014a455d: 00000000`00000001 ffffd000`3a20d941 ffffe000`fcacb000 ffffd000`3a20d951: ?? ::FNODOBFM::`karakterlánc"+0x17252
ffffd000`3a20d8c0 fffff804`013a34ac: 00000000`00000004 00000000`00000000
ffffd000`3a20d990 fffff804`0117d313: ffffffff`ffffffe 00000000`00000000 00000000`00000000 000000eb`a0cf1380:64Fintle+0txrite
ffffd000`3a20da90 00007ffb`475307da: 00000000`00000000 00000000`00000000 00000000`00000000 000000000 0000000000x13
000 000 307da

A kód azon része, ahol a hiba történt:

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: Géptulajdonos

A modul neve a kernel objektumtáblájában. Ha az analizátor képes volt észlelni problémás sofőr, a név megjelenik a MODULE_NAME és az IMAGE_NAME mezőben:

MODULE_NAME: nt
IMAGE_NAME: ntkrnlmp.exe

1: kd > lmvm nt
Böngésszen a teljes modullistában
Betöltött szimbólum képfájl: ntkrnlmp.exe
Leképezett memóriaképfájl: C:\ProgramData\dbg\sym\ntoskrnl.exe\5A9A2147787000\ntoskrnl.exe
A kép elérési útja: ntkrnlmp.exe
A kép neve: ntkrnlmp.exe
Belső név: ntkrnlmp.exe
Eredeti fájlnév: ntkrnlmp.exe
TermékVerzió: 6.3.9600.18946
Fájlverzió: 6.3.9600.18946 (winblue_ltsb_escrow.180302-1800)

A fenti példában az elemzés az ntkrnlmp.exe kernelfájlra mutatott. Ha a memóriakiíratási elemzés egy rendszer-illesztőprogramra (például win32k.sys) vagy egy kernelfájlra (példánkban például ntkrnlmp.exe) mutat, akkor valószínűleg adott fájl nem a probléma oka. Nagyon gyakran kiderül, hogy a probléma az eszközillesztőben van, BIOS beállítások vagy a berendezés meghibásodása.

Ha azt látja, hogy a BSOD-t egy harmadik féltől származó illesztőprogram okozza, a neve megjelenik a MODULE_NAME és az IMAGE_NAME értékek között.

Például:

A kép elérési útja: \SystemRoot\system32\drivers\cmudaxp.sys
Kép neve: cmudaxp.sys

Nyissa meg az illesztőprogram fájl tulajdonságait, és ellenőrizze a verzióját. A legtöbb esetben az illesztőprogramokkal kapcsolatos probléma megoldódik azok frissítésével.

2010. június 22

Korábban a Windbg külön letölthető volt. A legújabb verziók esetében azonban a Microsoft a Windows SDK részeként tartja meg. A letöltési linkeket alább találja.

Windows 10

A Windbg for Windows 7 legújabb verziója letölthető a https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk linkről

Windows 7

Töltse le a telepítőket a fenti hivatkozásokról. Vegye figyelembe, hogy ez nem tölti le a teljes SDK-t, ez csak egy telepítő. miután futtatta a fájlt, tudsz válassza ki, mely eszközöket szeretné letölteni. Ha csak a Windbg érdekli, akkor minden mást kizárhat, és csak a "Hibakeresési eszközök" lehetőséget válassza a "Közös segédprogramok" alatt.

A fenti csomag a windbg 6.12-es verzióját telepíti. Ha gyorsan szeretné telepíteni a windbg-t, keresse a régebbi verziót (6.11), amely letölthető innen
a bejegyzés végén található link.

A telepítés után megtalálja a programot a Start menü -> Minden program -> Hibakereső eszközök Windowshoz -> Windbg menüpontban.

Bevezetés a WinDBG-be – 1. rész

Alekszandr Antipov

A WinDBG egy nagyszerű hibakereső. Lehet, hogy nem túl felhasználóbarát felülettel rendelkezik, és alapértelmezés szerint nincs fekete háttere, de jelenleg ez az egyik legerősebb és legstabilabb hibakereső a Windows rendszeren. Ebben a cikkben végigvezetem a WinDBG alapjain, hogy elkezdhesse használni.


A WinDBG egy nagyszerű hibakereső. Lehet, hogy nem túl felhasználóbarát felülettel rendelkezik, és alapértelmezés szerint nincs fekete háttere, de jelenleg ez az egyik legerősebb és legstabilabb hibakereső a Windows rendszeren. Ebben a cikkben végigvezetem a WinDBG alapjain, hogy elkezdhesse használni.

Ez az első cikk a WinDBG-ről szóló sorozatban. A sorozatban szereplő összes cikk listája:

  • 1. rész - telepítés, interfész, szimbólumok, távoli/helyi hibakeresés, súgórendszer, modulok, regiszterek.
  • 2. rész – töréspontok.
  • 3. rész - memória ellenőrzése, program lépésről lépésre hibakeresés, tippek és trükkök.

Ebben a cikkben a folyamatokhoz való felszerelést és csatolást tekintjük át, a következőkben pedig a töréspontokat, az átlépést és a memóriaellenőrzést.

WinDBG telepítése

A Windows 7-hez képest a WinDBG telepítési folyamata a Windows 8-ban kissé megváltozott. Ebben a részben egy hibakereső telepítését vizsgáljuk meg mindkettőhöz operációs rendszer.

A WinDBG telepítése Windows 8 rendszeren

A Windows 8 rendszerben a WinDBG a Windows illesztőprogram-készletében (WDK) található. Telepítheti a Visual Studio-t és a WDK-t, vagy külön telepítheti a Windows 8.1 Hibakeresési eszközök csomagját, amely tartalmazza a WinDBG-t.

A telepítő megkérdezi, hogy a WinDBG-t helyben kívánja-e telepíteni, vagy letölteni a teljes fejlesztői csomagot egy másik gépre. Ez utóbbi lényegében egyenértékű offline telepítő, ami nagyon hasznos, ha a jövőben más rendszerekre szeretné telepíteni a csomagot.

1. ábra: A telepítés típusának kiválasztása

A következő ablakban törölnie kell az összes elem jelölését, kivéve a "Hibakeresési eszközök Windowshoz" elemet, és kattintson a "Letöltés" gombra.

Miután a telepítő befejezte a munkáját, lépjen abba a könyvtárba, ahová a csomagot letöltötte (alapértelmezés szerint ez: c:\Users\Username\Downloads\Windows Kits\8.1\StandaloneSDK), és hajtsa végre a telepítési eljárást.

A WinDBG telepítése Windows 7 és korábbi rendszerekre

Windows 7 és korábbi verziók esetén a WinDBG a "Hibakeresési eszközök Windowshoz" csomag része, amely a Windows SDK és a .Net Framework része. Le kell töltenie a telepítőt, majd a telepítés során válassza a "Hibakeresési eszközök Windowshoz" lehetőséget.

A telepítés során kiválasztom a "Hibakeresési eszközök" opciót az "Újraterjeszthető csomagok" alatt, hogy létrehozzak egy önálló telepítőt a későbbi telepítések megkönnyítése érdekében.

2. ábra: Telepítési lehetőségek kiválasztása önálló telepítő létrehozásához

A telepítés befejeztével rendelkeznie kell WinDBG telepítőkkel a különböző platformokhoz (a c:\Program Files\Microsoft SDKs\Windows\v7.1\Redist\Debugging Tools for Windows\ könyvtárban).

3. ábra: Mappa WinDBG telepítőkkel különböző platformokhoz

WinDBG interfész

4. ábra: A WinDBG megjelenése

Amint először meglátod kinézet WinDGB, rá fog jönni, hogy a hibakereső ijesztően egyszerű. A legtöbb WinDBG függvényt a folyamathibakeresés során tanuljuk meg. Ahelyett, hogy időt vesztegetnénk a felület leírásával, a következő részekben csak a legfontosabb pontokra térünk ki.

A legalapvetőbb dolog, amit a hibakereső felületről tudni kell, a parancsablak, amely két részből áll. Az első terület: egy ablak, ahol a parancsok végrehajtásának eredménye megjelenik. Második terület: egy kis szövegmező a parancsok beviteléhez.

5. ábra: WinDBG parancsablak

Szimbólumok

A legtöbb esetben a WinDBG nem igényel különleges beállításokat, és a dobozból kivetve megfelelően működik. De egy fontos dolog, amit módosítani kell, az a szimbólumok. A szimbólumok olyan fájlok, amelyek a programfordítás során a végrehajtható fájllal együtt jönnek létre, és hibakeresési információkat (függvényeket és változóneveket) tartalmaznak. A hibakeresési információk lehetővé teszik egy alkalmazás funkcióinak felfedezését hibakeresés vagy szétszerelés közben. A Microsoft számos összetevője szimbólumokkal van összeállítva, amelyeket a Microsoft Symbol Serveren keresztül terjesztenek. A többi futtatható fájl esetében nem minden olyan rózsás – nagyon ritkán hibakeresési információkat tartalmazó fájlok is mellékelve vannak az alkalmazáshoz. A legtöbb esetben a vállalatok korlátozzák az ilyen információkhoz való hozzáférést.

A WinDBG Microsoft Symbol Server használatára való beállításához lépjen a Fájl:Szimbólumfájl elérési útja szakaszba, és állítsa be az elérési utat a következőre: SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols. Persze kicsit furcsa, hogy a csillagokat határolóként használják. A Microsoft Symbol Server beállítása után a szimbólumok letöltésre kerülnek a C:\Symbols mappába.

6. ábra: A Microsoft Symbol Server beállítása

A WinDBG szükség esetén automatikusan betölti a bináris fájlok szimbólumait. Saját szimbólummappát is hozzáadhat, például:

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

Szimbólumok hozzáadása hibakeresés közben

Ha szimbólumokat kell importálnia hibakeresés közben, akkor ezt megteheti a .sympath segítségével (a parancsablak megjelenik, amikor bekapcsolódik a folyamatba). Például a c:\SomeOtherSymbolFolder mappa hozzáadásához írja be a következő parancsot:

0:025> .sympath+ c:\SomeOtherSymbolFolder
A szimbólumkeresési útvonal: SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;c:\SomeOtherSymbolFolder
A kibővített szimbólumkeresési útvonal: srv*c:\symbols*http://msdl.microsoft.com/download/symbols;c:\someothersymbolfolder

Az elérési utak hozzáadása vagy módosítása után célszerű újratölteni a szimbólumokat:

0:025> .újratöltés
Az aktuális modulok újratöltése
................................................................
...............................................

Betöltött szimbólumok ellenőrzése

Az x*! paranccsal láthatja, hogy mely modulokba van betöltött szimbólum. Bár a WinDBG csak szükség szerint tölti be a szimbólumokat, az x*! betölthető szimbólumokat jelenít meg. Kényszerítheti a szimbólumok betöltését az ld * paranccsal (ez eltarthat egy ideig, és leállíthatja ezt a folyamatot a Debug:Break megnyitásával).

Most láthatjuk az egyes modulokhoz tartozó szimbólumokat.

8. ábra: Szimbólumok listája

Helyi folyamat hibakeresése

A helyi folyamatok hibakeresése során két lehetőség közül választhat:

  1. Csatolás egy már futó folyamathoz.
  2. Indítsa el a folyamatot a WinDBG-n keresztül.

Mindegyik módszernek megvannak a maga előnyei és hátrányai. Ha mondjuk a WinDBG-n keresztül futtatja a programot, akkor rendelkezésre áll néhány speciális hibakeresési lehetőség (például kupac hibakeresés), amelyek az alkalmazás összeomlását okozhatják. Másrészt vannak olyan programok is, amelyek összeomlanak, ha hibakeresőt csatolunk hozzájuk. Egyes alkalmazások (különösen a rosszindulatú programok) indításkor ellenőrzik a hibakereső jelenlétét a rendszerben, és ennek megfelelően ebben az esetben van értelme egy már futó folyamathoz ragaszkodni. Néha előfordul egy Windows-szolgáltatás hibakeresése, amely beállít bizonyos paramétereket az indításkor, ezért a hibakeresési folyamat egyszerűsítése érdekében jobb, ha egy futó folyamathoz csatlakozik, és nem indítja el a szolgáltatást egy hibakeresőn keresztül. Vannak, akik azt állítják, hogy egy folyamat hibakeresőn keresztüli futtatása komoly hatással van a teljesítményre. Röviden, próbálja ki mindkettőt, és válassza ki a legmegfelelőbbet. Ha valamilyen oknál fogva egy adott módszert preferálsz, oszd meg gondolataidat kommentben!

Egy folyamat elindítása

Ha olyan önálló alkalmazás hibakeresését végzi, amely helyileg fut, és nincs hálózatba kapcsolva, érdemes lehet a WinDBG-n keresztül futtatni. Ez azonban nem jelenti azt, hogy nem csatlakozhat egy már futó folyamathoz. Válassza ki az Ön számára legkényelmesebb módot.

A folyamat elindítása nem nehéz. Lépjen a "File:Open Executable" elemre, és válassza ki a végrehajtani kívánt fájlt. Megadhat argumentumokat is, vagy beállíthatja a kezdőkönyvtárat:

9. ábra: Kiválasztás futtatható fájl hibakereséshez

Folyamat kapcsolat

A már futó folyamathoz való csatlakozás szintén nem nehéz. Azonban kérjük, vegye figyelembe, hogy bizonyos esetekben időbe telhet, amíg megtalálja a pontos hibakeresési folyamatot. Egyes böngészők például egy szülőfolyamatot, majd több további folyamatot hoznak létre minden lapon. Tehát a hibakereső összeomlási kiírattól függően érdemes lehet nem a szülőfolyamathoz kapcsolni, hanem a laphoz társított folyamathoz.

Ha egy már futó folyamathoz szeretne csatolni, lépjen a „Fájl:Csatlakozás folyamathoz” elemre, majd válassza ki a PID-t vagy a folyamat nevét. Ne feledje, hogy megfelelő jogosultságokkal kell rendelkeznie a folyamatba való bekapcsolódáshoz.

10. ábra: A kapcsolódni kívánt folyamat kiválasztása

Ha a csatlakozás után az alkalmazás felfüggesztette a munkáját, a megfelelő négyzet bejelölésével használhatja a "Noninvaise" módot.

Távoli folyamat hibakeresése

Néha előfordulhat, hogy egy távoli rendszeren lévő folyamatot hibakeresni kell. Sokkal kényelmesebb lenne ezt a problémát helyi debuggerrel megoldani ahelyett, hogy használnánk Virtuális gép vagy RDP. Vagy esetleg a LoginUI.exe folyamat hibakeresését végzi, amely csak akkor érhető el, ha a rendszer le van zárva. Az ehhez hasonló helyzetekben használhatja a WinDBG helyi verzióját, és távolról csatolhatja a folyamatokhoz. E problémák megoldására két leggyakoribb módszer létezik.

Meglévő hibakeresési munkamenetek

Ha már elkezdte a program helyi hibakeresését (egy folyamat WinDBG-n keresztüli csatolásával vagy elindításával), akkor megadhat egy adott parancsot, és a WinDBG elindít egy "hallgatót" (hallgatót), amelyhez a távoli hibakereső csatlakozhat. Ehhez használja a .server parancsot:

Szerver tcp:port=5005

A fenti parancs futtatása után a következő figyelmeztetést láthatja:

11. ábra: Figyelmeztető üzenet, amely a „hallgató” létrehozására szolgáló parancs futtatása után jelenhet meg

Ezután a WinDBG jelenti, hogy a szerver fut:

0:005> .server tcp:port=5005
0: -remote tcp:Port=5005,Szerver=USER-PC

Most már csatlakozhat egy távoli gazdagépről egy már létező hibakereső munkamenethez, ha a "Fájl:Kapcsolódás távoli munkamenethez" elemre lép, és beír valamit a szövegmezőbe: tcp:Port=5005,Server=192.168.127.138

12. ábra: Távoli kapcsolat egy hibakereső munkamenethez

A csatlakozás után megerősítést kap a távoli kliensen:


a szerver elindult. Az ügyfél ezen parancssorok bármelyikéhez kapcsolódhat
0: -remote tcp:Port=5005,Szerver=USER-PC
GÉPNÉV\Felhasználó (tcp 192.168.127.138:13334) csatlakozott: 2013. december 16. hétfő, 09:03:03

és az üzenet a hibakereső helyi verziójában:

GÉPNÉV\Felhasználó (tcp 192.168.127.138:13334) csatlakozott: 2013. december 16. hétfő, 09:03:03

Hozzon létre egy távoli szervert

Létrehozhat egy külön WinDBG-kiszolgálót is, távolról csatlakozhat hozzá, és kiválaszthat egy folyamatot a hibakereséshez. Ezt a dbgsrv.exe fájl használatával teheti meg, amelyben a folyamatok hibakeresését tervezi. Egy ilyen szerver indításához futtassa a következő parancsot:

dbgsrv.exe -t tcp:port=5005

13. ábra: Távoli szerver indítása

És ismét egy biztonsági figyelmeztetést kaphat, amelyet el kell fogadnia:

14. ábra: Biztonsági üzenet, amely megjelenhet az indítás során hibakereső szerver

Akkor csatlakozhat a hibakereső szerverhez, ha megnyitja a "Fájl: Csatlakozás távoli csonkhoz" fájlt, és beírja a következő sort a szövegmezőbe: tcp:Port=5005,Szerver=192.168.127.138

15. ábra: Csatlakozás a hibakereső szerverhez

Csatlakozás után nem fog kapni semmilyen jelet arról, hogy csatlakozott, de ha a "Fájl:Csatlakozás folyamathoz" menüpontra lép, megjelenik a hibakereső szerverfolyamatok listája (ahol a dbgsrv.exe fut). Most úgy kapcsolódhat be a folyamatba, mintha helyben tenné.

Súgó rendszer

A WinDBG súgórendszere nagyszerű. Amellett, hogy valami újat tanul, képesnek kell lennie arra, hogy segítséget kapjon egy parancsról. A .hh paranccsal elérheti a WinDBG súgóját:

Súgót is kaphat egy adott parancshoz. Ha például segítséget szeretne kapni a .reload paranccsal kapcsolatban, használja a következő parancsot:

windbg> .hh .reload

Vagy egyszerűen lépjen a „Súgó:Tartalom” szakaszba.

Modulok

A program futása közben különféle modulokat importálnak, amelyek biztosítják az alkalmazás funkcionalitását. Ezért, ha tudja, hogy egy alkalmazás mely modulokat importálja, jobban megértheti, hogyan működik. Sok esetben a program által betöltött adott modulban kell hibakeresést végezni, nem magát a végrehajtható fájlt.

A folyamathoz való csatlakozás után a WinDBG automatikusan megjeleníti a betöltött modulokat. Például alább láthatók a modulok, miután csatlakoztam a calc.exe-hez:

Microsoft (R) Windows Debugger 6.12.0002.633 X86 verzió
Szerzői jog (c) Microsoft Corporation. Minden jog fenntartva.

*** várjon függőben lévő csatolással
A szimbólum keresési útvonala: SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
A végrehajtható keresési útvonal:
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

Később a hibakeresési folyamat során ezt a listát ismét megjelenítheti az lmf paranccsal:

0:005>lmf
kezdés vége modul neve
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 UxTheme C:\Windows\system32\UxTheme.dll
74710000 748ae000 COMCTL32 C:\Windows\WinSxS\x86_microsoft.windows.common-
controls_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc\COMCTL32.dll
74c80000 74c89000 C VERZIÓ:\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 777ba000LPK C:\Windows\system32\LPK.dll
777c0000 77860000 ADVAPI32 C:\Windows\system32\ADVAPI32.dll

Egy adott modul letöltési címét az "lmf m" paranccsal is megtudhatja:

0:005> lmf m kernel32
kezdés vége modul neve
77550000 77624000 kernel32 C:\Windows\system32\kernel32.dll

Egy adott modul képfejlécéről is tájékozódhat a !dh kiterjesztéssel ( Felkiáltójel kiterjesztést jelez):

0:005> !dh kernel32

Fájl típusa: DLL
FÁJLFEJLESZ ÉRTÉKEI
14C gép (i386)
4 számú szakasz
4A5BDAAD idő dátum bélyegző 2009. július 13. hétfő 21:09:01

0 fájlmutató a szimbólumtáblázatra
0 számú szimbólum
Az opcionális fejléc E0 mérete
2102 jellemzői
Végrehajtható
32 bites word gép
DLL

OPCIONÁLIS FEJLŐ ÉRTÉKEI
10B varázslat#
9.00 linker verzió
C4600 méretkód
Az inicializált adatok C800 mérete
0 méretű nem inicializált adat
510C5 belépési pont címe
1000 alapkód
----- új -----
77550000 képbázis
1000 szakasz-igazítás
200 fájl igazítás
3 alrendszer (Windows CUI)
6.01 operációs rendszer verzió
6.01 képverzió
6.01 alrendszer verzió
D4000 méretű kép
800 méretű fejléc
D5597 ellenőrző összeg
00040000 veremtartalék mérete
00001000 stack-commit mérete
00100000 nagyságú kupactartalék
00001000 halom véglegesítés mérete
140 DLL jellemzők
dinamikus alap
NX kompatibilis
B4DA8 [A915] az Export Directory címe
BF6C0 [ 1F4] az Import Directory címe
C7000 [ 520] a Resource Directory címe
0 [ 0] a kivételek címtárának címe
0 [ 0] a Security Directory címe
C8000 [B098] az alap áthelyezési címtár címe
C5460 [ 38] a Debug Directory címe
0 [ 0] a leírási könyvtár címe
0 [ 0] a speciális címtár címe
0 [ 0] a szál tárolási címtárának címe
816B8 [ 40] a Betöltési konfigurációs könyvtár címe
278 [ 408] a Bound Import Directory címe
1000 [DE8] az Import Address Table Directory címe
0 [ 0] a Delay Import Directory címe
0 [ 0] a COR20 fejléckönyvtár címe
0 [ 0] a fenntartott címtár címe

SZAKASZ FEJLŐJE #1
.szöveges név
C44C1 virtuális méret
1000 virtuális cím
C4600 nyers adatok mérete
800 fájlmutató a nyers adatokra

0 költöztetések száma
0 sorszámok száma
60000020 zászló
Kód
(nincs igazítás megadva)
Hajtsa végre a Read parancsot

Könyvtárak hibakeresése (2)
Írja be a Méret Címmutatót
cv 25 c549c c4c9c Formátum: RSDS, guid, 2, kernel32.pdb
(10) 4 c5498 c4c98

SZAKASZ FEJLESZTŐ #2
.adatnév
FEC virtuális méret
C6000 virtuális cím
A nyers adatok E00 mérete
C4E00 fájlmutató a nyers adatokra
0 fájlmutató az áthelyezési táblázatra
0 fájlmutató a sorszámokhoz
0 költöztetések száma
0 sorszámok száma
C0000040 zászlók
inicializált adatok
(nincs igazítás megadva)
Ír olvas

SZAKASZ FEJLŐJE #3
.rsrc név
520 virtuális méret
C7000 virtuális cím
600 méretű nyers adat
C5C00 fájlmutató a nyers adatokra
0 fájlmutató az áthelyezési táblázatra
0 fájlmutató a sorszámokhoz
0 költöztetések száma
0 sorszámok száma
40000040 zászló
inicializált adatok
(nincs igazítás megadva)
Csak olvasható

SZAKASZ FEJLŐJE #4
.relocname
B098 virtuális méret
C8000 virtuális cím
A nyers adatok B200-as mérete
C6200 fájlmutató a nyers adatokra
0 fájlmutató az áthelyezési táblázatra
0 fájlmutató a sorszámokhoz
0 költöztetések száma
0 sorszámok száma
42000040 zászló
inicializált adatok
Eldobható
(nincs igazítás megadva)
Csak olvasható

Üzenetek és kivételek

A folyamathoz való csatolás után először a modulok listája jelenik meg, majd más üzenetek jelenhetnek meg. Például amikor rákapcsolunk a calc.exe fájlra, a WinDBG automatikusan beállít egy töréspontot (ami csak az alkalmazás leállítására szolgáló jelölő). A töréspont információi megjelennek a képernyőn:

(da8.b44): Törési utasítás kivétel – 80000003 kód (első esély)

Ez a bizonyos üzenet kivétel, nevezetesen az első esély kivétel. Lényegében a kivétel egy speciális feltétel, amely egy program végrehajtása során fordul elő. Első esély kivétel azt jelenti, hogy a program azonnal leállt a kivétel bekövetkezte után. A második esély kivétele azt jelenti, hogy a kivétel bekövetkezte után néhány művelet végrehajtásra kerül, majd a program leállítja a munkáját.

Regisztrálok

Az üzenetek és kivételek megjelenítése után a hibakereső kiadja a processzorregiszterek állapotát. A regiszterek olyan speciális változók a processzoron belül, amelyek apró információkat tárolnak, vagy nyomon követik valami állapotát a memóriában. A processzor nagyon gyorsan tudja feldolgozni az ezekben a regiszterekben lévő információkat. Ez sokkal gyorsabb, mintha minden alkalommal információt kapna a buszon a RAM-ból.

A calc.exe-hez való csatlakozás után a WinDBG automatikusan megjeleníti a következő regiszterekről szóló információkat:

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

Később az r paranccsal ismét lemásolhatja ezeket az információkat:

0:005>r
eax=7ffd9000 ebx=00000000 ecx=00000000 edx=776cd23d esi=00000000 edi=00000000
eip=77663540 esp=02affd9c ebp=02affdc8 iopl=0 nv up 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

Ha egy adott regiszter értékét szeretnénk megkapni, akkor a következő parancsot hajthatjuk végre:

0:005> r ex
eax=7ffd9000

Egyidejűleg több nyilvántartásból is beszerezhető az információ az alábbiak szerint:

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

Mutató az utasításra

Az utolsó parancs a futtatási utasításokról szól. Itt is megjelenik az információ, mint az r parancs esetében, hogy mi tartalmazza az EIP regisztert. Az EIP egy regiszter, amely tartalmazza a processzor által végrehajtandó következő utasítás helyét. Amit a WinDBG megjelenít, az az u eip L1 parancs megfelelője, amely után a WinDBG az EIP-regiszterben megadott címre megy, ezt a részt összeállítási kóddá alakítja és megjeleníti a képernyőn.

ntdll!DbgBreakPoint:
77663540 cc int 3

maradj kapcsolatban

A következő cikkekben megvizsgáljuk, hogyan használhatjuk a WinDBG-t harcban: töréspontok, léptető hibakeresés és memóriamegtekintés. Ne válts! J.

Hibakereső eszközök Windowshoz- Működési kód hibakereső eszközök Windows rendszerek. Ezek a Microsoft szabadon terjesztett programjai, amelyek felhasználói módú és kernelmódú kódok hibakeresésére szolgálnak: alkalmazások, illesztőprogramok, szolgáltatások, kernelmodulok. Az eszközkészlet tartalmaz konzol- és grafikus felhasználói felület-hibakeresőket, szimbólumokkal való munkavégzésre szolgáló segédprogramokat, fájlokat, folyamatokat, valamint távoli hibakereső segédprogramokat. Az eszközkészlet olyan segédprogramokat tartalmaz, amelyek segítségével megtalálhatja a rendszer különböző összetevőiben fellépő hibák okait. Hibakereső eszközök Windowshoz egy bizonyos pillanattól kezdve nem tölthetők le önálló disztribúció formájában, és a Windows SDK (Windows Software Development Kit) részét képezik. Hangszeres készlet Windows eszközök Az SDK pedig elérhető az MSDN előfizetési program részeként, vagy külön disztribúcióként ingyenesen letölthető az msdn.microsoft.com webhelyről. A fejlesztők szerint a legújabb és legjobb jelenlegi verzió A Hibakereső eszközök Windowshoz a Windows SDK-ban találhatók.

A Windows hibakereső eszközeit gyakran frissítik és teszik elérhetővé a nyilvánosság számára, és ez a folyamat nem függ az operációs rendszerek kiadásától. Ezért rendszeresen ellenőrizze az új verziókat.

Lássuk, mire valók a hibakereső eszközök Microsoft Windows:

  • Helyi alkalmazások, szolgáltatások (szolgáltatások), illesztőprogramok és kernel hibakeresése;
  • Távoli alkalmazások, szolgáltatások (szolgáltatások), illesztőprogramok és kernel hibakeresése a hálózaton keresztül;
  • A futó alkalmazások valós időben történő hibakeresése;
  • Az alkalmazások, a kernel és a rendszer egészének memóriakiíratási fájljainak elemzése;
  • Dolgozzon x86/x64/Itanium architektúrán alapuló rendszerekkel;
  • Felhasználói módú és kernel módú programok hibakeresése;

A Windows rendszerhez készült Hibakereső eszközök következő verziói érhetők el: 32 bites x86, Intel Itanium, 64 bites x64. Kettőre van szükségünk: x86 vagy x64.

A Windows rendszerhez készült hibakereső eszközök telepítésének számos módja van, ebben a cikkben csak a főbbeket vesszük figyelembe:

  • Telepítés webes telepítőn keresztül.
  • Hibakereső eszközök telepítése Windowshoz az ISO-ból Windows kép SDK.
  • A Windows rendszerhez készült hibakereső eszközök telepítése közvetlenül a dbg_amd64.msi /dbg_x86.msi csomagokból.

Továbbra sem világos, hogy mikor, miért telepítsek hibakereső eszközöket a számítógépre? Végül is gyakran találkozik olyan helyzettel, amikor a munkakörnyezetbe való beavatkozás rendkívül nem kívánatos! És még inkább, mivel egy új termék telepítése, azaz a rendszerleíró adatbázis / rendszerfájlok módosítása teljesen elfogadhatatlan lehet. Példa erre a küldetéskritikus szerverek. Miért nem veszik figyelembe a fejlesztők az alkalmazások hordozható verzióit, amelyek nem igényelnek telepítést?
Verzióról verzióra a Debugging Tools for Windows csomag telepítési folyamata néhány változáson megy keresztül. Most ugorjunk közvetlenül a telepítési folyamatba, és nézzük meg, hogyan telepíthető az eszköztár.

Hibakereső eszközök telepítése Windows rendszerhez a webes telepítő segítségével

Nyissa meg a Windows SDK archívum oldalát, és keresse meg a Windows 10 nevű részt, és a „Windows 10 SDK (10586) és Microsoft Windows 10 Mobile Device Emulator (verzió 10586.11)” elem alatt.

Kattintson egy elemre SDK TELEPÍTÉSE. A kattintás után töltse le és futtassa az sdksetup.exe fájlt, amely elindítja a Windows SDK online telepítésének folyamatát. A kezdeti szakaszban a telepítő ellenőrzi, hogy a .NET-keretrendszer csomag telepítve van-e a rendszeren legújabb verzió(V Ebben a pillanatban ez 4,5). Ha a csomag hiányzik, a rendszer felajánlja a telepítést, és az állomás újraindul, ha befejezte. Közvetlenül az újraindítás után, a felhasználói engedélyezés szakaszában, a telepítési folyamat közvetlenül a Windows SDK-val kezdődik.

Gyakran előfordulhat, hogy kivétel nélkül a csomag összes összetevőjének kiválasztásakor hibák fordulhatnak elő a telepítési folyamat során. Ebben az esetben ajánlatos az alkatrészeket szelektíven telepíteni, a minimálisan szükséges készletet.

A Windows Debugging Tools telepítése után a hibakereső fájlok helye, amikor ez a módszer telepítésünk a következő lesz:

  • 64 bites verziók: C:\Program Files (x86)\Windows Kits\x.x\Debuggers\x64
  • 32 bites verziók: C:\Program Files (x86)\Windows Kits\x.x\Debuggers\x86

* ahol az x.x a fejlesztőkészlet egy adott verziója;
Észrevettük, hogy a 8-as és újabb verziók telepítési útvonalai mindenkinél érezhetően eltérnek a klasszikustól előző verziók hibakereső eszközök?

Hatalmas plusz ez a módszer A Debigging Tools for Windows telepítése azt jelenti, hogy egyszerre telepíti a hibakereső eszközök verzióit az összes architektúrára.

Hibakereső eszközök telepítése Windowshoz a Windows SDK ISO-ból

Ez a módszer magában foglalja a Hibakereső eszközök Windowshoz telepítését a teljes Windows SDK (Software Developers Kit) telepítőkészlet használatával. Egy bizonyos ideig töltse le iso kép a megfelelő rendszerhez látogassa meg a Windows SDK archívum oldalát. Jelenleg azonban az SDK ISO-képet kaphat, ha futtatja az sdksetup.exe webes telepítőt, és kiválasztja az elemet Töltse le a Windows szoftverfejlesztő készletet a telepítő indító ablakában:

Mint kiderült, a webes telepítőt használó korábbi telepítési módszer meglehetősen szeszélyes és gyakran meghiúsul. Tiszta rendszereken problémamentesen települ, de kellően terhelt rendszereken számos probléma merül fel. Ha ez a helyzet, akkor használja ezt a módszert.

Ennek megfelelően az oldalon ki kell választani a kívánt disztribúciós készletet, nekem (és gondolom sokaknak) jelenleg ez a "Windows SDK for Windows 7 and .NET Framework 4" és egy kicsit lent kattintson a "Get" linkre. DVD ISO kép" .

Ha az msdn.microsoft.com webhelyen dolgozik, azt javaslom, hogy használjon böngészőt internet böngésző, mert előfordultak olyan esetek, amikor a versengő termékek nem működnek!

Ennek megfelelően csak szükség szerint kell választani. A Windows Debugging Tools bitessége általában megegyezik a rendszer bitségével. A tesztrendszereim többnyire 64 bitesek, így a legtöbb esetben a GRMSDKX_EN_DVD.iso 64 bites rendszerhez töltöm le a képet.
Ezután a kép letöltése után valahogyan dolgoznunk kell a meglévő ISO képpel. A hagyományos módszer természetesen a CD írása, de ez meglehetősen hosszú és néha költséges módszer. Javaslom ingyenes segédprogramok használatát a virtuális lemezeszközök létrehozásához a rendszerben. Személy szerint én inkább a DEAMON Tools Lite programot használom erre a célra. Lehet, hogy valakinek más preferenciái vannak, közvetlenebb vagy könnyedebb segédprogramok, ízben és színben, ahogy mondják. A DAEMON Tools Lite telepítése után egyszerűen kattintson duplán a GRMSDKX_EN_DVD.iso képfájlra, és van egy új virtuális CD-m:

Ezután dupla kattintással aktiválom az automatikus betöltést, és elindítom a Windows SDK telepítését:

Amikor eljön a sor, hogy kiválasszuk a listából a telepítendő összetevőket, a képernyőképen megjelöltek kivételével abszolút minden opciót letiltunk. Ez most segít elkerülni a szükségtelen hibákat.


Ez így van, a képernyőképen két lehetőség látható: "Windows Performance Toolkit" és "Hibakeresési eszközök Windowshoz". Válassza mindkettőt, mert a Windows Performance Toolkit minden bizonnyal jól jön a munkájában! Továbbá a "Tovább" gombra kattintás után a telepítés normál módban folytatódik. És a végén látni fogja a "Telepítés befejeződött" feliratot.
A telepítés befejezése után a Debugging Tools for Windows készlet munkakönyvtárai a következők lesznek:

  • x86-os verzióhoz:
  • x64-es verzióhoz:

Ezzel befejeződik a Hibakereső eszközök Windowshoz telepítése.

Hibakereső eszközök telepítése Windowshoz .msi fájlon keresztül

Abban az esetben, ha a Debugging Tools for Windows telepítése során az előző két módon problémák merültek fel, továbbra is van még egy, a legmegbízhatóbb és legidőtállóbb, amely, úgymond, nem egyszer segített. Egyszer, a Windows SDK-ba való integráció előtt, a Debugging Tools for Windows külön .msi telepítőként is elérhető volt, amely még mindig megtalálható, de már a Windows SDK disztribúciójában. Mivel a Windows SDK-ról már rendelkezünk ISO képpel, nem tudjuk beilleszteni a rendszerbe, hanem egyszerűen megnyitjuk a jól ismert WinRAR archiválóval, vagy bármilyen más, az ISO lemezek tartalmával működő termékkel.

A kép megnyitása után a gyökérben található "Setup" könyvtárba kell mennünk, majd ki kell választani az egyik könyvtárat:

  • A 64 bites verzió telepítése: \Setup\WinSDKDebuggingTools_amd64és csomagolja ki a dbg_amd64.msi fájlt ebből a könyvtárból.
  • A 32 bites verzió telepítéséhez: \Setup\WinSDKDebuggingTools, és csomagolja ki a dbg_x86.msi fájlt ebből a könyvtárból.

A telepítés befejezése után a Debugging Tools for Windows készlet munkakönyvtárai a következők lesznek:

  • x86-os verzióhoz: C:\Program Files (x86)\Hibakeresési eszközök Windowshoz (x86)
  • x64-es verzióhoz: C:\Program Files\Debugging Tools for Windows (x64)

Ezen a ponton a Debugging Tools for Windows telepítése befejezettnek tekinthető.

további információ

Nem tudom, mihez kapcsolódik, talán az én figyelmetlenségemből, de a Debugging Tools for Windows telepítése után a telepítő nem állítja be a könyvtár elérési útját a Path system path változóban található hibakeresővel. Ez bizonyos korlátozásokat ír elő a különféle hibakeresési feladatok közvetlenül a konzolról történő futtatására vonatkozóan. Ezért út hiányában magam írok az ablakba Környezeti változók a hibakereső eszközök elérési útja:

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

* Az Ön esetében az elérési utak eltérő bitességű operációs rendszer használata és más verziójú SDK használata miatt is eltérhetnek.

A Debugging Tools for Windows csomag segédprogramjai hordozható alkalmazásként is működhetnek, csak át kell másolni a könyvtárat a működő rendszerből Microsoft Windows Performance Toolkités hordozható verzióként használja egy éles szerveren. De ne felejtse el figyelembe venni a rendszer kapacitását !! Még akkor is, ha a csomag teljes telepítését végrehajtotta egy kritikus rendszeren, a telepítés után azonnal elkezdheti a munkát, nincs szükség újraindításra.

Hibakereső eszközök Windowshoz

És most végre itt van a Hibakereső eszközök Windowshoz összetétele:

Fájl Célja
adplus.doc Az ADPlus segédprogram dokumentációja.
adplus.exe Konzolalkalmazás, amely automatizálja a cdb hibakereső munkáját, hogy kiíratokat, naplófájlokat hozzon létre egy vagy több folyamathoz.
agestore.exe Egy segédprogram elavult fájlok eltávolítására a szimbólumszerver vagy a forrásszerver által használt tárolóról.
breakin.exe Egy segédprogram, amely lehetővé teszi egyéni szünet-kombinációk küldését a folyamatoknak, hasonlóan a CTRL+C billentyűkombinációhoz.
cdb.exe Felhasználói mód konzol hibakereső.
convertstore.exe Segédprogram karakterek 2-szintűről 3-szintűre konvertálására.
dbengprx.exe Ripiter (proxy szerver) távoli hibakereséshez.
dbgpc.exe Egy RPC-hívás állapotával kapcsolatos információk megjelenítésére szolgáló segédprogram.
dbgsrv.exe A távoli hibakereséshez használt szerverfolyamat.
dbh.exe Segédprogram egy szimbólumfájl tartalmával kapcsolatos információk megjelenítésére.
dumpchk.exe Dump ellenőrző segédprogram. Segédprogram a dump fájl gyors ellenőrzéséhez.
dumpexam.exe Memóriakiíratások elemzésére szolgáló segédprogram. Az eredmény a %SystemRoot%\MEMORY.TXT fájlba kerül.
gflags.exe Globális rendszerjelzők szerkesztője. A segédprogram kezeli a rendszerleíró kulcsokat és egyéb beállításokat.
i386kd.exe Burkolat kd-hez. Ez volt az a kd, amit valaha a Windows NT/2000 alapú x86-os gépekhez készült rendszerekben hívtak? Valószínűleg kompatibilitási okokból hagyták ki.
ia64kd.exe Burkolat kd-hez. Ez volt az a kd, amit valaha a Windows NT/2000 alapú rendszerekhez hívtak ia64-es gépekhez? Valószínűleg kompatibilitási okokból hagyták ki.
kd.exe Kernel módú konzol hibakereső.
kdbgctrl.exe Kernel hibakereső eszköz. Segédprogram a kernel hibakereső kapcsolatának kezelésére és konfigurálására.
kdsrv.exe Csatlakozási szerver a KD-hez. A segédprogram egy kis alkalmazás, amely fut, és várja a távoli kapcsolatokat. A kd egy kliensen fut, és csatlakozik ahhoz a szerverhez távoli hibakeresés céljából. A kiszolgálónak és a kliensnek is ugyanabból a Hibakereső eszközök összeállításból kell származnia.
kill.exe Segédprogram a folyamatok befejezéséhez.
list.exe Segédprogram egy fájl tartalmának a képernyőn való megjelenítéséhez. Ez a miniatűr segédprogram egyetlen célt szolgált: nagy szöveg- vagy naplófájlok megtekintése. Kevés memóriaterületet foglal el, mivel részenként tölti be a szöveget.
logger.exe Egy apró hibakereső, amely csak egy folyamattal tud működni. A segédprogram beszúrja a logexts.dll fájlt a folyamattérbe, amely rögzíti a vizsgált program összes függvényhívását és egyéb műveletét.
logviewer.exe A logger.exe hibakereső által írt naplók megtekintésére szolgáló segédprogram.
ntsd.exe Microsoft NT Symbolic Debugger (NTSD). Egy hibakereső, amely megegyezik a cdb-vel, azzal a különbséggel, hogy indításkor szöveges ablakot hoz létre. A cdb-hez hasonlóan az ntsd is képes a konzolalkalmazások és a grafikus alkalmazások hibakeresésére.
pdbcopy.exe Segédprogram privát szimbólumok szimbólumfájlból való eltávolítására, a szimbólumfájlban található nyilvános szimbólumok vezérlésére.
remote.exe Segédprogram bármely KD, CDB és NTSD konzolhibakereső távoli hibakereséséhez és távvezérléséhez. Lehetővé teszi ezen konzolhibakeresők távoli futtatását.
rtlist.exe Távoli Task Viewer. A segédprogram a futó folyamatok listázására szolgál a DbgSrv szerverfolyamaton keresztül.
symchk.exe Segédprogram szimbólumok letöltéséhez a Microsoft szimbólumkiszolgálóról, és helyi szimbólum-gyorsítótár létrehozásához.
symstore.exe Segédprogram szimbólumok hálózati vagy helyi tárolására (2-szintű/3-szintű). A szimbólumtároló egy speciális könyvtár a lemezen, amely egy bizonyos struktúra szerint épül fel, és szimbólumokat tartalmaz. A szimbólumok gyökérkönyvtárában egy almappastruktúra jön létre, amelynek nevei megegyeznek a komponensek nevével. Az almappák mindegyike tartalmaz beágyazott almappákat speciális névvel, amelyeket bináris fájlok kivonatolása révén kaptak. A symstore segédprogram átvizsgálja a komponensmappákat, és új összetevőket ad a szimbólumtárhoz, ahonnan bármely ügyfél lekérheti azokat. Állítólag a symstore-t arra használják, hogy szimbólumokat szerezzenek be a 0-rétegű tárolóból, és helyezzék el őket a 2-rétegű/3-szintű tárolóba.
tlist.exe Feladatnézegető. Az összes futó folyamat listázására szolgáló segédprogram.
umdh.exe Felhasználói módú dump heap segédprogram. Segédprogram egy kiválasztott folyamat halmainak elemzésére. Lehetővé teszi a kupac különféle opcióinak megjelenítését.
usbview.exe USB néző. Segédprogram a számítógéphez csatlakoztatott USB-eszközök megtekintéséhez.
vmdemux.exe Virtuális gép demultiplexer. Több elnevezett csövet hoz létre egyetlen COM-kapcsolathoz. A csatornák a virtuális gép különféle összetevőinek hibakeresésére szolgálnak
windbg.exe Felhasználói mód és kernel módú hibakereső grafikus felhasználói felülettel.

Az okok azonosításához kék képernyők(BSOD) elemeznie kell a memóriakiíratást. Az esetek túlnyomó részében elég egy minidump, amit kritikus hibák esetén hoz létre a rendszer.
Ez a cikk tartalmazza lépésről lépésre szóló utasítás a WinDBG telepítéséhez és konfigurálásához - egy hatékony hibakereső eszköz, amely lehetővé teszi a BSOD valódi okának azonosítását.

1. lépés – Kis Memory Dump Recording beállítása

2. lépés – A WinDBG telepítése

A memóriakiíratok elemzéséhez telepítenie kell a WinDBG hibakeresőt, amely a Windows SDK része. A cikk írásakor a legújabb elérhető Windows verziók SDK:

  • Windows 10 SDK (online telepítő letöltése)
  • Windows 8.1 SDK (online telepítő letöltése)

3. lépés – .dmp fájlok hozzárendelése a WinDBG-hez

Leképezheti .dmp fájljait WinDBG-re, hogy könnyebben olvasható legyen és elemezze a memóriakiíratásokat. Ez lehetővé teszi, hogy az Intézőből közvetlenül a WinDBG-ben nyissa meg a dump fájlokat, megkerülve az előzetes indítást.


4. lépés – A Symbol Server beállítása hibakeresési szimbólumfájlok fogadására


A WinDBG telepítése és kezdeti konfigurálása ezzel befejeződött. A megjelenés megváltoztatásához lépjen a menübe Kilátás- A betűtípus beállításokat az elem kiválasztásával találja meg Betűtípusés a konzolablak beállításait Lehetőségek.




Top