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.
Mi az az Időutazásos Hibakeresés?
A Time Travel Debugging (TTD) egy olyan eszköz, amely rögzíti a folyamat nyomvonalát, ahogyan fut, és később visszajátssza előre- és visszafele is. A TTD segít a hibák elhárításában azáltal, hogy lehetővé teszi a hibakereső munkamenet visszatekerését, így nem szükséges újra és újra előidézni a problémát, amíg meg nem találja a hibát.
A TTD lehetővé teszi, hogy visszatérjen az időben, hogy jobban megértse a hibát okozó feltételeket, és többször is lejátszhassa, hogy megtudja, hogyan lehet a legjobban megoldani a problémát.
A TTD-nek előnyei vannak az összeomlási memóriaképfájlokkal szemben, amelyek gyakran kihagyják az állapotot és a végrehajtási útvonalat, amely a végső hibához vezetett.
Ha nem tudja önállóan megoldani a problémát, megoszthatja a nyomkövetést egy munkatársával, hogy pontosan megtekinthesse, amit éppen lát. Ez a funkció egyszerűbbé teszi az együttműködést, mint az élő hibakeresést, mivel a rögzített utasítások megegyeznek, míg a címhelyek és a kódvégrehajtás eltérő a különböző számítógépeken. Megoszthat egy adott időpontot is, hogy segítsen a munkatársainak kitalálni, hol kezdjen.
A TTD hatékony, és a lehető legkevesebb többletterhelést teszi lehetővé, mivel rögzíti a kódvégrehajtást a nyomkövetési fájlokban.
A TTD olyan hibakereső adatmodell-objektumokat tartalmaz, amelyekkel lekérdezheti a nyomkövetést a LINQ használatával. Például a TTD-objektumok segítségével megállapíthatja, mikor töltődött be egy adott kódmodul, vagy megkeresheti az összes kivételt.
Követelmények
A Time Travel Debugging integrálva van a WinDbg-gel, így zökkenőmentes rögzítési és visszajátszási élményt nyújt.
A TTD használatához emelt szintű engedélyekkel kell futtatnia a hibakeresőt. Telepítse a WinDbg-t egy rendszergazdai jogosultságokkal rendelkező fiókkal, és használja ezt a fiókot a hibakeresőben való rögzítéskor. Ha emelt szintű engedélyekkel szeretné futtatni a hibakeresőt, a Start menüBen jelölje ki és tartsa lenyomva a WinDbg ikont (vagy kattintson rá a jobb gombbal), majd válassza a További > futtatás rendszergazdaként lehetőséget.
Kibocsátási megjegyzések
A TTD tovább fejlődik. A legfrissebb információkért tekintse meg a time travel hibakeresési kibocsátási megjegyzéseit.
A felvétel tartalmazhat személyazonosításra alkalmas vagy biztonsággal kapcsolatos információkat
A felvételt tartalmazó létrehozott nyomkövetési fájl tartalmazhat személyazonosításra alkalmas vagy biztonsággal kapcsolatos információkat, beleértve, de nem feltétlenül a fájl elérési útját, a beállításjegyzéket, a memóriát vagy a fájl tartalmát. A pontos információ a rögzített célfolyamat-tevékenységtől függ. Vegye figyelembe ezt, ha fájlokat oszt meg másokkal.
TTD.exe parancssori rögzítési segédprogram
A WinDbg felhasználói felületén a nyomkövetések rögzítése mellett egy TTD.exe parancssori segédprogram is elérhető a nyomkövetés rögzítéséhez.
Előfordulhatnak olyan forgatókönyvek, amelyekben csak a TTD parancssori rögzítőre van szükség: a számítógépen történő rögzítés a hibakereső telepítése nélkül, speciális rögzítési forgatókönyvek, tesztautomatizálás stb. Ezekben a forgatókönyvekben csak a TTD parancssori rögzítőjét telepítheti egy URL-címen keresztül. További információ: Time Travel Hibakeresés – TTD.exe parancssori segédprogram.
Hibakeresési eszközök összehasonlítása
Ez a táblázat a különböző elérhető hibakeresési megoldások előnyeit és hátrányait foglalja össze.
| Megközelítés | Előnyök | Hátrányok |
|---|---|---|
| Élő hibakeresés | Interaktív élmény, látja a végrehajtási folyamatot, megváltoztathatja a célállapotot, ismerős eszközzel ismerős környezetben. | Megzavarhatja a felhasználói élményt, ismételt erőfeszítést igényelhet a probléma reprodukálása, veszélyeztetheti a biztonságot, és nem mindig kivitelezhető az éles rendszereken. A hibapontól nehéz visszalépni, hogy meghatározhassuk az okát. |
| Lerakóhely | Nincs előzetes kódolás, alacsony betolakodás, eseményindítókra alapozva. | Az egymást követő pillanatképek vagy élő állapotmentések egyszerű "időbeli" nézetet biztosítanak. A többletterhelés lényegében nulla, ha nincs használatban. |
| Telemetriai &naplók | Könnyű, gyakran üzleti forgatókönyvekhez/ felhasználói műveletekhez kötve, gépi tanulás felhasználóbarát. | Váratlan kódútvonalakkal kapcsolatos problémák merülnek fel (telemetriai adatok nélkül). A kódba statikusan lefordított adatmélység hiánya. |
| Időutazás alapú hibakeresés (TTD) | Nagyszerű összetett hibák esetén, nincs előre kódolás, offline megismételhető hibakeresés, elemzésbarát, mindent rögzít. | Nagy többletterhelés rekordidő alatt. További szükséges adatokat gyűjthet. Az adatfájlok nagy méretűvé válhatnak. |
Videós betanítás
Ha többet szeretne megtudni a TTD-ről, tekintse meg ezeket a videókat.
Töredezettségmentesítési eszközök 185 - Ivette és JamesP áttekinti a TTD alapjait és bemutat néhány funkciót a WinDbg-ben.
Töredezettségmentesítési eszközök 186 – Jordi és JCAB bemutatják a TTD további nagyszerű funkcióit a WinDbg-ben.
CppCon (YouTube) – Jordi, Ken és JamesM bemutatta a TTD-t a WinDbg-ben a CppCon 2017-en
A nyomkövetési fájl alapjai
Nyomkövetési fájl mérete
A nyomkövetési fájl nagy lehet. Győződjön meg arról, hogy elegendő szabad terület áll rendelkezésre. Ha akár néhány percig is rögzít egy programot, a nyomkövetési fájlok gyorsan több gigabájtosra nőhetnek. A TTD nem állítja be a nyomkövetési fájlok maximális méretét, hogy összetett, hosszú ideig futó forgatókönyveket lehessen használni. A probléma gyors újbóli létrehozása a nyomkövetési fájl méretét a lehető legkisebbre teszi.
Fájlok nyomon követése és indexelése
A nyomkövetési fájl (.run) tárolja a kód végrehajtását a rögzítés során.
A rögzítés leállításakor a rendszer létrehoz egy indexfájlt (.idx) a nyomkövetési információkhoz való hozzáférés optimalizálásához. A WinDbg a nyomkövetési fájlok megnyitásakor automatikusan létrehozza az indexfájlokat is.
Az indexfájlok nagyok lehetnek, általában kétszer akkorák, mint a nyomkövetési fájl.
A parancs használatával újra létrehozhatja az indexfájlt a nyomkövetési !tt.index fájlból.
0:000> !tt.index
Successfully created the index in 10ms.
A rögzítési hibák és más rögzítési kimenetek a WinDbg naplófájlba kerülnek.
Az összes kimeneti fájlt egy konfigurált helyen tárolja. Az alapértelmezett hely a felhasználó dokumentummappájában található. Az 1. felhasználó esetében például a TTD-fájlokat itt tárolja a rendszer:
C:\Users\User1\Documents
A nyomkövetési fájlok használatával kapcsolatos további információkért lásd: Time Travel Hibakeresés – Nyomkövetési fájlok használata.
Azokra a dolgokra, amelyeket érdemes figyelni
Vírusellenes inkompatibilitások
A TTD a folyamatokhoz való csatlakozási módja miatt inkompatibilitást tapasztalhat a folyamatok rögzítésekor. Általában a víruskereső vagy más rendszerszoftverek problémái merülnek fel, amelyek a rendszer memóriahívásainak nyomon követésére és árnyékolására törekszenek. Ha problémákba ütközik a rögzítéssel, például nem megfelelő engedélyüzenettel, próbálja meg ideiglenesen letiltani a víruskereső szoftvereket.
A memóriahozzáférést letiltó egyéb segédprogramok is problémásak lehetnek. Például a Microsoft Enhanced Mitigation Experience Toolkit.
Egy másik példa a TTD-vel ütköző környezetre az Elektronalkalmazás-keretrendszer. Ebben az esetben a nyomkövetés rögzíthető, de a rögzített folyamat holtpontja vagy összeomlása is lehetséges.
Csak felhasználói mód
A TTD jelenleg csak a felhasználói módú műveletet támogatja, így nem lehet kernel módú folyamatot nyomon követni.
Csak olvasható lejátszás
Visszatérhet az időben, de nem módosíthatja az előzményeket. Használhat olvasási memóriaparancsokat, de nem használhat olyan parancsokat, amelyek módosítják vagy írnak a memóriába.
Rendszer által védett folyamatok
Egyes Windows rendszer által védett folyamatok, például a Protected Process Light (PPL) folyamatok, védettek. A TTD nem tudja beszúrni magát a védett folyamatba, hogy lehetővé tegye a kód végrehajtásának rögzítését.
A felvétel teljesítményre gyakorolt hatása
Egy alkalmazás vagy folyamat rögzítése hatással van a számítógép teljesítményére. A tényleges teljesítményterhelés a rögzítés során végrehajtott kód mennyiségétől és típusától függően változik. A tipikus rögzítési forgatókönyvekben körülbelül 10x–20-szoros teljesítménybeli csökkenésre számíthat. Néha nincs észrevehető lassulás a felhasználói felületen. Az erőforrás-igényesebb műveletek, például a Fájl megnyitása párbeszédpanel esetében azonban a rögzítés hatása látható.
Nyomkövetési fájlhibák
Nyomkövetési fájlhibák léphetnek fel. További információkért lásd Time Travel Debugging - Hibaelhárítás.
A Time Travel hibakeresésének speciális funkciói
Idővonalak
Az idősorok a végrehajtás során bekövetkező események vizuális ábrázolása. Ezek az események lehetnek a következő helyek: töréspontok, memória olvasása/írása, függvényhívások és visszatérések, valamint kivételek. Az ütemtervekkel kapcsolatos további információkért lásd: WinDbg – Timelines.
Hibakereső adatmodell támogatása
-
Beépített adatmodell-támogatás – A TTD támogatja az adatmodelleket. A LINQ-lekérdezések használata az alkalmazáshibák elemzéséhez hatékony eszköz lehet. A WinDbg adatmodell-ablakában dolgozhat a
dxésdx -gegy bővíthető és böngészhető verziójával, amely lehetővé teszi táblák létrehozását NatVis, JavaScript és LINQ lekérdezések használatával.
A hibakereső adatmodelljével kapcsolatos általános információkért lásd: WinDbg – Adatmodell. A TTD hibakereső objektummodell használatával kapcsolatos további információkért lásd: Time Travel Hibakeresés – Bevezetés a Time Travel hibakeresési objektumaiba.
Szkriptek támogatása
- Scripting Automation – A JavaScript és a NatVis szkriptelésének támogatása lehetővé teszi a problémavizsgálat automatizálását. További információ: Time Travel Hibakeresés – JavaScript automatizálás.
A JavaScript és a NatVis használatával kapcsolatos általános információkért lásd: WinDbg – Scripting.
TTD.exe parancssori segédprogram
A nyomkövetések rögzítéséhez elérhető a TTD.exe parancssori segédprogram. További információ: Time Travel Hibakeresés – TTD.exe parancssori segédprogram.
Felügyelt kód TTD támogatása
A 64 bites módban futó SOS hibakeresési bővítmény (sos.dll) használatával hibakeresést végezhet a felügyelt kódban a WinDbg-ben található TTD használatával. További információ: Felügyelt kód hibakeresése a Windows hibakeresővel.
A TTD használatának első lépései
Kezdés itt
Ha még nem ismerkedik a TTD-hez, kövesse az alábbi képzési tervet:
- Nyomkövetés rögzítése – Az első végrehajtási nyomkövetés rögzítése
- Nyomkövetés visszajátszása – Navigálás és a felvétel elemzése
- Mintaalkalmazás-útmutató – Részletes hibakeresési példa
Szüksége van segítségre?
- Nyomkövetési fájlok használata – Nyomkövetési fájlok kezelése és optimalizálása
- Hibaelhárítás – Gyakori problémák megoldása
Speciális funkciók
- TTD hibakereső objektumok – Lekérdezési nyomkövetések a LINQ használatával
- JavaScript Automation – Problémavizsgálat automatizálása