Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
saat içeren Zaman yolculuğu hata ayıklama logosu
Bu konu, Zaman Yolculuğu Hata Ayıklama'daki yenilikler hakkında bilgi sağlar.
1.11.553
!tt argümansız çalıştırıldığında artık izlemenin başına geçmek yerine kısa yardım bilgisi ve mevcut konumu gösterir.
Yeni bir veri modeli yöntemi, yerel değişkenin değerlerinin geçmişini görmenizi sağlar. Mevcut çerçeve için @$curframe gibi bir Çerçeve nesnesi içinde, değişkene yazılan değerlerin günlüğünü ve değişkenin bu değeri tuttuğu konum aralığını almak için .TTD.VariableHistory() yöntemini kullanabilirsiniz.
-
dx -g @$curframe.TTD.VariableHistory().Variablesyerel değişken adlarının listesini görüntüler. -
dx -g @$curframe.TTD.VariableHistory().Variables[n].Values#n yerel değişkeninin geçmişini görüntüler.
TTD Yeniden Yürütme API'sini deneysel bir SDK'da da kullanabilirsiniz. Bu API, hata ayıklayıcının TTD ile etkileşime geçmek için kullandığı aynı API'dir ve Calls() / Memory() fonksiyonlarının verileri verimli bir şekilde toplamasını sağlar. Daha fazla bilgi için bkz. https://aka.ms/ttdsdk.
Düzeltildi
-
ErrorReporting::PrintError'ün kullanımdan kaldırılması nedeniyle oluşan kilitlenme düzeltildi (1.11.553)
1.11.532
Bu sürüm, kayıt sağlamlığında iyileştirmeler yapan bir bakım sürümüdür. Bu TTD sürümü, Windbg'nin Haziran 2025 sürümüyle aynı zamana denk geliyor. Yeni bir özellik, Konum veri modeli nesnesinin şimdi izlemenin yüzdesini raporlamasıdır.
Değişti
- Çeşitli altyapı bakımı.
- C++ volatile ISO standardının uygulanmasını kullanın. (1.11.518)
- Konum veri modeli projeksiyonuna Yüzde ekleyin. (1.11.514)
Düzeltildi
- TTD'nin kodu çözülen yönergeleri işlemesinin sağlamlığını artırın. (1.11.530)
- Öykünücüdeki XSAVE kullanımını kaldırın ve dahili yazmaç transferini optimize edin. (1.11.509)
1.11.506
Bu sürüm, WinDbg'nin Nisan 2025'teki sürümüyle aynı zamanda yayımlanan küçük bir sürümdür.
Değişti
Veri modelinde bir TTD pozisyonuna (örneğin, Modüller listesinde) tıkladığınızda, izleme sırasında sizi o pozisyona yönlendirir. (1.11.492)
Not: Komut penceresi, sonraki adım veya çalıştırma komutu yürütülene kadar güncelleştirilmiş TTD konumunu göstermez.
Düzeltildi
- PID'ye bağlanırken sorun gidermeye yardımcı olmak için işlem adını .out dosyasına ekleyin. (1.11.486)
1.11.481
İzleme işleminizde gezinmenin daha güçlü yollarını sunmak için !tt komutunu yeniledik.
- Kesirli yüzdeler, arama alanını daraltmak için kullanılabilir (!tt 23,65)
- Bir yazmacın değeri değiştiğinde önceki/sonraki zamanı bul (!tt br ebx)
- Bir bellek aralığına bir önceki/sonraki erişim zamanını bulun (!tt ba- [adres] [aralık])
- Bir önceki/sonraki sefer yürütmenin farklı bir modüle geçtiği zamanı bulun (!tt bm)
- Yürütmenin belirli bir modüle (!tt bm ntdll) geçtiği önceki/sonraki seferi bul
Daha fazla bilgi için bkz . !tt (zaman yolculuğu).
Bazı önemli düzeltmeler:
- 32 bit izlemede
@$cursession.TTD.Data.Heap()kullanıldığında "Hata: 64 bit değer sayıya dönüştürülürken hassasiyet kaybı yaşıyor" iletileri kayboldu. - Yardım seçeneği ayrıştırma (
-?,-help) artık komut satırında herhangi bir yerde doğru şekilde algılanıyor. -
dx @$cursession.TTD.Calls()artık adreslerin işlevin başlangıcıyla eşleşmesini gerektirmez. Bunun yerine, adres en yakın eşleşen işlevin başlangıcına eşlenir. - TTD, vertarget komutundan hedef işletim sistemi sürümünü doğru şekilde bildirir.
- Barındırılan hizmet adıyla "-monitor" kullanıldığında artık ilişkisiz barındırılan hizmetler kaydedilmez.
Eklendi
- Değişiklik kesme noktalarını TTD izlemelerine kaydetme (1.11.431)
Değişti
- Monitor modunu kullanarak adlarına göre hizmetlerin kaydını düzelt. (1.11.477)
- Hata ayıklayıcısı tarafından kullanılmak üzere gerçek hedef sistemin işletim sistemi bilgilerini yakalama (1.11.473)
- Öykünücü ile CONTEXT (1.11.469) arasında XMM yazmaçlarının aktarımını düzeltme
- İşlevin içindeki adreslerde arama sorgularına izin verme (1.11.459)
- !tt komut satırında adres/boyut olarak sembolleri destekleyin (1.11.454)
- Tutarlılığı geliştirme ve TTD gezinti komutlarının özelliklerini genişletme (1.11.453)
- Bozuk veriler karşısında modül veritabanı tutarlılığını geliştirme (1.11.430)
Düzeltildi
- PID'ye eklerken çıkışa işlem adı ekleme (1.11.486)
- TTD. Data.Heap() bazı durumlarda "Hata: 64 bit değer sayıya dönüştürmede duyarlığı kaybediyor" raporunu bildirir (1.11.471)
- Gölge yığınların etkin olduğu bir işlemi kaydetme güvenilirliğini artırma (1.11.466)
- !tt bm ve veri modeli aracılığıyla modül gezintisi ekleme (1.11.462)
- Komut satırı ayrıştırma ile ilgili bazı sorunları düzeltin. (1.11.444)
- Lodsd düzeltildi, adresteki çift kelimeyi yükle (rax'ın üst kısmını sıfırla) (1.11.434)
- Bazı libfuzzer hatalarını düzeltme (1.11.433)
1.11.429
TTD'nin bu güncelleştirmesi, güvenilirliği artırmak için bazı iç değişikliklerle birlikte birkaç hata düzeltmesi içerir.
Not: 1.11.410 sürümü, Intel/AMD LODSD yönergesinin öykünmesinde bir gerilemeye neden oldu. Bu regresyon için bir düzeltme sonraki sürümde sunulacaktır.
Düzeltmeler:
- Güvenilirliği artırmak için paket okuma sağlamlığını ve diğer sair değişiklikleri geliştirin.
- AVX VBROADCAST[I/F]128 yönergesinin öykünülmesindeki bir gerilemeyi düzeltin.
- Windows'un daha yeni derlemelerinde ARM64'te istisna kaydı erişimini düzeltin.
1.11.410
Geliştirilmiş erişilebilirlik: İlerleme kullanıcı arabirimi artık Metin Boyutu değişiklikleriyle düzgün ölçeklendirilmektedir.
Hata ayıklayıcıdaki @$cursession.TTD.Calls() komutu artık çok sayıda işlevle eşleşen joker karakterleri destekliyor.
Artık çok sayıda işlevi (@$cursession.TTD.Calls("kernel32!*")) sorgulamak mümkündür.
Otomasyon: Yeni -onMonitorReadyEvent komut satırı seçeneği, kayıt izleyicisinin (-monitor anahtarı) yeni işlemleri kaydetmeye ne zaman hazır olduğunu gösterir.
Düzeltmeler:
- Kaydediciyi başlatırken bazı yarış koşullarını düzeltin.
- Kesme noktalarının düzgün çalışması için syscall'ları kaydetme şeklimizi düzeltin.
- Modül seçmeli kaydıyla ilgili birden çok sorunu düzeltin.
ARM64 düzeltmeleri:
- Düz ARM64v8.0 düzeyinde CPU'larda TTD kaydını engelleyen bir hata düzeltildi.
- ARM64'te x86 veya x64 işleminin izini kullanmaya çalışırken verilen mesajlar iyileştirildi.
AMD/Intel düzeltmeleri (Google tarafından bildirilen bazı sorunları içerir):
- LODS'nin yanlış öykünmesi düzeltildi: Kullanılmayan RAX bitlerini sıfırlar yerine artık doğru şekilde korunurlar.
- x86/x64 işlemlerinde "pop ax" yönergesinin öykünmesi düzeltildi, çünkü bu öykünme yanlış bir şekilde tam yazmacın üst bitlerini sıfırlıyordu (örneğin, "pop ax" rax'in üst bitlerini temizliyordu).
- XGETBV yönergesinin doğrudan öykünmesi (daha hızlı).
- Tüm AVX512 SIMD aktarımlarının doğrudan öykünmesi (daha hızlı).
1.11.316
Uzun kesintisiz veri ağırlıklı yönerge dizilerine sahip programları kaydederken zaman zaman kilitlenmelere neden olan bir regresyon düzeltildi.
ARM64 düzeltmeleri:
- PAC özelliğinin etkinleştirildiği ARM64 işlemlerinde kayıt artık desteklenmektedir.
- ANDS ve TST yönergelerinin taşıma ve taşma bayraklarını temizleyememe sorunu giderildi.
AMD/Intel düzeltmeleri:
- TTD'nin "xchg r8,rax" ve "xchg r8w,ax" değerlerinin NOP olarak yanlış öykündüğü hata düzeltildi.
1.11.304
TTD artık canlı kaydedilen işlemin içinden kaydediciyi denetlemek için genel olarak bir API uygular ve yayımlar. Belgeler ve bir örnek GitHubyer almaktadır.
TTD artık kayıt kapalıyken yeni -recordMode anahtarını kullanarak kendisini enjekte edebilir. Varsayılan olarak, TTD -recordMode Automatic kullanır, bu da tüm iş parçacıklarının kaydedilmesine neden olur. Belirtilirse -recordMode Manual , TTD hedef işleme eklenir ancak bir API çağrısı aracılığıyla yapılması söylenene kadar hiçbir şey kaydetmez.
Kayıt artık -module anahtarı kullanılarak belirli bir modül kümesiyle sınırlandırılabilir. Bazı senaryolarda, bu kısıtlama önemli ölçüde daha hızlı kayıt ve daha küçük izleme dosyalarına neden olabilir. Birden fazla -module anahtarı belirtilebilir.
Eşleşen kayıt ve tekrar oynatma bileşenleri artık dağıtım içerisinde yer alıyor. Hata ayıklayıcı ile komut satırı kaydedicisi arasında uyumsuzluk olması veya yeniden yürütme hatası olması durumunda, yeniden yürütme bileşenleri yeni bir hata ayıklayıcı yayımlanana kadar geçici bir çözüm olarak hata ayıklayıcı yüklemesine kopyalanabilir.
Yüklü dosya konumu, aşağıdaki komutu çalıştırarak PowerShell'de bulunabilir:
ls (Get-AppxPackage | where Name -eq 'Microsoft.TimeTravelDebugging').InstallLocation
Eklendi
- Otomatik kayıt olmadan eklemeyi etkinleştirmek için -recordmode anahtarı ekleyin (1.11.296)
- -module anahtarı ekleyin ve SR yapılandırması oluşturmak için kullanın (1.11.291)
- İşlem içi API tarafından veri modeline kaydedilen özel verileri projeye aktarma (1.11.286)
- Yeni bir TTDLiveRecorder.dll ekleyin ve TTDRecordCPU.dll (1.11.283) ile birlikte kablolayın
- MSIX'e tekrar oynatma bileşenlerini ekle, SDK aramasını düzelt & (1.11.265)
Değişti
yok
Düzeltildi
- Bazı iç araçlarda (1.11.281) kullanılan nlohmann JSON serileştiricisindeki ve numaralı hatalara geçici bir çözüm uygulayın.
- Katkıda bulunulan , gelecekteki bir sürüm bu kitaplığa yönelik bir düzeltme.
- Nadir bir CRT hatasından kaçınmak için dize hizalamasını ayarlama (1.11.279)
- VS ve OS kod tabanlarında rapor edildi ve düzeltildi.
- Watson çökme raporlarından gelen çeşitli küçük düzeltmeler (1.11.276)
- Bazı durumlarda izleme dosyası bozulmasına neden olabilecek bir regresyon düzeltildi (1.11.264)
Bilinen sorunlar
- ARM64'te, derleyici birden çok yüksek frekanslı işlevi arayamıyor ve bu da aşırı durumlarda kaydedicinin yığın alanı bitip kilitlenmesine neden olabilir.
1.11.261
Bu sürümdeki önemli değişiklikler şunlardır:
- [ARM64] Hedef kayıt kaynak olarak kullanıldığında
SXTL,SQXTN2,SQXTUN2,UQXTN2,XTN2veTRN1yönergelerinin davranışı düzeltildi. - [ARM64] Hata ayıklayıcıda SIMD yazmaçlarının alt 64 bitlerinin üst 64 bitlerine kopyalanmasına neden olan bir sorun düzeltildi.
- [AMD64] AMD'nin Zen4 işlemcileri için AVX512 emülasyon düzeltmeleri (yazmaçlar bozuluyordu).
Değişti
- Öykünücü için özel olarak yeni bir versiyonlama sistemi uygulayın. (1.11.260)
Düzeltildi
- Hedef kaydın kaynak olarak da kullanıldığı hatalı ARM64 yönergelerini düzeltin. (1.11.261)
- Zen4 için öykünücüye doğrudan dönüşlerde kullanılan geçici çözümü düzeltin. (1.11.222)
1.11.202
Bu sürüm, hizmetler kaydedilirken veya bir işlemin başlatılması izlenirken -monitor anahtarı aracılığıyla karşılaşılan birden çok sorunu giderir. Ayrıca arm32 kayıt desteğini üründen kaldırır.
Değişti
- TTD bileşenlerini DLL olarak UCRT'ye bağlayarak ikili boyutu azaltın. (1.11.191)
Düzeltildi
- Hizmet kayıtlarını düzeltin. (1.11.193)
- -monitor kullanırken karşılaşılan çeşitli sorunları düzeltin. (1.11.189)
- x64 (1.11.188) üzerinde geri dönüşler çalıştırılırken geçici olmayanları koruyan işlevin yığın çerçevesini düzeltin
- TTD için çıkış arabelleğini yeniden etkinleştirme (1.11.187)
- ProcessMonitorServer'da GPO tanıtıcısının işlenmesi düzeltildi (1.11.179)
Kaldırıldı
- ARM32 kayıt kodunu depodan kaldırma (1.11.198)
1.11.173
Bu sürüm, bazı hata iletilerini .out dosyasından ayıklayıp konsola yazdırarak görünürlüğünü artırır. Ayrıca iz kaydı yeniden oynatma sırasında nadir görülen bir kilitlenmeyi düzeltir.
Değişti
- .out dosyasından hata iletilerini ayıklama ve yazdırma (1.11.173)
Düzeltildi
- Ayrı işlemden .out dosyası okunurken dosya çakışması düzeltildi. (1.11.171)
- İzleme yeniden yürütme sırasında nadir görülen bir kilitlenme düzeltildi. (1.11.166)
1.11.163
Bu sürüm, x64 makinelerinde x86 işlemlerini kaydetme desteği ekler.
Değişti
- x64 TTD yüklemesiyle x86 kaydını düzeltme (1.11.163)
Düzeltildi
- EULA temizleme (1.11.161)
1.11.159
Bu sürüm, komut satırı kaydedicisinin ilk genel sürümüdür. Bu sürüm, komut satırı kaydedicisinin genel sürümünü etkinleştirmek için gereken çeşitli değişikliklerin yanı sıra, CPU öykünücüsünün birkaç düzeltmesi de dahil olmak üzere birden çok hata düzeltmesi içerir.
Yeni -timestampFileName anahtarı zaman damgası tabanlı .run dosyası oluşturmayı etkinleştirir. Bu anahtar, aynı işlemin birçok örneğini kaydederken ve kayıt başlatma süresini en aza indirmek istediğinizde kullanışlıdır.
Değişti
- Kullanılan tracer'a bağlı olarak çalışma zamanında varsayılan enjeksiyon modunu seçme (1.11.156)
- Zaman damgası tabanlı .run dosyası oluşturmayı etkinleştirmek için anahtar ekleme (1.11.155)
- TTD'ye EULA ve
-accepteulaekleme (1.11.154) - MSIX'e ProcLaunchMon.sys ekleme (1.11.153)
- Her mimari için MSIX ve MSIXBUNDLE oluşturma (1.11.152)
- Clang ile oluşturulan TTD test edilirken ortaya çıkan birden çok sorunu düzeltin. (1.11.146)
- TTDAnalyze için Clang düzeltmeleri (1.11.144)
Düzeltildi
- Appinstaller / genel sürüm hakkındaki geri bildirimleri gözden geçirin (1.11.159)
- RC geri bildirimi (1.11.157)
- Zero yazmacını çöpe atmamak için RegisterInfo'yu Sink'i işaret edecek şekilde başlatın. (1.11.149)
- TST yönergesini hemen düzeltin ve ünite testini daha fazlasını kapsayacak şekilde geliştirin. (1.11.148)
- Korumalı işlem kararını birleştirme ve korumalı işlem kullanımını devre dışı bırakma (1.11.147)
1.11.138
Değişti
- Kaydedici MSIX oluşturma (1.11.138)
- Clang'in TTD oluşturabilmesi için tüm sorunları düzeltin. (1.11.137)
- Başlatıldığında bir işlemi kaydetmenin yolu olarak -monitor X'i tanıtın (1.11.116)
Düzeltildi
- "CMP ZR" ARM64 öykünmesini düzeltme (1.11.128)
- AMD'nin Zen4 işlemcilerindeki AVX512 öykünmesini düzelt (1.11.127)
- TTD'nin belirli bir CPU'ya (1.11.121) yönelik dosyaları bulmak için kullandığı mekanizmayı düzeltme
- x86 TTD regresyonu düzeltildi (TTDRecordCPU.dll yüklenemedi) (1.11.110)
- ARM64'te yerel yola dönüş X28'i çöpe atmamak için düzeltildi (1.11.109)