File cadangan mode pengguna

Dalam artikel ini, dapatkan gambaran umum file cadangan mode pengguna dan cara menggunakannya untuk membantu mengatasi bug dan crash.

Untuk informasi tentang menganalisis file cadangan, lihat Menganalisis file cadangan mode pengguna.

Jenis file cadangan mode pengguna

Beberapa jenis file crash dump mode pengguna tersedia. Berbagai jenis file cadangan dibagi menjadi dua kategori:

Anda bisa mendapatkan sejumlah besar informasi dengan menganalisis file cadangan. Namun, tidak ada file cadangan yang dapat memberikan jumlah informasi yang Anda dapatkan dari penelusuran kesalahan dengan menggunakan debugger.

Cadangan mode pengguna penuh

Cadangan mode pengguna penuh adalah file cadangan mode pengguna dasar. File cadangan mode pengguna lengkap meliputi:

  • Seluruh ruang memori proses.
  • Gambar program yang dapat dieksekusi.
  • Tabel handel.
  • Informasi lain yang membantu debugger merekonstruksi memori yang sedang digunakan ketika dump terjadi.

Anda dapat menyusutkan file cadangan mode pengguna penuh ke dalam minidump. Untuk menyusutkan file cadangan mode pengguna lengkap, pertama, muat file cadangan di debugger. Kemudian, gunakan perintah .dump (Create Dump File) untuk menyimpan file cadangan baru dalam format minidump.

Terlepas dari namanya, file minidump terbesar berisi lebih banyak informasi daripada file cadangan mode pengguna lengkap. Misalnya, .dump /mf perintah dan .dump /ma membuat file yang lebih besar dan lebih lengkap daripada .dump /f perintah .

Dalam mode pengguna, .dump /m[MiniOptions] sering kali menjadi pilihan terbaik. File cadangan yang Anda buat dengan menggunakan sakelar ini mungkin bervariasi dalam ukuran dari sangat kecil hingga sangat besar. Dengan menentukan sakelar MiniOptions yang benar, Anda dapat mengontrol dengan tepat informasi apa yang disertakan.

Minidumps

Ukuran dan isi file minidump bervariasi tergantung pada program yang dicadangkan dan aplikasi melakukan pembuangan dan opsi yang dipilih. Terkadang, file minidump cukup besar dan menyertakan memori penuh dan tabel handel. Di lain waktu, file minidump jauh lebih kecil. Misalnya, file minidump mungkin hanya berisi informasi tentang satu utas, atau mungkin hanya berisi informasi tentang modul yang dirujuk dalam tumpukan.

Istilah minidump menyesatkan karena file minidump terbesar berisi lebih banyak informasi daripada file cadangan mode pengguna lengkap. Misalnya, .dump /mf atau .dump /ma membuat file yang lebih besar dan lebih lengkap daripada .dump /f. Untuk alasan ini, kami sarankan Anda menggunakan .dump /m[MiniOptions] alih-alih .dump /f membuat semua file cadangan mode pengguna.

Jika Anda membuat file minidump dengan menggunakan debugger, Anda dapat memilih informasi apa yang akan disertakan. Perintah ini .dump /m mencakup informasi dasar tentang modul yang dimuat yang membentuk proses target, informasi utas, dan informasi tumpukan. Anda bisa mengubah perintah dasar dengan menggunakan salah satu opsi sakelar yang dijelaskan dalam tabel berikut ini:

.dump Pilihan Efek pada file cadangan
/ma Membuat minidump dengan semua penambahan opsional. Opsi /ma ini setara dengan /mfFhut. Ini menambahkan data memori penuh, menangani data, informasi modul yang tidak dimuat, informasi memori dasar, dan informasi waktu utas ke minidump.
/mf Menambahkan data memori penuh ke minidump. Semua halaman berkomitmen yang dapat diakses yang dimiliki oleh aplikasi target disertakan.
/mF Menambahkan semua informasi memori dasar ke minidump. Sakelar ini menambahkan aliran ke minidump yang berisi semua informasi memori dasar, tidak hanya informasi tentang memori yang valid. Debugger menggunakan informasi untuk merekonstruksi tata letak memori virtual lengkap proses ketika minidump sedang di-debug.
/mh Menambahkan data tentang handel yang terkait dengan aplikasi target ke minidump.
/mu Menambahkan informasi modul yang tidak dimuat ke minidump. Opsi ini hanya tersedia di Windows Server 2003 dan versi Windows yang lebih baru.
/mt Menambahkan lebih banyak informasi utas ke minidump. Informasi utas mencakup waktu utas, yang dapat ditampilkan dengan menggunakan .ttime (Waktu Utas Tampilan) saat Anda men-debug minidump.
/mi Menambahkan memori sekunder ke minidump. Memori sekunder adalah memori apa pun yang direferensikan oleh penunjuk pada tumpukan atau penyimpanan cadangan, ditambah wilayah kecil yang mengelilingi alamat ini.
/mp Menambahkan blok lingkungan proses dan data blok lingkungan utas ke minidump. Informasi ini dapat berguna jika Anda memerlukan akses ke informasi sistem Windows mengenai proses dan utas aplikasi.
/mw Menambahkan semua halaman privat baca-tulis yang diterapkan ke minidump.
/md Menambahkan semua segmen data baca-tulis dalam gambar yang dapat dieksekusi ke minidump.
/mc Menambahkan bagian kode dalam gambar.
/mr Menghapus dari bagian minidump dari tumpukan dan menyimpan memori yang tidak digunakan untuk membuat ulang jejak tumpukan. Variabel lokal dan nilai jenis data lainnya juga dihapus. Opsi ini tidak membuat minidump lebih kecil (bagian memori yang tidak digunakan adalah nol), tetapi berguna jika Anda ingin melindungi privasi aplikasi lain.
/mR Menghapus jalur modul lengkap dari minidump. Hanya nama modul yang disertakan. Opsi ini berguna jika Anda ingin melindungi privasi struktur direktori pengguna.

