Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Miközben egy célalkalmazást felhasználói módban vagy egy célszámítógépet kernel módban hibakeres, a cél fut vagy leállítva van.
Amikor a hibakereső kernel módú célhoz csatlakozik, a hibakereső hagyja futni a célt, kivéve, ha a -bparancssori beállítást használja, a célrendszer nem válaszol (vagyis összeomlott), vagy a célrendszer egy korábbi kernel-hibakeresési művelet miatt továbbra is leáll.
Amikor a hibakereső elindít vagy csatlakozik egy felhasználói módú célhoz, a hibakereső azonnal leállítja a célhelyet, kivéve, ha a -g parancssori beállítást használja. További információ: Kezdeti töréspont.
Amikor a célpont fut
Amikor a cél fut, a legtöbb hibakereső művelet nem érhető el.
Ha le szeretne állítani egy futó célpontot, kiadhat egy Törés parancsot. Ez a parancs azt eredményezi, hogy a hibakereső betörik a célba. Vagyis a hibakereső leállítja a célhelyet, és minden vezérlést a hibakereső kap. Előfordulhat, hogy az alkalmazás nem szakad meg azonnal. Ha például az összes szál éppen rendszerkódot hajt végre, vagy várakozási műveletet hajt végre, az alkalmazás csak akkor szakad meg, ha a vezérlés visszakerült az alkalmazás kódjába.
Ha egy futó cél kivételt tapasztal, ha bizonyos események történnek, töréspontot talál, vagy ha az alkalmazás normálisan bezárul, a cél a hibakeresőbe törik. Ez a művelet leállítja a célt, és minden vezérlést megad a hibakeresőnek. A Hibakereső parancs ablakban megjelenik egy üzenet, amely leírja a hibát, az eseményt vagy a töréspontot.
Amikor a célt leállítják
A cél végrehajtásának elindításához vagy szabályozásához tegye a következőket:
Az alkalmazás futtatásának megkezdéséhez adja ki a Go parancsot.
Ha egyszerre egy utasítást szeretne végigvezetni az alkalmazáson, használja a Step Into vagy Step Over parancsokat. Ha függvényhívás történik, a Step Into beírja a függvényt, és folytatja az egyes utasítások végiglépését. A Step Over egyetlen lépésként kezeli a függvényhívást. Ha a hibakereső összeszerelési módban van, a léptetés egyszerre egy gépi utasítással történik. Ha a hibakereső forrás módban van, a léptetés egyszerre egy forrássoron történik.
Ha be szeretné fejezni az aktuális függvényt, és le szeretné állítani a visszatérést, használja a Step Out vagy a Trace and Watch parancsot. A Kilépés parancs az aktuális függvény végéig folytatódik. A Nyomkövetés és a Figyelés addig folytatódik, amíg az aktuális függvény véget nem ér, és megjeleníti a függvény hívásainak összegzését is. A Trace and Watch parancsot azonban ki kell adnia a szóban forgó függvény első utasítására.
Ha kivétel történik, az Ugrás kivétellel kezelve és az Ugrás kivétellel nem kezelve parancsokkal folytathatja a végrehajtást, és szabályozhatja a kivétel állapotát. (A kivételekről további információt a Kivételek és események szabályozása című témakörben talál.)
(Csak WinDbg) Ha kijelöl egy sort a Szétszerelés ablakban vagy a Forrás ablakban , majd a Futtatás a kurzorhoz parancsot használja, a program addig fut, amíg a kijelölt sorba nem ütközik.
(Csak felhasználói mód) A célalkalmazás bezárásához és újraindításához használja az Újraindítás parancsot. Ezt a parancsot csak a hibakereső által létrehozott folyamattal használhatja. A folyamat újraindítása után azonnal a hibakeresőbe kerül.
(Csak WinDbg) A célalkalmazás bezárásához és a hibakereső törléséhez használja a Hibakeresés leállítása parancsot. Ez a parancs lehetővé teszi egy másik cél hibakeresését.
Parancsűrlapok
A cél végrehajtásának elindítására vagy vezérlésére szolgáló parancsok többsége szövegparancsként, menüparancsként, eszköztárgombként és billentyűparancsként létezik. Alapszintű szöveges parancsként ezeket a parancsokat a CDB, a KD vagy a WinDbg alkalmazásban is használhatja. (A parancsok szöveges formája gyakran támogat további lehetőségeket, például a programszámláló helyének megváltoztatását vagy rögzített számú utasítás végrehajtását.) A WinDbg menüparancsait, eszköztárgombjait és billentyűparancsait használhatja.
A parancsokat az alábbi űrlapokon használhatja.
| Parancs | WinDbg parancs | WinDbg billentyűparancsok | Hatás |
|---|---|---|---|
Hibakeresés | Futtatás a kurzorhoz |
F7 CTRL + F10 |
(Csak WinDbg) Addig hajtja végre, amíg el nem éri azt a vonalat, amelyet a kurzor jelöl. |
|
Hibakeresés | Hibakeresés leállítása |
SHIFT + F5 |
Leállítja az összes hibakeresést, és bezárja a célpontot. |
|
(csak CDB/KD) CTRL+C |
Hibakeresés | Megszakítás |
CTRL + BREAK |
A végrehajtás leáll, és a hibakereső betör a célba. |
Hibakeresés | Újraindítás |
CTRL + SHIFT + F5 |
(Csak felhasználói mód) Újraindítja a célalkalmazást. |
|
Hibakeresés | Futtatás |
F5 |
A célfolyamat szabadon működik. |
|
A feltételes töréspont után folytatja a végrehajtást. |
|||
Hibakeresés | Go Handled Exception |
Ugyanaz, mint a g (Go), azzal a kivétellel, hogy a rendszer az aktuális kivételt kezeli. |
||
Hibakeresés | Kezeletlen kivétel |
Ugyanaz, mint a g (Go), azzal a kivétellel, hogy az aktuális kivétel kezeletlenként van kezelve. |
||
Hibakeresés | Kilép |
SHIFT + F11 |
A cél addig fut, amíg az aktuális függvény be nem fejeződik. |
|
Hibakeresés | Átlépés |
F10 |
A cél egy utasítást hajt végre. Ha ez az utasítás függvényhívás, a függvény egyetlen lépésben lesz végrehajtva. |
|
A program addig fut, amíg el nem éri a megadott címet. A függvény minden lépése megjelenik (de az úgynevezett függvények lépései nem). |
|||
A cél végrehajtódik a következő hívás utasításig. Ha az aktuális utasítás egy hívásutasítás , a rendszer teljesen végrehajtja ezt a hívást, és a végrehajtás a következő hívásig folytatódik. |
|||
A cél addig fut, amíg el nem éri a hívási utasítást vagy a visszatérési utasítást. |
|||
A célfolyamat végrehajtódik addig, amíg bármilyen elágazási utasítást elér, beleértve a feltételes vagy feltétel nélküli elágazásokat, hívásokat, visszatéréseket és rendszerhívásokat. |
|||
A célprogram addig fut, amíg el nem éri a return utasítást. |
|||
Hibakeresés | Belépés |
F11 F8 |
A cél egy utasítást hajt végre. Ha ez az utasítás függvényhívás, a hibakereső ebbe a hívásba lép. |
|
A cél addig fut, amíg el nem éri a megadott címet. A függvény és az úgynevezett függvények minden lépése megjelenik. |
|||
(Kernel mód kivételével minden más mód csak x86-alapú rendszereken fut) A program addig fut, amíg el nem éri a következő águtasítást. |
|||
A célpont a következő hívási utasításig fut. Ha az aktuális utasítás egy hívásutasítás, az utasítást nyomon követik, amíg elér egy új hívást. |
|||
A cél addig fut, amíg el nem éri a hívási utasítást vagy a visszatérési utasítást. Ha az aktuális utasítás hívásutasítás vagy visszatérési utasítás, akkor azt addig követjük nyomon, amíg el nem érünk egy új hívásutasítást vagy visszatérési utasítást. |
|||
A célfolyamat addig fut, amíg eléri bármilyen elágazási utasítást, beleértve a feltételes és feltétel nélküli ágakat, hívásokat, visszatéréseket és rendszerhívásokat. Ha az aktuális utasítás elágaztatási utasítás, az utasítás egészen addig lesz nyomon követve, amíg el nem éri az új elágaztatási utasítást. |
|||
A cél addig fut, amíg el nem éri a return utasítást. Ha az aktuális utasítás egy visszatérési utasítás, az utasítást nyomon követjük addig, amíg el nem érünk egy új visszatérési utasítást. |
|||
Az utasítás addig fut, amíg a teljes megadott függvény be nem fejeződik. Ezután megjelennek a statisztikák. |
A célszámítógép újraindításáról további információt a célszámítógép összeomlása és újraindítása című témakörben talál.
Command-Line beállítások
Ha nem szeretné, hogy az alkalmazás azonnal leálljon, amikor elindul vagy betöltődik, használja a CDB-t vagy a WinDbg-t a -g parancssori beállítással együtt. A helyzetről további információt a Kezdeti töréspont című témakörben talál.
A CDB és a WinDbg is támogatja a -Gparancssori lehetőséget. Ezzel a beállítással a hibakeresési munkamenet befejeződik, ha az alkalmazás megfelelően befejeződött.
Az alábbi parancs az elejétől a végéig megpróbálja futtatni az alkalmazást, és a hibakereső parancssora csak hiba esetén jelenik meg.
cdb -g -G ApplicationName
A -ptparancssori kapcsolóval beállíthatja a megszakítási időtúllépést. Bizonyos problémák miatt a cél nem tud kommunikálni a hibakeresővel. Amennyiben ki van adva egy törésparancs, és a hibakereső nem tudja megállítani a célt az adott időn belül, a hibakereső egy "Szünetkérés időtúllépés" üzenetet jelenít meg.
Ezen a ponton a hibakereső abbahagyja a próbálkozást, hogy betörjön a célpontba. Ehelyett a hibakereső szünetelteti a célalkalmazást, és lehetővé teszi a célalkalmazás vizsgálatát (de nem vezérlését).
Az alapértelmezett időtúllépés 30 másodperc.