時間移動偵錯版本資訊
本主題提供時間移動偵錯新功能的相關信息。
1.11.429
這項 TTD 更新包含一些錯誤修正,以及一些內部變更以改善可靠性。
注意:1.11.410 引進了 Intel/AMD LODSD 指令模擬中的回歸。 此問題的修正將於下一個版本推出。
修正:
- 改善封包讀取健全性和其他錯誤變更,以改善可靠性。
- 修正模擬 AVX VBROADCAST[I/F]128 指令中的回歸。
- 修正較新 Windows 組建中 ARM64 上的例外狀況記錄存取。
1.11.410
改善的輔助功能:進度 UI 現在會隨著文字大小變更正確調整。
@$cursession.TTD.Calls()
調試程式中的 命令現在支援符合大量函式的通配符。
現在可以查詢大量的函式 (@$cursession.TTD.Calls("kernel32!*")
)。
自動化:新的 -onMonitorReadyEvent
命令行選項指出錄製監視器 (-monitor
switch) 何時準備好錄製新進程。
修正:
- 在初始化錄製器時修正某些競爭條件。
- 修正我們記錄 syscalls 的方式,讓斷點正常運作。
- 修正與模組選擇性錄製相關的多個問題。
ARM64 修正:
- 已修正在一般 ARM64v8.0 層級 CPU 上防止 TTD 錄製的錯誤。
- 已改善嘗試在 ARM64 上使用 x86 或 x64 進程的追蹤時的傳訊。
AMD/Intel 修正程式(包括 Google 回報的一些問題):
- 修正了 LODS 的不正確模擬:不要將未使用的 RAX 位歸零,而是已正確保留。
- 修正了 x86/x64 程式中「pop ax」指令的模擬,錯誤地將完整緩存器上層位零(例如“pop ax”清除了 rax 的上層位)。
- XGETBV 指令的直接模擬(更快)。
- 所有AVX512 SIMD移動的直接模擬(更快)。
1.11.316
已修正在錄製長時間不中斷數據繁重指令序列的程式時,造成偶爾當機的回歸。
ARM64 修正:
- 現在支援在已啟用 PAC 功能的 ARM64 程式中錄製。
- 已修正 ANDS 和 TST 指示,這些指示無法清除攜帶和溢位旗標。
AMD/Intel 修正:
- 修正了 TTD 誤模擬 「xchg r8,rax」 和 「xchg r8w, ax」 作為 NOP 的錯誤。
1.11.304
TTD 現在會實作並公開發佈 API,以從即時錄製程式內控制錄製器。 您可以在 GitHub 中找到文件和範例。
TTD 現在可以使用新 -recordMode
開關將錄製插入關閉。 根據預設,TTD 會使用 -recordMode Automatic
,這會導致記錄所有線程。 如果 -recordMode Manual
已指定,則 TTD 會插入目標進程,但直到告知透過 API 呼叫執行這項動作,才會記錄任何專案。
錄製現在可以使用 參數限制為一組特定的模組 -module
。 在某些情況下,這可能會導致錄製速度大幅加快,追蹤檔案較小。 可以指定多個 -module
參數。
比對記錄和重新執行元件現在會包含在散發中。 如果調試程式與命令行錄製器之間不相容,或重新執行 Bug,則重新執行元件可以複製到調試程式安裝,作為因應措施,直到釋放新的調試程序為止。
您可以執行下列動作,在 Powershell 中找到已安裝的檔案位置:
ls (Get-AppxPackage | where Name -eq 'Microsoft.TimeTravelDebugging').InstallLocation
已加入
- 新增 -recordmode 參數以啟用插入而不自動錄製 (1.11.296)
- 新增 -module 參數並使用 來建立 SR 設定 (1.11.291)
- 將行程 API 紀錄到資料模型的項目自訂資料 (1.11.286)
- 新增TTDLiveRecorder.dll,並與TTDRecordCPU.dll連接起來(1.11.283)
- 將重新執行元件新增至 MSIX 和修正 SDK 查閱 (1.11.265)
已變更
none
已修正
- 解決 nlohmann JSON 串行化程式中的 Bug ,其用於某些內部工具 (1.11.281)
- 調整字串對齊以避免罕見的 CRT 錯誤 (1.11.279)
- 在 VS 和 OS 程式代碼基底中回報並修正。
- 沃森墜機報告的幾個小修正 (1.11.276)
- 修正在某些情況下可能導致追蹤檔案損毀的回歸 (1.11.264)
已知問題
- 在 ARM64 上,編譯程式無法尾端呼叫許多高頻率函式,在極端情況下,可能會導致錄製器耗盡堆棧空間和當機。
1.11.261
此版本中值得注意的變更包括:
- [ARM64]修正當目的地快取器做為來源時,、
SQXTN2
、SQXTUN2
、UQXTN2
XTN2
和TRN1
指令的行為SXTL
。 - [ARM64]已修正導致調試程序顯示 SIMD 快取器的問題,其較低的 64 位重複到高 64 位。
- [AMD64]AMD Zen4 處理器的 AVX512 模擬修正(緩存器已損毀)。
已變更
- 特別針對模擬器實作新版本系統。 (1.11.260)
已修正
- 修正錯誤 ARM64 指示,其中目的地快取器也會作為來源使用。 (1.11.261)
- 修正 Zen4 因應措施,以直接返回模擬器。 (1.11.222)
1.11.202
此版本修正了錄製服務或透過交換器啟動 -monitor
監視程式時遇到的許多問題。 它也會從產品中移除ARM32錄製支援。
已變更
- 將 TTD 元件連結至 UCRT 做為 DLL,以減少二進位大小。 (1.11.191)
已修正
- 修正服務的錄製。 (1.11.193)
- 修正使用 -monitor 時的幾個問題。 (1.11.189)
- 修正在 x64 上執行後援時保留非揮發性的函式堆疊框架 (1.11.188)
- 重新開啟 TTD 的輸出緩衝處理 (1.11.187)
- 修正 ProcessMonitorServer 中 GPO 句柄的處理方式 (1.11.179)
已移除
- 從存放函式庫移除 ARM32 錄製程式代碼 (1.11.198)
1.11.173
此版本可從 .out 檔案擷取錯誤訊息,並將其列印到主控台,藉以提升特定錯誤訊息的可見度。 它也修正了追蹤重新執行期間罕見的當機。
已變更
- 從 .out 檔案擷取和列印錯誤訊息 (1.11.173)
已修正
- 修正從個別進程讀取 .out 檔案時的檔案衝突。 (1.11.171)
- 修正追蹤重新執行期間的罕見當機。 (1.11.166)
1.11.163
此版本新增了在 x64 計算機上錄製 x86 程序的支援。
已變更
- 修正 x86 錄製與 x64 TTD 安裝 (1.11.163)
已修正
- EULA 清除 (1.11.161)
1.11.159
此版本是命令行錄製器的第一個公開版本。 除了啟用命令行錄製器公開發行所需的數項變更之外,此版本也包含一些錯誤修正,包括 CPU 模擬器的幾個修正程式。
新的 -timestampFileName
參數會啟用以時間戳為基礎的 .run 檔案產生。 當您錄製同一進程的許多實例,而且想要將錄製啟動時間降到最低時,這會很有用。
已變更
- 根據使用追蹤器的執行時間選擇預設插入模式 (1.11.156)
- 新增參數以啟用時間戳型 .run 檔案產生 (1.11.155)
- 將 EULA 和 新增
-accepteula
至 TTD (1.11.154) - 將ProcLaunchMon.sys新增至 MSIX (1.11.153)
- 建立個別的 MSIX 和 MSIXBUNDLE (1.11.152)
- 修正測試以 Clang 建置的 TTD 時所出現的問題。 (1.11.146)
- TTDAnalyze 的 Clang 修正 (1.11.144)
已修正
- 檢閱 appinstaller / 公開版本的意見反應 (1.11.159)
- RC 意見反應 (1.11.157)
- 將 RegisterInfo 初始化為指向 Sink,以避免回收零快取器。 (1.11.149)
- 使用立即修正 TST 指示,並增強單元測試以涵蓋它等等。 (1.11.148)
- 合併受保護的進程決策並停用受保護的進程使用 (1.11.147)
1.11.138
已變更
- 建立錄製器 MSIX (1.11.138)
- 修正所有問題,讓 Clang 可以建置 TTD。 (1.11.137)
- 引進 -monitor X 作為在啟動時記錄程式的方式 (1.11.116)
已修正
- 修正 “CMP ZR” ARM64 模擬 (1.11.128)
- 修正 AMD Zen4 處理器上的 AVX512 模擬 (1.11.127)
- 修正 TTD 用來尋找特定 CPU 的檔案的機制 (1.11.121)
- 修正 x86 TTD 回歸 (TTDRecordCPU.dll無法載入) (1.11.110)
- 修正在 ARM64 上返回原生路徑,以不要回收 X28 (1.11.109)