Megosztás a következőn keresztül:


Time Travel Hibakeresés – Áttekintés

Képernyőkép az órajelet ábrázoló Time Travel hibakeresési emblémáról.

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épernyőkép a WinDbg-ről a Time Travel Hibakeresés parancsával és három idővonallal.

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é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 és dx -g egy 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

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:

  1. Nyomkövetés rögzítése – Az első végrehajtási nyomkövetés rögzítése
  2. Nyomkövetés visszajátszása – Navigálás és a felvétel elemzése
  3. Mintaalkalmazás-útmutató – Részletes hibakeresési példa

Szüksége van segítségre?

Speciális funkciók