Penelusuran Kesalahan Perjalanan Waktu - Bekerja dengan File Pelacakan
Bagian ini menjelaskan cara bekerja dengan file yang dibuat dan digunakan oleh penelusuran kesalahan perjalanan waktu.
Gambaran Umum File Pelacakan
Penelusuran Kesalahan Perjalanan Waktu menggunakan file berikut untuk men-debug eksekusi kode.
File pelacakan berisi rekaman eksekusi kode dan memiliki . Ekstensi RUN.
File indeks memungkinkan akses cepat ke informasi dalam file Pelacakan dan memiliki . Ekstensi IDX.
Kesalahan perekaman dan output rekaman lainnya ditulis ke file log debugger.
Jejak. File RUN
Jejak. File RUN dapat dibuka setelah direkam menggunakan file Pelacakan buka penelusuran kesalahan>Mulai File>.
Semua file output jejak disimpan di folder dokumen pengguna secara default. Misalnya, untuk User1, file TTD akan disimpan di sini:
C:\Users\User1\Documents
Anda dapat mengubah lokasi file pelacakan saat Anda mulai merekam. Untuk informasi selengkapnya, lihat Penelusuran Kesalahan Perjalanan Waktu - Perekaman.
Daftar file yang terakhir digunakan memungkinkan Anda mengakses file konfigurasi target yang digunakan sebelumnya dengan cepat. File jejak atau file cadangan yang baru-baru ini digunakan juga tercantum.
Indeks. File IDX
Indeks . File IDX dibuat untuk jejak terkait . JALANKAN file secara otomatis saat membuka file pelacakan di WinDbg. Anda dapat membuat file indeks secara manual dengan menggunakan perintah !index. Indeks memungkinkan akses yang lebih cepat ke informasi pelacakan.
File IDX juga bisa besar, biasanya dua kali ukuran . JALANKAN file.
Membuat ulang . File IDX
Anda dapat membuat ulang . File IDX dari . JALANKAN file, menggunakan !index
perintah . Untuk informasi selengkapnya, lihat Penelusuran Kesalahan Perjalanan Waktu - !index (perjalanan waktu).
0:0:001> !index
Indexed 3/3 keyframes
Successfully created the index in 49ms.
Berbagi TTD Trace . File RUN
TTD hanya lokal dan tidak berfungsi dari jarak jauh yang terhubung ke komputer lain.
File pelacakan TTD dapat dibagikan dengan orang lain dengan menyalin . JALANKAN file. Ini bisa berguna untuk memiliki rekan kerja membantu Anda mencari tahu masalahnya. Mereka tidak perlu menginstal aplikasi yang mengalami crash atau melakukan penyiapan terkait lainnya untuk mencoba mereprodusi masalah. Mereka hanya dapat memuat file pelacakan dan men-debug aplikasi seolah-olah diinstal pada PC mereka.
Komputer tempat Anda memutar ulang jejak TTD harus mendukung semua instruksi yang digunakan pada mesin rekaman - misalnya instruksi AVX.
Anda dapat mengganti nama file untuk menyertakan informasi tambahan apa pun, seperti tanggal atau nomor bug.
Tje. File IDX tidak perlu disalin karena dapat dibuat ulang menggunakan perintah !index seperti yang dijelaskan di atas.
Tip
Saat berkolaborasi dengan orang lain, teruskan posisi jejak yang relevan yang terkait dengan masalah yang ada. Kolaborator dapat menggunakan !tt x:y
perintah untuk berpindah ke titik waktu yang tepat dalam eksekusi kode. Rentang posisi waktu dapat disertakan dalam deskripsi bug untuk melacak di mana kemungkinan masalah mungkin terjadi.
Kesalahan - File Log
Kesalahan perekaman dan output rekaman lainnya ditulis ke file log debugger. Untuk melihat file log, pilih Tampilkan>Log.
Contoh ini menunjukkan teks log kesalahan saat mencoba meluncurkan dan merekam executable bernama Foo.exe yang tidak ada di direktori C:\Windows.
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.
Lacak ukuran file
File pelacakan TTD bisa menjadi sangat besar dan penting untuk memastikan bahwa Anda memiliki ruang disk kosong yang memadai yang tersedia. Jika Anda merekam aplikasi atau proses bahkan hanya selama beberapa menit, file pelacakan mungkin bertambah menjadi beberapa gigabyte dalam ukuran. Ukuran file pelacakan tergantung pada sejumlah faktor yang dijelaskan di bawah ini.
TTD tidak mengatur ukuran maksimum file pelacakan untuk memungkinkan skenario jangka panjang yang kompleks. Dengan cepat membuat ulang masalah, akan menjaga ukuran file pelacakan sesecil mungkin.
Melacak faktor ukuran file
Tidak dimungkinkan untuk memberikan dan memperkirakan ukuran file jejak dengan tepat tetapi ada beberapa aturan praktis untuk membantu Anda memahami ukuran file TTD.
Faktor-faktor berikut dapat memengaruhi ukuran file pelacakan:
- Jumlah instruksi kode yang dijalankan di semua utas saat merekam aplikasi atau proses yang sedang berjalan
- Lamanya waktu di mana aplikasi atau proses direkam (hanya karena ini memengaruhi jumlah instruksi kode yang direkam)
- Ukuran data memori yang digunakan oleh aplikasi atau proses
Jumlah instruksi yang dijalankan dan direkam adalah faktor terbesar yang memengaruhi ukuran file jejak. Jejak biasanya memerlukan antara 1 bit dan 1 byte per instruksi yang dijalankan. Jejak kemungkinan akan menuju ujung bawah rentang tersebut ketika program yang direkam menjalankan sejumlah kecil fungsi yang berbeda dan beroperasi pada sekumpulan data yang lebih kecil. Jejak kemungkinan akan menuju akhir yang lebih tinggi dari rentang tersebut ketika program yang direkam menjalankan sejumlah besar fungsi yang berbeda atau beroperasi pada sekumpulan data yang lebih besar.
Lacak aturan ukuran file jempol
File pelacakan tumbuh sekitar 5MB hingga 50MB per detik saat merekam aplikasi atau proses aktif, tergantung pada faktor ukuran file pelacakan yang diidentifikasi di atas.
File pelacakan tidak akan tumbuh ketika aplikasi atau proses yang direkam tidak aktif (misalnya, saat menunggu input).
Saat ini tidak ada batas ukuran file maksimum untuk file pelacakan. WinDbg dapat memutar ulang file pelacakan yang berukuran ratusan gigabyte.
Ukuran file indeks
File indeks secara otomatis dibuat oleh WinDbg saat Anda membuka jejak untuk pertama kalinya. Ini berisi informasi yang membantu debugger memutar ulang informasi jejak dan kueri tentang memori secara lebih efisien. Ukurannya umumnya berkisar dari 1 hingga 2 kali ukuran file pelacakan. Faktor-faktor yang memengaruhi ukurannya mirip dengan yang memengaruhi ukuran file pelacakan.
Pertama, ukuran skala file indeks relatif terhadap panjang jejak. Jejak yang berisi sejumlah besar instruksi yang direkam umumnya akan memiliki indeks yang lebih besar.
Kedua, ukuran skala indeks relatif terhadap luasnya akses memori. Jika program yang dicatat sering mengakses sejumlah besar lokasi memori yang berbeda, indeks umumnya akan lebih besar daripada jika program yang direkam mengakses lebih sedikit lokasi memori yang berbeda atau jika akses ke lokasi memori lebih jarang.
Karena faktor-faktor ini mirip dengan faktor-faktor yang memengaruhi ukuran file pelacakan, ukuran file indeks umumnya menskalakan relatif terhadap ukuran file indeks (dengan demikian perkiraan kami bahwa biasanya antara 1x dan 2x ukuran file pelacakan).
Bagaimana jika saya kehabisan ruang disk?
Pelacakan TTD dan file indeks ditulis ke disk. Saat ini tidak ada batasan ukuran file maksimum untuk pelacakan atau file indeks. Ukuran file pelacakan bertambah hingga Anda berhenti merekam atau melebihi jumlah ruang disk yang tersedia.
Selama perekaman: TTD akan menulis halaman terakhir ke file pelacakan dan kemudian secara efektif menunggu hingga dapat menulis lagi. WinDbg terus menampilkan dialog Perekaman tetapi tidak menampilkan pesan kesalahan/peringatan saat kehabisan ruang disk selama perekaman.
Kehabisan ruang disk selama perekaman menghasilkan file pelacakan dengan catatan eksekusi kode yang tidak lengkap. File pelacakan yang tidak lengkap dapat dibuka di WinDbg tetapi mungkin tidak menyertakan masalah aktual jika kesalahan terjadi setelah kehabisan ruang disk saat menulis file pelacakan.
Solusi sementara: Buka File Explorer dan periksa apakah disk (yaitu C: drive) Ruang kosong mendekati nol. Secara bergantian perhatikan jejak (. RUN) file di File Explorer (default di folder Dokumen) dan jika tidak secara teratur bertambah dalam ukuran maka perekaman mungkin menunggu. Pilih tombol Hentikan dan Debug di WinDbg, kosongkan ruang atau simpan ke disk lain, dan mulai merekam lagi.
Selama pengindeksan: Debugger dapat menghasilkan file indeks yang tidak valid, yang mengakibatkan perilaku yang tidak dapat diprediksi dalam debugger, atau host mesin debugger mungkin crash.
Solusi sementara: Tutup debugger dan hapus file indeks apa pun (.idx) yang mungkin ada untuk jejak Anda. Bebaskan ruang disk yang memadai, atau pindahkan file pelacakan ke disk yang berbeda dengan ruang kosong yang memadai. Buka jejak lagi di debugger dan jalankan !index untuk membuat indeks baru yang benar. Pengindeksan tidak mengubah file jejak asli (.run), sehingga tidak ada data yang akan hilang.