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.
Ez a témakör a Time Travel hibakeresésének újdonságairól nyújt tájékoztatást.
1.11.611
Kijavítottunk néhány hibát, amelyek összeomlást okozhattak az AVX-kompatibilis és az AVX512-kompatibilis programok rögzítésekor.
@$cursession.TTD.Calls() pontosabb paraméteradatokat ad a 32 bites assembly stubokról.
Javította az indexelő robusztusságát, amikor nagy (több tíz-száz GB) nyomkövetést indexel. Ez a fejlesztés szükségessé tette az index formátumának módosítását, ezért újra kell indexelnie a nyomkövetéseket.
Változtatott
- Frissítse az MSDIS-t az aktuális verzióra az Intel APX támogatásának beszerzéséhez (1.11.601).
- A folyamatok monitorozásának javítása 4 vagy 8 PID-vel (1.11.595).
Rögzített
- XSTATE-támogatás hozzáadása a TTD CONTEXT kezeléséhez (1.11.609).
- Kijavíthatja az MSVC (és a clang) legújabb verziójával (1.11.607) kapcsolatos problémákat.
- Győződjön meg arról, hogy a megfelelő alapértelmezett paramétertípus-méret mindig be van állítva (1.11.593).
- Új nyomkövetési fájlformátum futtatókörnyezet által választott oldalmérettel (1.11.592).
- Kerülőmegoldás a(z) MSDIS (1.11.591) „REX.B + NOP” hibájára.
1.11.553
!tt az argumentumok nélkül mostantól rövid súgószöveg és az aktuális pozíció jelenik meg (a nyomkövetés elejére váltás helyett).
Az új adatmodell-módszer lehetővé teszi egy helyi változó értékeinek előzményeinek megtekintését. A Keret objektumon belül, például az aktuális keret @$curframe esetén, használhatja a .TTD.VariableHistory() metódust, hogy lekérje a változóhoz írt értékek naplóját, valamint azokat a stádiumokat, ahol a változó ezeket az értékeket tartalmazta.
-
dx -g @$curframe.TTD.VariableHistory().Variablesmegjeleníti a helyi változónevek listáját. -
dx -g @$curframe.TTD.VariableHistory().Variables[n].ValuesA #n helyi változó előzményeit jeleníti meg.
A TTD Replay API egy kísérleti SDK-ban is elérhető. Ez az API ugyanaz az API, amelyet a hibakereső a TTD-vel való interakcióhoz használ, és amely lehetővé teszi a .Calls() / .Memory() számára az adatok hatékony gyűjtését. További információért lásd https://aka.ms/ttdsdk.
Rögzített
- Az
ErrorReporting::PrintErrorelavulása okozta összeomlás javítása (1.11.553)
1.11.532
Az új verzió karbantartási frissítés, amely javítja a rögzítés robusztusságát. Ez a TTD-kiadás egybeesik a Windbg 2025. júniusi kiadásával. Az egyik új funkció, hogy a Pozíció adatmodell objektum mostantól százalékos értéket jelent a nyomkövetésben.
Változtatott
- Egyéb infrastruktúra-karbantartás.
- Használja a C++ illékony ISO szabvány implementációját. (1.11.518)
- Százalékonkénti érték hozzáadása a pozíció adatmodell kivetítéséhez. (1.11.514)
Rögzített
- Növelje a TTD dekódolt utasítások kezelésének robusztusságát. (1.11.530)
- Távolítsa el az XSAVE használatát az emulátorban, és optimalizálja a belső regiszterátvitelt. (1.11.509)
1.11.506
Ez a kiadás egy kisebb kiadás, amely egybeesik a WinDbg 2025. áprilisi kiadásával.
Változtatott
Ha egy TTD-pozícióra kattint az adatmodellben (például a Modulok listában) a nyomkövetésben erre a pozícióra navigál. (1.11.492)
Megjegyzés: A parancsablak nem jeleníti meg a frissített TTD-pozíciót a következő lépés vagy futtatási parancs végrehajtásáig.
Rögzített
- Adja hozzá a folyamat nevét a .out fájlhoz, amikor egy PID-hez csatlakozik, hogy segítse a hibaelhárítást. (1.11.486)
1.11.481
Átdolgoztuk a !tt parancsot, hogy hatékonyabban navigáljon a nyomkövetésben:
- A tört százalékértékekkel szűkíthető a keresési terület (!tt 23,65)
- A regiszter értékének előző/következő módosításának megkeresése (!tt br ebx)
- Keresse meg, mikor történt a memóriatartomány előző/következő elérése (!tt ba- [addr] [tartomány])
- Az időpont megkeresése, amikor a végrehajtás egy másik modulba lép (!tt bm)
- Az előző/következő végrehajtási idő megkeresése egy adott modulra (!tt bm ntdll)
További információ: !tt (időutazás).
Néhány jelentős javítás:
- "Hiba: A '64 bites érték a számra való konvertáláskor pontosságot veszít' üzenetek eltűntek, amikor a
@$cursession.TTD.Data.Heap()funkciót 32 bites nyomkövetés esetén használják." - A segítség opció elemzése (
-?,-help) mostantól helyesen észlelhető bárhol a parancssorban. -
dx @$cursession.TTD.Calls()már nincs szükség olyan címekre, hogy megfeleljenek egy függvény elejének. Ehelyett a cím a legközelebbi egyező függvény elejére van leképezve. - A TTD helyesen jelenti a cél operációs rendszer verzióját a vertarget parancsból.
- Az üzemeltetett szolgáltatásnévvel rendelkező "-monitor" használata már nem rögzíti a nem kapcsolódó üzemeltetett szolgáltatásokat.
Hozzáadva
- Változástörési pontok regisztrálása TTD-nyomkövetésekben (1.11.431)
Változtatott
- Szolgáltatások név szerinti rögzítésének javítása monitorozási módban (1.11.477)
- Rögzítse a tényleges célrendszer operációsrendszer-adatait a hibakereső általi használatra (1.11.473)
- Az XMM-regiszterek emulátor és KÖRNYEZET közötti átvitelének javítása (1.11.469)
- A függvényen belüli címekkel kapcsolatos lekérdezések engedélyezése (1.11.459)
- Szimbólumok támogatása címként/méretként az !tt parancssorban (1.11.454)
- A TTD-navigációs parancsok konzisztenciájának javítása és képességeinek kiterjesztése (1.11.453)
- A modul db-konzisztenciájának javítása sérült adatokkal szemben (1.11.430)
Rögzített
- Folyamatnév hozzáadása a kimenethez a PID-hez való csatoláskor (1.11.486)
- TTD. A Data.Heap() jelentése "Hiba: a 64 bites érték elveszíti a számra való konvertálás pontosságát" bizonyos esetekben (1.11.471)
- Az árnyékveremek engedélyezése melletti folyamatrögzítés megbízhatóságának javítása (1.11.466)
- Modulnavigáció hozzáadása !tt bm és adatmodell használatával (1.11.462)
- Kijavítottunk néhány, a parancssori elemzéssel kapcsolatos problémát. (1.11.444)
- Javítás a 'lodsd', duplaszó betöltése a címre (rax felső részének nullázása) (1.11.434)
- Kijavítottunk néhány libfuzzer-hibát (1.11.433)
1.11.429
A TTD ezen frissítése néhány hibajavítást és néhány belső módosítást tartalmaz a megbízhatóság javítása érdekében.
Megjegyzés: Az 1.11.410 regressziót vezetett be az Intel/AMD LODSD utasítás emulációjában. A regresszió javítása a következő kiadásban fog érkezni.
Javítások:
- A csomagok olvasásának robusztusságát és a megbízhatóság javítását szolgáló egyéb különféle változtatásokat végezze el.
- Javítsa ki az AVX VBROADCAST[I/F]128 utasítás emulálásának regresszióját.
- Javítja ki az ARM64 kivételrekord hozzáférését a Windows újabb buildjeiben.
1.11.410
Továbbfejlesztett akadálymentesség: A folyamatjelző felhasználói felülete mostantól megfelelően skálázható a szövegméret változásaival.
A @$cursession.TTD.Calls() hibakereső parancsa mostantól támogatja a sok függvénynek megfelelő helyettesítő karaktereket.
Most már nagy számú függvényt lehet lekérdezni @$cursession.TTD.Calls("kernel32!*").
Automatizálás: Egy új -onMonitorReadyEvent parancssori beállítás jelzi, hogy a rögzítésfigyelő (-monitor kapcsoló) készen áll-e az új folyamatok rögzítésére.
Javítások:
- Javítsa ki a versenyfeltételeket a rögzítő inicializálása közben.
- Javítsa ki a syscallok rögzítésének módját, hogy a töréspontok megfelelően működhessenek.
- A modul szelektív felvételével kapcsolatos több probléma megoldása.
ARM64-javítások:
- Kijavítottunk egy hibát, amely megakadályozta a TTD-felvételt az egyszerű ARM64v8.0 szintű PROCESSZORokon.
- Javította az üzenetkezelést, amikor az ARM64-en x86- vagy x64-folyamat nyomát próbálják használni.
AMD-/Intel-javítások (beleértve a Google által jelentett problémákat):
- Kijavítottuk a LODS helytelen emulációját: Ahelyett, hogy nullázná a fel nem használt RAX-biteket, helyesen megmaradnak.
- Kijavítottuk a "pop ax" utasítás emulációját az x86/x64 folyamatokban, amely helytelenül nullázta a teljes regiszter felső bitjeit (például a "pop ax" törölte a rax felső bitjeit).
- Az XGETBV utasítás közvetlen emulációja (gyorsabb).
- Az AVX512 SIMD minden lépésének közvetlen emulációja (gyorsabb).
1.11.316
Kijavítottunk egy regressziót, amely időnként összeomlást okozott, amikor hosszú, nagy adatterhelésű utasításütemezéseket tartalmazó programokat rögzített.
ARM64-javítások:
- Mostantól támogatott a PAC-funkciót engedélyező ARM64-folyamatokban történő rögzítés.
- Kijavítottuk az ANDS- és TST-utasításokat, amelyek nem törölték a átvitel és a túlcsordulás jelzőit.
AMD/Intel javítások:
- Kijavítottuk azt a hibát, amely miatt a TTD helytelenül emulálta az "xchg r8,rax" és az "xchg r8w,ax" szöveget NOP-ként.
1.11.304
A TTD mostantól egy API-t implementál és tesz közzé nyilvánosan, hogy az élő rögzítési folyamaton belülről vezérelje a rögzítőt. A dokumentáció és a minta a GitHubon található.
A TTD mostantól képes önmagát beilleszteni felvétel kikapcsolt állapotában az új -recordMode kapcsoló segítségével. A TTD alapértelmezés szerint az -recordMode Automatic-t használja, ami az összes szál rögzítését okozza. Ha -recordMode Manual meg van adva, akkor a TTD injektál a célfolyamatba, de nem rögzít semmit, amíg nem utasítják erre egy API-híváson keresztül.
A rögzítés mostantól egy adott modulcsoportra korlátozható a -module kapcsolóval. Bizonyos esetekben ez a korlátozás lényegesen gyorsabb rögzítést és kisebb nyomkövetési fájlokat eredményezhet.
-module Több kapcsoló is megadható.
Az egyező rekord- és visszajátszási összetevők mostantól bekerülnek a disztribúcióba. Ha a hibakereső és a parancssori rögzítő nem kompatibilis, vagy visszajátszási hiba lép fel, a visszajátszási összetevők kerülő megoldásként átmásolhatók a hibakereső telepítésébe, amíg új hibakereső nem jelenik meg.
A telepített fájl helye a PowerShellben az alábbi parancs futtatásával található:
ls (Get-AppxPackage | where Name -eq 'Microsoft.TimeTravelDebugging').InstallLocation
Hozzáadva
- Adjon hozzá -recordmode kapcsolót az automatikus rögzítés nélküli injektáláshoz (1.11.296)
- -module kapcsoló hozzáadása és SR-konfiguráció létrehozása (1.11.291)
- Futás közben az API által rögzített egyéni adatok projektálása az adatmodellbe (1.11.286)
- Adjon hozzá egy új TTDLiveRecorder.dll-t, és kösse össze a TTDRecordCPU.dll-gyel (1.11.283)
- Visszajátszási összetevők hozzáadása az MSIX-hez és az SDK-keresés javítása (1.11.265)
Változtatott
Nincs
Rögzített
- Hiba megkerülése az nlohmann JSON szerializálóban, amelyet valamilyen belső eszközkészletben használnak (1.11.281)
- Kijavítottuk a kódtárat, amely egy későbbi kiadásban válik elérhetővé.
- Állítsa be a karakterlánc igazítását ritka CRT-hiba elkerülésére (1.11.279)
- A VS- és operációsrendszer-kódbázisokban jelentve és javítva.
- A Watson összeomlási jelentéseinek számos kisebb javítása (1.11.276)
- Kijavítottuk a nyomkövetési fájl sérülését okozó regressziót (1.11.264)
Ismert problémák
- Az ARM64-en a fordító nem tud végrehivásokat végezni több nagyfrekvenciás függvénynél, ami szélsőséges esetekben ahhoz vezethet, hogy a felvevőnek elfogy a veremterülete, és összeomlik.
1.11.261
A kiadás jelentős változásai a következők:
- [ARM64] Kijavítottuk a
SXTL,SQXTN2,SQXTUN2,UQXTN2,XTN2ésTRN1utasítások viselkedését, amikor a célregiszter forrásként van használva. - [ARM64] Kijavítottunk egy hibát, amely miatt a hibakereső az alacsonyabb 64 bittel rendelkező SIMD-regisztrációkat a magas 64 bitesre duplikálta.
- [AMD64] Az AMD Zen4 processzorainak AVX512 emulációs javításai (a regiszterek megsérülnek).
Változtatott
- Implementáljon egy új verziószámozási rendszert, amely kifejezetten az emulátorhoz készült. (1.11.260)
Rögzített
- Javítsa ki a hibás ARM64-utasításokat, ahol a célregisztrálás is forrásként van használva. (1.11.261)
- Javítsa ki a Zen4-re vonatkozó megoldást az emulátorhoz való közvetlen visszatérés érdekében. (1.11.222)
1.11.202
Ez a kiadás több olyan problémát javít ki, amelyek a szolgáltatások rögzítésekor, valamint a folyamatok -monitor kapcsolón keresztüli indításának figyelésekor jelentkeztek. Emellett eltávolítja az ARM32 rögzítési támogatását a termékből.
Változtatott
- Csökkentse a bináris méretet azáltal, hogy A TTD-összetevőket DLL-ként csatolja az UCRT-hez. (1.11.191)
Rögzített
- A szolgáltatások rögzítésének javítása. (1.11.193)
- A -monitor használatakor több problémát kell megoldani. (1.11.189)
- Javítsa ki a függvény veremkeretét, amely megőrzi a nem változékonyakat, amikor x64-es tartalék mechanizmusokat futtat (1.11.188)
- Kimeneti pufferelés újra engedélyezve a TTD-hez (1.11.187)
- A GPO fogantyújának kezelése a ProcessMonitorServerben (1.11.179)
Eltávolított
- ARM32 rögzítési kód eltávolítása az adattárból (1.11.198)
1.11.173
Ez a kiadás növeli bizonyos hibaüzenetek láthatóságát azáltal, hogy kinyeri őket a .out fájlból, és a konzolra nyomtatja őket. Emellett kijavít egy ritka összeomlást is a nyomkövetés visszajátszásának során.
Változtatott
- Hibaüzenetek kinyerése és nyomtatása .out fájlból (1.11.173)
Rögzített
- Kijavíthatja a fájlütközést, miközben a .out fájlt külön folyamatból olvassa be. (1.11.171)
- Javítsa ki a ritka összeomlást a nyomkövetési visszajátszás során. (1.11.166)
1.11.163
Ez a kiadás támogatja az x86-folyamatok rögzítését x64-gépeken.
Változtatott
- X86-felvétel javítása x64 TTD telepítéssel (1.11.163)
Rögzített
- EULA-törlés (1.11.161)
1.11.159
Ez a kiadás a parancssori rögzítő első nyilvános kiadása. A parancssori rögzítő nyilvános kiadásának engedélyezéséhez szükséges számos módosítás mellett ez a kiadás több hibajavítást is tartalmaz, köztük néhány javítást a CPU-emulátorhoz.
Az új -timestampFileName kapcsoló lehetővé teszi az időbélyeg-alapú .run fájlgenerálást. Ez a kapcsoló akkor hasznos, ha ugyanazon folyamat számos példányát rögzíti, és minimalizálni szeretné a rögzítés indítási idejét.
Változtatott
- Válassza ki az alapértelmezett injektálási módot futásidőben a nyomkövetési eszköz használata alapján (1.11.156)
- Kapcsoló hozzáadása az időbélyeg-alapú .run fájlgenerálás engedélyezéséhez (1.11.155)
- EULA és
-accepteulahozzáadása a TTD-hez (1.11.154) - ProcLaunchMon.sys hozzáadása az MSIX-hez (1.11.153)
- Ívenkénti MSIX és MSIXBUNDLE létrehozása (1.11.152)
- Kijavíthat több hibát, amelyek a Clang használatával létrehozott TTD tesztelése során merültek fel. (1.11.146)
- A TTDAnalyze clang-javításai (1.11.144)
Rögzített
- Visszajelzések áttekintése az AppInstallerről / nyilvános kiadásról (1.11.159)
- RC-visszajelzés (1.11.157)
- A nulladik regiszter felülírásának elkerülése érdekében inicializálja a RegisterInfo-t úgy, hogy a célra mutasson. (1.11.149)
- Azonnal javítsa ki a TST-utasítást, és javítsa ki az egységtesztet, hogy jobban lefedje azt. (1.11.148)
- A védett folyamat döntésének konszolidálása és a védett folyamat használatának letiltása (1.11.147)
1.11.138
Változtatott
- Rögzítő MSIX létrehozása (1.11.138)
- Javítsa ki az összes problémát, hogy Clang felépíthesse a TTD-t. (1.11.137)
- A -monitor X bevezetése egy folyamat rögzítésére szolgáló eszközként, amikor elindul (1.11.116)
Rögzített
- A "CMP ZR" ARM64 emuláció javítása (1.11.128)
- Az AVX512 emuláció javítása az AMD Zen4 processzorainál (1.11.127)
- A TTD által egy adott cpu fájljainak megkeresésére használt mechanizmus javítása (1.11.121)
- X86 TTD regresszió javítása (TTDRecordCPU.dll nem töltődik be) (1.11.110)
- Javítsa ki a visszatérést a natív útvonalhoz ARM64-en, hogy ne rontsa el az X28-at (1.11.109)