Anda dapat menggabungkan opsi sakelar ini. Misalnya, gunakan perintah .dump /mfiu untuk membuat minidump yang cukup besar yang berisi memori yang tidak dimuat dan sekunder. Gunakan perintah .dump /mrR untuk membuat minidump yang menghapus beberapa informasi pengguna. Untuk detail sintaks lengkap, lihat .dump (Create Dump File).

Alat yang digunakan untuk membuat file cadangan

Ada beberapa alat berbeda yang dapat Anda gunakan untuk membuat file cadangan mode pengguna:

  • ProcDump
  • CDB
  • WinDbg

ProcDump

ProcDump adalah utilitas baris perintah yang dapat Anda gunakan untuk memantau aplikasi untuk lonjakan CPU dan menghasilkan crash dump selama lonjakan. Administrator atau pengembang dapat menggunakan file crash dump untuk menentukan penyebab lonjakan. ProcDump juga mencakup pemantauan untuk jendela yang digantung (dengan menggunakan definisi jendela yang sama menggantung yang digunakan Windows dan Task Manager) dan pengecualian yang tidak tertangani. Anda dapat menggunakan ProcDump untuk menghasilkan cadangan berdasarkan nilai penghitung kinerja sistem. ProcDump juga dapat berfungsi sebagai utilitas dump proses umum yang dapat Anda sematkan di skrip lain.

Untuk informasi tentang membuat file cadangan mode pengguna dengan menggunakan utilitas Sysinternals ProcDump, lihat ProcDump.

CDB dan WinDbg

Console Debugger (CDB) dan Windows Debugger (WinDbg) adalah alat debugging yang disertakan dalam Kit Pengembangan Perangkat Lunak Windows dan Windows Driver Kit. Lihat opsi penginstalan di Unduh dan instal debugger Windows WinDbg.

Anda dapat menggunakan CDB atau WinDbg untuk membuat file cadangan mode pengguna dengan berbagai cara:

  • Buat file cadangan secara otomatis.
  • Buat file cadangan saat Anda melakukan debug.
  • Menyusutkan file cadangan yang ada.

Untuk informasi selengkapnya tentang alat ini, lihat Mulai menggunakan Debugging dan Debug Windows dengan menggunakan CDB.

Membuat file cadangan secara otomatis

Ketika kesalahan aplikasi terjadi, Windows mungkin merespons dengan salah satu dari beberapa cara, tergantung pada pengaturan penelusuran kesalahan postmortem. Jika pengaturan ini menginstruksikan alat penelusuran kesalahan untuk membuat file cadangan, file cadangan memori mode pengguna dibuat. Untuk informasi selengkapnya, lihat Mengaktifkan penelusuran kesalahan postmortem.

Membuat file cadangan saat Anda melakukan penelusuran kesalahan

Saat CDB atau WinDbg men-debug aplikasi mode pengguna, Anda juga dapat menggunakan perintah .dump (Create Dump File) untuk membuat file cadangan.

Perintah ini tidak menyebabkan aplikasi target dihentikan. Dengan memilih opsi perintah tertentu, Anda dapat membuat file minidump yang berisi jumlah informasi yang Anda inginkan.

Menyusutkan file cadangan yang ada

Anda dapat menggunakan CDB atau WinDbg untuk menyusutkan file cadangan. Untuk menyusutkan file cadangan, mulai debugging file cadangan yang ada. Kemudian, gunakan .dump perintah untuk membuat file cadangan dengan ukuran yang lebih kecil.

Penelusuran Kesalahan Perjalanan Waktu

Opsi lain untuk men-debug aplikasi mode pengguna adalah Time Travel Debugging (TTD). TTD adalah alat yang dapat Anda gunakan untuk merekam proses Anda saat berjalan. Anda dapat memutar ulang rekaman sesi debugger untuk menemukan bug. Anda dapat dengan mudah pergi ke berbagai bagian rekaman untuk memahami kondisi yang mengarah ke bug dan cara memperbaiki masalah.

TTD memiliki keuntungan signifikan daripada file crash dump, yang sering kehilangan eksekusi kode yang menyebabkan kegagalan. Kemampuan untuk melakukan perjalanan mundur dalam eksekusi kode, dapat berguna dalam menentukan akar penyebabnya.

Untuk informasi selengkapnya, lihat gambaran umum Penelusuran Kesalahan Perjalanan Waktu.

Langkah berikutnya