Bagikan melalui


File cadangan di debugger Visual Studio

File cadangan adalah rekam jepret yang menunjukkan proses yang dijalankan dan modul yang dimuat untuk aplikasi pada titik waktu tertentu. Pengumpulan data dengan informasi timbunan juga menyertakan cuplikan memori aplikasi pada waktu tersebut.

Membuka file dump dengan heap di Visual Studio adalah mirip dengan berhenti pada titik henti dalam sesi debug. Meskipun Anda tidak dapat melanjutkan eksekusi, Anda dapat memeriksa tumpukan, utas, dan nilai variabel aplikasi ketika terjadi dump.

Dump memori sebagian besar digunakan untuk melakukan debug masalah dari mesin yang tidak dapat diakses pengembang. Anda dapat menggunakan file cadangan dari komputer pelanggan ketika Anda tidak dapat mereproduksi crash atau program yang tidak responsif di komputer Anda sendiri. Penguji juga membuat cadangan untuk menyimpan crash atau data program yang tidak responsif untuk digunakan untuk pengujian lebih lanjut.

Debugger Visual Studio dapat menyimpan file cadangan untuk kode terkelola atau asli. Ini dapat men-debug file cadangan yang dibuat oleh Visual Studio atau oleh aplikasi lain yang menyimpan file dalam format minidump .

Persyaratan dan batasan

  • Untuk men-debug file cadangan dari komputer 64-bit, Visual Studio harus berjalan pada komputer 64-bit.
  • Visual Studio dapat men-debug file cadangan aplikasi terkelola dari OS Linux.
  • Visual Studio dapat men-debug file cadangan aplikasi asli dari perangkat ARM. Ini juga dapat men-debug cadangan aplikasi terkelola dari perangkat ARM, tetapi hanya di debugger asli.
  • Untuk men-debug berkas dump mode kernel atau menggunakan ekstensi penelusuran kesalahanSOS.dll di Visual Studio, unduh alat penelusuran kesalahan untuk Windows di Windows Driver Kit (WDK).
  • Visual Studio tidak dapat melakukan debugging file dump yang disimpan dalam format dump mode pengguna penuh yang lebih lama. Cadangan mode pengguna penuh tidak sama dengan cadangan dengan timbunan.
  • Men-debug file cadangan kode yang dioptimalkan dapat membingungkan. Misalnya, compiler inlining fungsi dapat mengakibatkan tumpukan panggilan yang tidak terduga, dan pengoptimalan lainnya dapat mengubah masa pakai variabel.

File cadangan dengan atau tanpa timbunan

File cadangan mungkin memiliki informasi timbunan.

  • File cadangan dengan tumpukan berisi rekam jepret memori aplikasi, termasuk nilai variabel, pada saat pencadangan. Visual Studio juga menyimpan biner dari modul asli yang dimuat dalam file dump dengan heap, yang dapat mempermudah debugging. Visual Studio dapat memuat simbol dari file dump dengan heap, meskipun tidak dapat menemukan file biner aplikasi.

  • File dump tanpa heap lebih kecil daripada file dump dengan heap, tetapi debugger harus memuat biner dari aplikasi untuk menemukan informasi simbol. Biner yang dimuat harus sama persis dengan biner yang berjalan selama pembuatan dump. File dump tanpa heap hanya mengamankan nilai-nilai variabel tumpukan saja.

Membuat file cadangan

Saat men-debug proses di Visual Studio, Anda dapat menyimpan file cadangan saat debugger berhenti pada pengecualian atau titik henti.

Dengan In-Time Debugging diaktifkan, Anda dapat menghubungkan debugger Visual Studio ke proses yang sedang crash di luar Visual Studio, lalu menyimpan file dump dari debugger. Lihat Melampirkan ke proses yang sedang berjalan.

Untuk menyimpan file cadangan:

  1. Saat berhenti pada kesalahan atau titik henti selama penelusuran kesalahan, pilih Debug>Simpan Cadangan Sebagai.

  2. Dalam dialog Simpan Dump Sebagai, di bawah Simpan sebagai tipe, pilih Minidump atau Minidump dengan Heap (bawaan).

  3. Telusuri ke jalur dan pilih nama untuk file cadangan, lalu pilih Simpan.

Nota

Anda dapat membuat file cadangan dengan program apa pun yang mendukung format minidump Windows. Misalnya, utilitas baris perintah Procdump dari Windows Sysinternals dapat membuat file crash dump proses berdasarkan pemicu atau sesuai permintaan. Lihat Persyaratan dan batasan untuk informasi tentang menggunakan alat lain untuk membuat file cadangan.

Buka file cadangan

  1. Di Visual Studio, pilih File>Buka>File.

  2. Dalam dialog Buka File , temukan dan pilih file cadangan. Biasanya akan memiliki ekstensi .dmp . Pilih OK.

    Jendela Ringkasan File Minidump menampilkan ringkasan dan informasi modul untuk file cadangan, dan tindakan yang dapat Anda ambil.

    Cuplikan layar memperlihatkan halaman ringkasan Minidump.

  3. Di bawah Tindakan:

Temukan file .exe, .pdb, dan sumber

Untuk menggunakan fitur debugging lengkap pada file dump, Visual Studio memerlukan:

  • File .exe tempat dimana dump dibuat, dan biner lainnya (seperti DLL) yang digunakan oleh proses dump.
  • File simbol (.pdb) untuk .exe dan biner lainnya.
  • File .exe dan .pdb yang persis cocok dengan versi dan build file pada saat pembuatan dump.
  • File sumber untuk modul yang relevan. Anda dapat menggunakan pembongkaran modul jika Anda tidak dapat menemukan file sumber.

Jika file dump memiliki data heap, Visual Studio dapat mengatasi biner hilang untuk beberapa modul, tetapi harus memiliki biner untuk cukup modul agar dapat menghasilkan stack panggilan yang valid.

Jalur pencarian untuk file .exe

Visual Studio secara otomatis mencari lokasi berikut untuk file.exe yang tidak disertakan dalam file cadangan:

  • Folder yang berisi file cadangan.

  • Jalur modul yang ditentukan oleh file dump, yang merupakan jalur modul pada komputer yang mengumpulkan dump tersebut.

  • Jalur simbol ditentukan di panel OpsiAlat (atau >), di bawah bagian Semua Pengaturan>Simbol>. Anda juga dapat membuka halaman Simbol dari panel Tindakan dari jendela Ringkasan File Cadangan . Pada halaman ini, Anda dapat menambahkan lebih banyak lokasi untuk dicari.
  • Jalur simbol ditentukan dalam dialog OpsiAlat (atau >), di bawah bagianSimbol>. Anda juga dapat membuka halaman Simbol dari panel Tindakan dari jendela Ringkasan File Cadangan . Pada halaman ini, Anda dapat menambahkan lebih banyak lokasi untuk dicari.

Gunakan halaman Tanpa Biner, Tanpa Simbol, atau Tidak Ada Sumber yang Ditemukan

Jika Visual Studio tidak dapat menemukan file yang diperlukan untuk men-debug modul di cadangan, itu menunjukkan halaman Tidak Ditemukan Biner, Tidak Ada Simbol Ditemukan, atau Tidak Ada Sumber Yang Ditemukan . Halaman ini memberikan informasi terperinci tentang penyebab masalah, dan menyediakan tautan tindakan yang dapat membantu Anda menemukan file. Lihat Tentukan simbol (.pdb) dan file sumber.