Bagikan melalui


Debugging Perjalanan Waktu - Merekam Jejak

Logo penelusuran kesalahan perjalanan waktu yang menampilkan jam.

Bagian ini menjelaskan cara mencatat jejak debugging time travel (TTD). Ada dua cara untuk merekam Jejak di WinDbg, Luncurkan yang Dapat Dieksekusi (lanjutan) dan Lampirkan ke proses.

Luncurkan program yang dapat dijalankan (tingkat lanjut)

Untuk meluncurkan executable dan merekam jejak TTD, ikuti langkah-langkah ini.

  1. Di WinDbg, pilih File>Mulai debugging>Luncurkan yang dapat dieksekusi (tingkat lanjut).

  2. Masukkan jalur ke file eksekusi mode pengguna yang ingin Anda rekam, atau pilih Telusuri untuk menavigasi ke file eksekusi tersebut. Untuk informasi tentang bekerja dengan menu Luncurkan Eksekutabel di WinDbg, lihat WinDbg - Memulai sesi mode pengguna.

  3. Centang kotak Record with Time Travel Debugging untuk merekam jejak saat executable diluncurkan.

    Cuplikan layar WinDbg dengan kotak centang mulai merekam di layar Jalankan Eksekusi (tingkat lanjut).

  4. Jika Anda memilih Konfigurasikan dan Rekam Anda akan dapat mengonfigurasi lokasi untuk file pelacakan.

    Cuplikan layar dialog Konfigurasi Perekaman dengan tombol Telusuri dan jalur file ditampilkan.

  5. Untuk membatasi perekaman ke modul tertentu, centang "Rekam subset eksekusi" dan ketik nama modul. Misalnya, jika Anda hanya ingin merekam eksekusi notepad.exe, ketik "notepad.exe" dalam kotak teks. Jika Anda ingin merekam eksekusi notepad.exe dan kernelbase.dll, ketik "notepad.exe,kernelbase.dll" dalam kotak teks.

    Cuplikan layar dialog Konfigurasi Perekaman dengan subset rekaman eksekusi dicentang dan kotak teks daftar modul.

  6. Pilih OK untuk meluncurkan executable dan mulai merekam.

  7. Dialog perekaman muncul yang menunjukkan pelacakan sedang direkam.

    Cuplikan layar popup perekaman TTD dengan tombol Hentikan dan Debug, dan Batalkan.

  8. Lihat Cara merekam untuk informasi tentang perekaman.

Menempelkan pada proses

Untuk menghubungkan ke proses dan merekam jejak TTD, ikuti langkah-langkah berikut.

  1. Di WinDbg, pilih File >Mulai debug>Lampirkan ke proses.

  2. Pilih proses mode pengguna yang ingin Anda lacak. Untuk informasi tentang bekerja dengan menu Lampirkan ke proses di WinDbg, lihat WinDbg - Mulai sesi mode pengguna.

    Cuplikan layar WinDbg yang menampilkan kotak centang mulai perekaman di layar Lampirkan ke Proses.

  3. Centang kotak Proses Perekaman dengan Debugging Perjalanan Waktu untuk membuat rekaman saat executable diluncurkan.

  4. Pilih Lampirkan untuk mulai merekam.

  5. Dialog perekaman muncul menunjukkan bahwa jejak sedang direkam.

    Cuplikan layar popup perekaman TTD dengan opsi Hentikan dan Debug, dan Batalkan.

  6. Lihat Cara merekam untuk informasi tentang perekaman.

Cara merekam

  1. Proses sedang direkam, jadi di sinilah Anda perlu menyebabkan masalah yang ingin Anda debug. Anda dapat membuka file yang bermasalah atau memilih tombol tertentu di aplikasi untuk menyebabkan peristiwa yang menarik terjadi.

  2. Saat kotak dialog perekaman sedang ditampilkan, Anda dapat:

    • Hentikan dan debugging - Memilih opsi ini akan menghentikan perekaman, membuat file pelacakan, dan membuka file pelacakan agar Anda dapat mulai debugging.
    • Batalkan - Memilih ini akan menghentikan perekaman dan membuat file pelacakan. Anda dapat membuka file pelacakan di lain waktu.
  3. Setelah rekaman selesai, tutup aplikasi Anda atau tekan Hentikan dan debug.

    Nota

    Kedua tindakan, Hentikan dan debug, serta Batalkan, akan mengakhiri proses terkait.

  4. Ketika aplikasi yang direkam berakhir, file jejak akan ditutup dan ditulis ke disk. Ini adalah kasus jika program Anda crash juga.

  5. Ketika file pelacakan dibuka, debugger akan secara otomatis mengindeks file pelacakan. Pengindeksan memungkinkan pencarian nilai memori yang lebih akurat dan lebih cepat. Proses pengindeksan ini akan memakan waktu lebih lama untuk file pelacakan yang lebih besar.

    ...
    00007ffc`61f789d4 c3              ret
    0:000> !index
    Indexed 1/1 keyframes
    Successfully created the index in 96ms.
    

    Nota

    Keyframe adalah lokasi dalam jejak data yang digunakan untuk pengindeksan. Keyframe dihasilkan secara otomatis. Jejak yang lebih besar akan berisi lebih banyak keyframe. Saat jejak diindeks, jumlah keyframe ditampilkan.

  6. Pada titik ini Anda berada di awal berkas jejak dan siap untuk berpindah maju dan mundur dalam waktu.

    Petunjuk / Saran

    Menggunakan titik henti adalah pendekatan umum untuk menjeda eksekusi kode pada beberapa peristiwa yang menarik. Unik untuk TTD, Anda dapat mengatur titik henti lalu kembali ke masa lalu hingga titik henti tersebut dipukul setelah pelacakan direkam. Kemampuan untuk memeriksa status proses setelah masalah terjadi, untuk menentukan lokasi terbaik untuk titik henti, memungkinkan alur kerja penelusuran kesalahan tambahan. Untuk contoh penggunaan titik henti di masa lalu, lihat Penelusuran Kesalahan Perjalanan Waktu - Contoh Panduan Aplikasi.

Langkah Berikutnya

Sekarang setelah Anda merekam jejak TTD, Anda dapat memutar ulang jejak kembali atau bekerja dengan file pelacakan, misalnya membagikannya dengan rekan kerja. Untuk informasi selengkapnya, lihat topik ini.

Debug Perjalanan Waktu - Memutar Ulang Jejak

Time Travel Debugging - Bekerja dengan file jejak

Debugging Perjalanan Waktu - Pemecahan Masalah

Debugging dengan Perjalanan Waktu - Panduan Aplikasi Contoh

Lihat Juga

Penelusuran Kesalahan Perjalanan Waktu - Gambaran Umum