Bagikan melalui


Pemeriksaan Kesalahan Perjalanan Waktu - Pemecahan Masalah

Logo debugging perjalanan waktu yang menampilkan jam.

Bagian ini menjelaskan cara memecahkan masalah jejak perjalanan waktu.

Masalah saat mencoba merekam proses

Saya mendapatkan pesan kesalahan yang mengatakan "WinDbg harus dijalankan dengan hak administrator untuk mendukung Debugging Perjalanan Waktu"

Sesuai pesan, menjalankan debugger dengan hak akses yang lebih tinggi adalah persyaratan. Untuk menjalankan debugger yang ditinggikan, klik kanan pada ikon WinDbg di menu mulai lalu pilih Lainnya>Jalankan sebagai Administrator.

Saya menginstal WinDbg menggunakan akun yang tidak memiliki hak istimewa administrator, dan saya mendapatkan pesan kesalahan yang mengatakan "WinDbg harus dijalankan dalam mode administrator untuk mendukung Debugging Perjalanan Waktu."

Instal ulang WinDbg menggunakan akun yang memiliki hak istimewa administrator dan gunakan akun tersebut saat merekam di debugger.

Saya tidak dapat meluncurkan dan merekam aplikasi UWP

Ini tidak didukung saat ini, tetapi Anda dapat melampirkan dan merekam aplikasi UWP yang sudah berjalan.

Saya tidak dapat merekam jenis proses yang tidak biasa - berjalan di sesi lain, konteks keamanan, kredensial...

Saat ini, TTD hanya merekam proses reguler yang biasanya dapat Anda luncurkan dari konsol perintah atau dengan mengklik executable atau pintasan di Windows Explorer.

Saya tidak berhasil merekam aplikasi saya di komputer saya

Jika perekaman aplikasi Anda gagal, verifikasi bahwa Anda dapat merekam proses Windows sederhana. Misalnya, "ping.exe" atau "cmd.exe" adalah proses sederhana yang biasanya dapat direkam.

Saya tidak berhasil merekam apa pun di komputer saya

Perekaman TTD adalah teknologi invasif, yang dapat mengganggu teknologi invasif lainnya seperti kerangka kerja virtualisasi aplikasi, produk manajemen informasi, perangkat lunak keamanan, atau produk antivirus.

Lihat "Hal-hal yang perlu diwaspadai" dalam Time Travel Debugging - Overview untuk informasi tentang ketidaksesuaian yang diketahui pada TTD.

Saya melacak aplikasi dan menjalankan AppVerifier secara bersamaan, dan performa saat memutar ulang jejak lambat.

Karena cara AppVerifier menggunakan memori untuk memeriksa aplikasi, pengalaman nanti ketika memutar ulang jejak dapat terlihat lebih buruk daripada tanpa AppVerifier. Untuk meningkatkan performa, nonaktifkan AppVerifier saat merekam aplikasi. Jika ini tidak memungkinkan, Anda mungkin perlu menutup jendela callstack di WinDbg untuk meningkatkan performa.

Masalah dengan . File indeks IDX

Men-debug file pelacakan tanpa file indeks, atau dengan file indeks yang rusak atau tidak lengkap, dimungkinkan, tetapi tidak disarankan. File indeks diperlukan untuk memastikan bahwa nilai memori yang dibaca dari proses yang di-debug paling akurat, serta meningkatkan efisiensi semua operasi debugging lainnya.

Gunakan perintah !index -status untuk memeriksa status dari file indeks .IDX yang terkait dengan file pelacakan .RUN.

Jika Anda dapat mencoba membuat ulang file indeks dengan menjalankan !index -force.

Membuat ulang file indeks .IDX

Jika Anda mencurigai adanya masalah dengan file indeks, atau jika !index -status mengatakan apa pun selain "File indeks dimuat", buat ulang file tersebut. Untuk melakukan ini, Anda dapat menjalankan !index -force. Jika itu gagal:

  1. Tutup debugger.
  2. Hapus file IDX yang ada; file ini akan memiliki nama yang sama dengan file pelacakan .RUN dan akan berada di direktori yang sama dengan file .RUN.
  3. Buka berkas jejak .RUN di WinDbg. Ini akan menjalankan !index perintah untuk membuat ulang indeks.
  4. !index -status Gunakan perintah untuk mengonfirmasi bahwa indeks pelacakan berfungsi.

Pastikan bahwa ada cukup ruang untuk file indeks di lokasi yang sama tempat file pelacakan berada. Tergantung pada konten rekaman, file indeks mungkin jauh lebih besar dari file pelacakan, biasanya pada urutan dua kali lebih besar.

Masalah dengan File Trace .run

Ketika ada masalah dengan file .RUN trace, Anda mungkin menerima pesan kesalahan seperti ini.

Replay and log are out of sync at fallback data. Packet type is incorrect "Packet Type"
Replay and log are out of sync at opaque data. Log had already reached the end
Replay exit thread event does not match up with logged event
Logged debug write values are out of sync with replay

Dalam kebanyakan kasus, semua pesan kegagalan menunjukkan bahwa . File pelacakan RUN tidak dapat digunakan dan harus direkam ulang.

Merekam ulang aplikasi mode pengguna

Jika ada masalah tertentu dengan merekam aplikasi mode pengguna, Anda mungkin ingin mencoba merekam aplikasi yang berbeda pada PC yang sama, atau mencoba aplikasi yang sama di PC yang berbeda. Anda mungkin ingin mencoba dan merekam penggunaan aplikasi yang berbeda untuk melihat apakah ada masalah tertentu dengan merekam bagian tertentu dari aplikasi.

Saat menelusuri kesalahan atau membuat indeks, saya melihat pesan tentang "Peristiwa penggangguan".

Ada kemungkinan Bahwa Anda mungkin melihat pesan seperti ini:

Derailment event MissingDataDerailment(7) on UTID 2, position 2A550B:108 with PC 0x7FFE5EEB4448 Request address: 0x600020, size: 32

TTD bekerja dengan menjalankan emulator di dalam debugger, yang mengeksekusi instruksi dari proses yang sedang di-debug untuk mereplikasi status proses tersebut pada setiap posisi dalam rekaman. Penggagalan terjadi ketika emulator ini mengamati semacam perbedaan antara status yang dihasilkan dan informasi yang ditemukan dalam file pelacakan. Kesalahan yang dikutip di atas, misalnya, mengacu pada instruksi yang ditemukan di lokasi 0x7FFE5EEB4448, pada posisi 2A550B:108 dalam jejak, yang mencoba membaca beberapa memori di sekitar lokasi 0x600020, yang tidak ada dalam rekaman.

Kegagalan sering disebabkan oleh beberapa kesalahan di perekam, atau kadang-kadang di emulator, pada beberapa instruksi yang direkam lebih awal di jejak.

Dalam kebanyakan kasus, pesan kegagalan ini menunjukkan bahwa file pelacakan .RUN akan memiliki celah di utas yang terhenti, dimulai dari titik di mana utas tersebut terganggu, untuk sejumlah instruksi yang tidak dapat ditentukan. Jika peristiwa minat yang Anda coba debug tidak terjadi selama kesenjangan tersebut, jejak mungkin dapat digunakan. Jika peristiwa minat terjadi selama kesenjangan itu, jejak harus direkam ulang.

Lihat Juga

Debugging Perjalanan Waktu - Gambaran Umum

Catatan rilis debugging perjalanan waktu