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.
Zaman yolculuğu hata ayıklama logosu, saat görüntüsü içeriyor.
Bu bölümde, zaman yolculuğu hata ayıklama işlemiyle oluşturulan ve kullanılan dosyalarla nasıl çalışılacağı açıklanmaktadır.
İzleme Dosyasına Genel Bakış
Time Travel Hata Ayıklama, kod yürütme hatalarını ayıklamak için aşağıdaki dosyaları kullanır.
İzleme dosyası, kod yürütme kaydını içerir ve .RUN uzantısına sahiptir.
Dizin dosyası, İzleme dosyasındaki bilgilere hızlı erişim sağlar ve .IDX uzantısına sahiptir.
Kayıt hataları ve diğer kayıt çıktıları hata ayıklayıcı günlük dosyasına yazılır.
İzle RUN dosyaları
İz. RUN dosyaları Dosya kullanılarak kaydedildikten sonra açılabilir>Hata ayıklamayı başlat>İzleme dosyasını aç.
İzleme çıktı dosyalarının tümü varsayılan olarak kullanıcılar belge klasöründe depolanır. Örneğin, User1 için TTD dosyaları burada depolanır:
C:\Users\User1\Documents
Kaydetmeye başladığınızda izleme dosyalarının konumunu değiştirebilirsiniz. Daha fazla bilgi için bkz. Zaman Yolculuğu Üzerinde Hata Ayıklama - Kayıt.
En son kullanılan dosya listesi, daha önce kullanılan hedef yapılandırma dosyalarına hızlı bir şekilde erişmenizi sağlar. Son kullanılan izleme dosyaları veya döküm dosyaları da listelenir.
Dizin. IDX dosyaları
İlgili iz .RUN dosyası için bir dizin .IDX dosyası, iz dosyasını WinDbg'de açarken otomatik olarak oluşturulur. !index komutunu kullanarak dizin dosyasını el ile oluşturabilirsiniz. Dizin, izleme bilgilerine daha hızlı erişim sağlar.
IDX dosyaları da büyük olabilir, genellikle .RUN dosyasının boyutunun iki katıdır.
IDX dosyasını yeniden oluşturma
.RU dosyasından .IDX dosyasını, !index komutunu kullanarak yeniden oluşturabilirsiniz. Daha fazla bilgi için bkz. Zaman Yolculuğu Hata Ayıklama - !index (zaman yolculuğu).
0:0:001> !index
Indexed 3/3 keyframes
Successfully created the index in 49ms.
TTD İzleme .RUN dosyalarını paylaşma
TTD yalnızca yereldir ve başka bir makineye uzaktan bağlı olarak çalışmaz.
TTD izleme dosyaları, .RUN dosyası kopyalanarak başkalarıyla paylaşılabilir. Bu, bir iş arkadaşının sorunu çözmenize yardımcı olması için kullanışlı olabilir. Kilitlenen uygulamayı yüklemeleri veya sorunu yeniden oluşturmaya çalışmak için ilgili başka bir kurulum gerçekleştirmeleri gerekmez. Sadece izleme dosyasını yükleyebilir ve sonrasında sanki uygulama kendi bilgisayarlarına yüklenmiş gibi uygulamada hata ayıklayabilirler.
TTD izlemesini yeniden oynattığınız makine, kayıt makinesinde kullanılan tüm yönergeleri (örneğin AVX yönergeleri) desteklemelidir.
Dosyayı tarih veya hata numarası gibi ek bilgileri içerecek şekilde yeniden adlandırabilirsiniz.
. IDX dosyasının kopyalanması gerekmez çünkü yukarıda açıklandığı gibi !index komutu kullanılarak yeniden oluşturulabilir.
İpucu
Başkalarıyla işbirliği yaparken, eldeki sorunla ilgili tüm ilgili iz konumlarını paylaşın. ortak çalışan, kodun yürütülmesinde tam olarak o noktaya gitmek için !tt x:y komutunu kullanabilir. Olası sorunun nerede oluştuğunu izlemek için hata açıklamalarına zaman konum aralıkları eklenebilir.
Hata - Günlük Dosyası
Kayıt hataları ve diğer kayıt çıktıları hata ayıklayıcı günlük dosyasına yazılır. Günlük dosyasını görüntülemek için >Günlüklerini Görüntüleöğesini seçin.
Bu örnek, C:\Windows dizininde olmayan Foo.exe adlı yürütülebilir dosyayı başlatmaya ve kaydetmeye çalışırken oluşan hata günlüğü metnini gösterir.
2017-09-21:17:18:10:320 : Information : DbgXUI.dll : TTD: Output:
Microsoft (R) TTD 1.01.02
Release: 10.0.16366.1000
Copyright (C) Microsoft Corporation. All rights reserved.
Launching C:\Windows\Foo.exe
2017-09-21:17:18:10:320 : Error : DbgXUI.dll : TTD: Errors:
Error: Trace of C:\Windows\Foo.exe PID:0 did not complete successfully: status:27
Error: Could not open 'Foo.exe'; file not found.
Error: Corrupted trace dumped to C:\Users\User1\Documents\Foo01.run.err.
Dosya boyutunu izleme
TTD izleme dosyaları gerçekten büyük olabilir ve yeterli boş disk alanınız olduğundan emin olmak önemlidir. Yalnızca birkaç dakika için bile bir uygulama veya işlem kaydederseniz, izleme dosyasının boyutu birkaç gigabayt olacak şekilde büyüyebilir. İzleme dosyasının boyutu, aşağıda açıklanan bir dizi faktöre bağlıdır.
TTD, uzun süre çalışan karmaşık senaryolara izin vermek için en büyük izleme dosyası boyutunu ayarlamaz. Sorunu hızla yeniden oluşturmak, iz dosyası boyutunu mümkün olduğunca küçük tutar.
dosya boyutu faktörlerini izleme
İzleme dosyası boyutunu tam olarak tahmin etmek mümkün değildir, ancak TTD dosya boyutlarını anlamanıza yardımcı olacak birkaç temel kural vardır.
Aşağıdaki faktörler izleme dosyasının boyutunu etkileyebilir:
- Çalışan uygulamayı veya işlemi kaydederken tüm iş parçacıklarında yürütülen kod yönergelerinin sayısı
- Uygulamanın veya işlemin kaydedildiği süre (yalnızca kaydedilen kod yönergelerinin sayısını etkilediği için)
- Uygulama veya işlem tarafından kullanılan bellek verilerinin boyutu
Yürütülen ve kaydedilen yönergelerin sayısı, izleme dosyası boyutunu etkileyen en büyük faktördür. İzleme genellikle yürütülen yönerge başına 1 bit ile 1 bayt arasında bir süre gerektirir. Kaydedilen program daha az sayıda farklı işlev yürütür ve daha küçük bir veri kümesi üzerinde çalıştığında izleme bu aralığın alt ucuna doğru olabilir. Kaydedilen program daha fazla sayıda farklı işlev yürüttüğünde veya daha büyük bir veri kümesi üzerinde çalıştığında izleme büyük olasılıkla bu aralığın üst ucuna doğru olacaktır.
İzleme dosyası boyutu genel kuralı
İzleme dosyası, yukarıda tanımlanan izleme dosyası boyutu faktörlerine bağlı olarak etkin bir uygulama veya işlem kaydederken saniyede yaklaşık 5 MB ile 50 MB arasındadır.
Kaydedilen uygulama veya işlem boşta olduğunda (örneğin, giriş beklerken) izleme dosyası büyümez.
Şu anda izleme dosyaları için dosya boyutu üst sınırı yoktur. WinDbg, boyutu yüzlerce gigabayt olan izleme dosyalarını yeniden yürütebilir.
Dizin dosyası boyutu
Dizin dosyası, ilk kez bir izleme açtığınızda WinDbg tarafından otomatik olarak oluşturulur. Hata ayıklayıcının bellekle ilgili izleme ve sorgu bilgilerini daha verimli bir şekilde yeniden yürütmesine yardımcı olan bilgiler içerir. Boyutu genellikle izleme dosyasının boyutunun 1 ile 2 katı arasında değişir. Boyutunu etkileyen faktörler, izleme dosyasının boyutunu etkileyenlere benzer.
İlk olarak, dizin dosyasının boyutu izlemenin uzunluğuna göre ölçeklendirilir. Daha fazla sayıda kayıtlı yönerge içeren bir iz, genellikle büyük bir dizine sahip olur.
İkincisi, dizinin boyutu bellek erişimlerinin genişliğine göre ölçeklendirilir. Kaydedilen program sık sık çok sayıda farklı bellek konumuna eriştiyse, dizin genellikle kaydedilen programın daha az farklı bellek konumuna eriştiğinden veya bellek konumlarına daha az erişim olduğundan daha büyük olur.
Bu faktörler izleme dosyasının boyutunu etkileyen faktörlere benzer olduğundan, dizin dosyasının boyutu genellikle dizin dosyasının boyutuna göre ölçeklendirilir (bu nedenle, genellikle izleme dosyasının boyutunun 1x ile 2 katı arasında olduğunu tahmin ediyoruz).
Disk alanım tükenirse ne olur?
Hem TTD izleme hem de dizin dosyaları diske yazılır. Şu anda izleme veya dizin dosyası için en büyük dosya boyutu sınırlaması yoktur. Kaydı durdurana veya kullanılabilir disk alanı miktarını aşana kadar izleme dosyasının boyutu büyür.
Kayıt sırasında: TTD son sayfayı izleme dosyasına yazar ve sonra yeniden yazabilmesini etkili bir şekilde bekler. WinDbg, Kayıt iletişim kutusunu göstermeye devam eder, ancak kayıt sırasında disk alanı tükenirken hata/uyarı iletisi göstermez.
Kayıt sırasında disk alanının tükenmesi, kod yürütme kaydının tamamlanmamış olduğu bir izleme dosyasına neden olur. Eksik izleme dosyası WinDbg'de açılabilir, ancak izleme dosyası yazılırken disk alanı dolduktan sonra hata oluşursa gerçek sorunu içermeyebilir.
Geçici çözüm: Dosya Gezgini'ni açın ve disk boş alanının sıfıra yakın olup olmadığını denetleyin. Alternatif olarak, Dosya Gezgini'nde (.RUN dosyasını) izleyin (varsayılan olarak Belgeler klasöründe) ve dosya düzenli olarak boyut olarak büyümüyorsa kayıt bekliyor olabilir. WinDbg'de Durdur ve Hata Ayıkla düğmesini seçin, yer açın veya başka bir diske kaydedin ve kaydı yeniden başlatın.
Dizinleme sırasında: Hata ayıklayıcı, geçersiz bir dizin dosyası üreterek hata ayıklayıcıda öngörülemeyen davranışlara neden olabilir veya hata ayıklayıcı motorunun konak sistemi çökmelere yol açabilir.
Geçici çözüm: Hata ayıklayıcıyı kapatın ve izlemeniz için mevcut olabilecek tüm dizin dosyalarını (.idx) silin. Yeterli disk alanı boşaltın veya izleme dosyasını yeterli boş alana sahip farklı bir diske taşıyın. İzlemeyi hata ayıklayıcıda yeniden açın ve yeni, doğru bir dizin oluşturmak için !index komutunu çalıştırın. Dizin oluşturma özgün izleme dosyasını (.run) değiştirmez, bu nedenle hiçbir veri kaybolmaz.