Neminvazív hibakeresés (felhasználói mód)

Ha egy felhasználói módú alkalmazás már fut, a hibakereső nem behatoló módon tudja a hibakeresést elvégezni. A noninvazív hibakereséssel kevesebb hibakeresési művelet áll rendelkezésre. Minimalizálhatja azonban a hibakereső beavatkozását a célalkalmazással. A nem invazív hibakeresés akkor hasznos, ha a célalkalmazás nem válaszol.

Nem invazív hibakeresés esetén a hibakereső valójában nem csatolódik a célalkalmazáshoz. A hibakereső felfüggeszti a cél összes szálát, és hozzáfér a cél memóriájához, a regisztrációkhoz és egyéb ilyen információkhoz. A hibakereső azonban nem tudja vezérelni a célértéket, ezért az olyan parancsok, mint a g (Go) nem működnek.

Ha olyan parancsokat próbál végrehajtani, amelyek nem engedélyezettek a hibakeresés során, hibaüzenet jelenik meg: "A hibakereső nincs csatolva, ezért a folyamat végrehajtása nem figyelhető."

A hibakeresési folyamat kiválasztása

A célalkalmazást a folyamatazonosító (PID) vagy a folyamat neve alapján adhatja meg.

Ha név alapján adja meg az alkalmazást, a folyamat teljes nevét kell használnia, beleértve a fájlnévkiterjesztést is. Ha két folyamat neve megegyezik, a folyamatazonosítót kell használnia.

A folyamatazonosító és a folyamatnév meghatározásáról további információt a Folyamatazonosító megkeresése című témakörben talál.

A nem beépített hibakeresési munkamenetek elindításával és leállításával kapcsolatos információkért tekintse meg a következő témaköröket:

CDB parancssor

Ha nem szeretne hibakeresést végezni egy futó folyamaton a CDB parancssorából, adja meg a -pv lehetőséget, a -p lehetőséget és a folyamatazonosítót az alábbi szintaxisban.

cdb -pv -pProcessID

Vagy ha nem szeretne hibakeresést végezni egy futó folyamatban a folyamat nevének megadásával, használja inkább az alábbi szintaxist.

cdb -pv -pnProcessName

Számos más hasznos parancssori lehetőség is rendelkezésre áll. A parancssori szintaxisról további információt a CDB Command-Line Beállítások című témakörben talál.

WinDbg parancssor

Ha nem szeretne hibakeresést végezni egy futó folyamaton a WinDbg parancssorból, adja meg a -pv lehetőséget, a -p lehetőséget és a folyamatazonosítót az alábbi szintaxisban.

windbg -pv -pProcessID

Vagy ha nem szeretne hibakeresést végezni egy futó folyamatban a folyamat nevének megadásával, használja inkább az alábbi szintaxist.

windbg -pv -pnProcessName

Számos más hasznos parancssori lehetőség is rendelkezésre áll. A parancssori szintaxisról további információt a WinDbg Command-Line Beállítások című témakörben talál.

WinDbg menü

Ha a WinDbg alvó módban van, a Fájl menü Csatolás egy folyamathoz parancsával vagy az F6 billentyű lenyomásával nem invazív módon végezhet hibakeresést egy futó folyamaton.

Amikor megjelenik a Folyamat csatolása párbeszédpanel, jelölje be a Neminvazív jelölőnégyzetet. Ezután válassza ki a kívánt folyamatazonosítót és -nevet tartalmazó sort. (A folyamatazonosítót a Folyamatazonosító mezőbe is beírhatja.) Végül kattintson az OK gombra.

Hibakereső parancsablaka

Ha a hibakereső már aktív, a Hibakereső parancsablak.attach -v (Csatolás a folyamathoz) parancsával invazívan hibakeresést végezhet egy futó folyamaton.

A .attach parancsot akkor használhatja, ha a hibakereső már invazív módon hibakeresést végzett egy vagy több folyamaton. Ezt a parancsot használhatja a CDB-ben, ha az inaktív, de a WinDbg-ben nem használható, ha inaktív.

Ha a .attach -v parancs sikeres, a hibakereső hibakeresést hajt végre a megadott folyamaton a következő alkalommal, amikor a hibakereső végrehajtási parancsot ad ki. Mivel a végrehajtás nem engedélyezett a neminvazív hibakeresés során, a hibakereső nem képes egyszerre több folyamatot is hibakeresésre. Ez a korlátozás azt is jelenti, hogy a .attach -v paranccsal kevésbé hasznos lehet egy meglévő invazív hibakeresési munkamenet.

A hibakeresési munkamenet kezdete

A hibakeresési munkamenet megkezdéséről további információt a Hibakereső művelet című témakörben talál.