FAQ - Pencari fitur debugger

Dokumentasi ini membahas pertanyaan umum tentang fitur penelusuran kesalahan di Visual Studio. Ini juga memetakan tugas penelusuran kesalahan atau masalah ke fitur yang relevan di debugger Visual Studio. Tautan ini mencakup tugas atau masalah seperti men-debug aplikasi multi-utas, navigasi kode, kebocoran memori, memeriksa variabel, menggunakan titik henti, penelusuran kesalahan kode eksternal, dan banyak lagi. Jika Anda memerlukan gambaran umum fitur debugger, lihat Tampilan pertama di debugger sebagai gantinya.

Titik Henti

  • Bagaimana cara menjeda menjalankan kode untuk memeriksa baris kode yang mungkin berisi bug?

    Atur titik henti. Untuk mengetahui informasi selengkapnya, lihat Menggunakan titik henti.

  • Apakah variabel saya memiliki nilai yang tidak terduga. Atau, apakah saya ingin memeriksa aplikasi saya saat mencapai status tertentu?

    Coba titik henti kondisional untuk mengontrol tempat dan waktu titik henti diaktifkan dengan menggunakan logika kondisional. Klik kanan pada titik henti untuk menambahkan kondisi. Atur kondisi menjadi benar ketika variabel sama dengan nilai yang tidak terduga.

    Untuk mengetahui informasi selengkapnya, lihat Kondisi titik henti.

  • Bagaimana cara mencatat informasi ke jendela Output dalam kondisi yang dapat dikonfigurasi tanpa memodifikasi atau menghentikan kode saya?

    Titik pelacakan memungkinkan Anda untuk mencatat informasi ke jendela Output dalam kondisi yang dapat dikonfigurasi tanpa mengubah atau menghentikan kode Anda.

  • Bagaimana cara mengetahui kapan nilai variabel saya berubah?

    Untuk C++, atur titik henti data.

    Untuk aplikasi yang menggunakan .NET Core 3, Anda juga dapat mengatur titik henti data.

    Jika tidak, untuk C# dan F# saja, Anda dapat melacak ID objek dengan titik henti kondisional.

  • Bagaimana cara memutuskan eksekusi hanya jika titik henti lain tertembak?

    Atur Titik Henti Dependen yang memutus eksekusi hanya jika titik henti lain pertama kali ditemui. Untuk informasi selengkapnya, lihat Titik Henti Dependen.

  • Bisakah saya mencapai titik henti hanya sekali?

    Atur titik henti sementara yang memungkinkan Anda memecahkan kode hanya sekali. Untuk informasi selengkapnya, lihat Titik Henti Sementara.

  • Dapatkah saya menjeda kode di dalam perulangan pada iterasi tertentu?

    Atur titik henti Dependen yang memutus eksekusi hanya jika titik henti lain pertama kali ditemui. Untuk mengetahui informasi selengkapnya, lihat EDMX.

  • Bagaimana cara menjeda kode di awal fungsi saat saya mengetahui nama fungsi tetapi bukan lokasinya?

    Anda dapat melakukan ini dengan titik henti fungsi. Untuk mengetahui informasi selengkapnya, lihat Mengatur titik henti fungsi.

  • Bagaimana cara menjeda kode di awal beberapa fungsi dengan nama yang sama?

    Saat Anda memiliki beberapa fungsi dengan nama yang sama (fungsi atau fungsi yang kelebihan beban dalam proyek yang berbeda), Anda dapat menggunakan titik henti fungsi.

  • Mengelola dan melacak titik henti saya

    Gunakan jendela Titik Henti. Untuk mengetahui informasi selengkapnya, lihat Mengelola titik henti.

  • Menjeda kode dan mendebug saat pengecualian tertentu yang ditangani atau tidak tertangani dibuat

    Meskipun Pembantu Pengecualian menunjukkan tempat kesalahan terjadi, jika ingin menjeda dan mendebug kesalahan tertentu, Anda dapat memberi tahu debugger untuk memutuskan saat pengecualian dibuat.

  • Mengatur titik henti dari tumpukan panggilan

    Jika Anda ingin menjeda dan mendebug kode saat memeriksa alur eksekusi atau melihat fungsi di jendela Tumpukan Panggilan, lihat Mengatur titik henti di jendela Tumpukan Panggilan.

  • Menjeda kode pada instruksi rakitan tertentu

    Anda dapat melakukan ini dengan mengatur titik henti dari jendela Disassembly.

Menavigasi kode

  • Bagaimana cara mempelajari perintah untuk menelusuri kode saya saat menelusuri kesalahan?

    Untuk mengetahui informasi selengkapnya, lihat Menavigasi kode dengan debugger.

  • Dapatkah saya menjalankan kode ke baris tertentu saat melewati titik henti tanpa menghapus atau menonaktifkannya?

    Anda dapat menggunakan "Paksa Jalankan Ke Kursor" untuk skenario ini. Anda dapat menyimpan titik henti Anda dan debugger akan melewatinya sampai mencapai baris kode dengan kursor. Ini juga akan melewati salah satu pengecualian kesempatan pertama memutus kondisi yang mungkin terjadi. Untuk mengetahui informasi selengkapnya, lihat Menavigasi kode dengan debugger.

  • Jika baris kode saya memiliki panggilan ke metode yang berbeda, dapatkah saya masuk ke metode tertentu?

    Klik kanan pada baris kode untuk memunculkan menu konteks yang memungkinkan Anda memilih 'Langkah Ke Spesifik'. Ini akan menampilkan daftar semua metode yang dapat Anda masuki. Anda sekarang dapat memilih metode yang menarik.

Memeriksa dan Memvisualisasikan data

  • Bagaimana cara memeriksa nilai variabel saat menjalankan aplikasi saya?

    Arahkan mouse ke atas variabel menggunakan tips data atau periksa variabel di jendela Otomatis dan Lokal.

  • Dapatkah saya mengamati nilai yang berubah dari variabel tertentu?

    Atur jam tangan pada variabel. Untuk mengetahui informasi selengkapnya, lihat Mengatur jam tangan pada variabel.

  • Bagaimana cara melihat string yang terlalu panjang untuk jendela debugger?

    String Visualizer menunjukkan string yang terlalu panjang untuk tip data atau jendela debugger. Ini juga dapat membantu Anda mengidentifikasi string yang cacat.
    Visualizer string bawaan di Visual Studio mencakup opsi Teks, XML, HTML, dan JSON.

  • Bagaimana cara melihat objek koleksi besar?

    Visualizer Himpunan Data memungkinkan Anda melihat konten Himpunan Data, DataTable, DataView, atau DataViewManager. IEnumerable Visualizer memungkinkan Anda melihat objek seperti Array, Daftar, dll. Untuk informasi selengkapnya, lihat Visualizer tabular.

Men-debug aplikasi yang sudah berjalan

  • Bagaimana cara men-debug menjalankan aplikasi di komputer lokal atau jarak jauh, men-debug beberapa proses secara bersamaan, men-debug aplikasi yang tidak dibuat di Visual Studio, atau men-debug aplikasi apa pun yang tidak saya mulai dari Visual Studio?

    Lihat Melampirkan ke proses yang sedang berjalan.

  • Bagaimana cara melampirkan ke aplikasi yang sama berulang kali?

    Anda dapat menggunakan Pasang Ulang ke Proses (Shift+Alt+P) untuk dengan mudah memungkinkan Anda mulai men-debug aplikasi Anda dalam satu klik tanpa perlu melalui dialog Lampirkan ke Proses setiap saat. Lihat Memasang kembali ke proses

Men-debug aplikasi multithread

Menganalisis memori

  • Apakah aplikasi saya memiliki kebocoran memori?

    Ambil rekam jepret dan buka dengan alat memori untuk memecahkan masalah lebih lanjut. Lihat Mengukur penggunaan memori.

  • Bagaimana cara menganalisis penggunaan memori untuk aplikasi asli atau terkelola?

    Gunakan alat memori Visual Studio melalui penelusuran kesalahan langsung, heap dump, atau profiler performa.
    Lihat Memilih alat analisis memori.

  • Bagaimana cara menganalisis penggunaan memori untuk aplikasi asli atau terkelola tanpa melampirkan debugger? Gunakan profiler performa Visual Studio dengan alat penggunaan memori diaktifkan.
    Lihat Menganalisis penggunaan memori.

  • Dapatkah saya membandingkan penggunaan memori antara dua titik waktu?

    Bandingkan rekam jepret dalam alat memori atau bandingkan dua heap dump menggunakan fungsionalitas diff. Lihat Menganalisis penggunaan memori.

Penelusuran Kesalahan Kode Eksternal

  • Dapatkah saya hanya melihat kode pengguna saat menelusuri kesalahan?

    Just My Code adalah fitur penelusuran kesalahan Visual Studio yang secara otomatis melakukan langkah-langkah panggilan ke sistem, kerangka kerja, dan kode non-pengguna lainnya. Di jendela Tumpukan Panggilan, Just My Code menciutkan panggilan ini ke dalam bingkai [Kode Eksternal]. Lihat Debug hanya kode pengguna dengan Just My Code

  • Bagaimana cara melihat atau men-debug instruksi perakitan mentah yang dijalankan program saya?

    Gunakan Jendela Pembongkaran dari Pembongkaran Windows > Debug>. Anda dapat melangkahi satu instruksi pada satu waktu dan bahkan mengatur titik henti pada instruksi perakitan individual.

  • Dapatkah saya melihat kode sumber untuk Pustaka .NET?

    Aktifkan Server Simbol Microsoft dari Simbol Opsi > Debug > untuk mengunduh simbol dan sumber untuk Pustaka .NET. Lihat Menentukan simbol

  • Bagaimana cara memuat PDB dari lokasi atau server tertentu atau bersama?

    Konfigurasikan Server Simbol Anda dari Simbol Opsi > Debug>. Lihat Menentukan simbol

  • Bagaimana cara tidak pernah memuat PDB tertentu? Atau, bagaimana saya bisa selalu memuat satu?

    Konfigurasikan Sertakan dan Kecualikan Daftar Anda di Simbol Opsi > Debug>.
    Lihat Menentukan simbol

Mengonfigurasi penelusuran kesalahan

  • Bagaimana cara mengonfigurasi pengaturan debugger?

    Untuk mengonfigurasi opsi debugger dan pengaturan proyek debugger, lihat Pengaturan dan persiapan debugger.

  • Bagaimana cara menyesuaikan informasi yang ditampilkan di debugger?

    Anda mungkin ingin menampilkan informasi selain jenis objek sebagai nilai di jendela debugger yang berbeda. Untuk kode C#, Visual Basic, F#, dan C++/CLI, gunakan atribut DebuggerDisplay. Untuk opsi tingkat lanjut lainnya, Anda juga dapat menyesuaikan UI dengan membuat visualizer kustom. Untuk C++asli, gunakan Kerangka kerja NatVis.

Tugas tambahan

  • Apakah saya perlu menyimpan cadangan?

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

  • Bagaimana cara menganalisis file cadangan?

    Buka cadangan dengan memilih Buka File > di Visual Studio. Untuk memulai penelusuran kesalahan, pilih Debug dengan Hanya Terkelola, Debug dengan Hanya Asli, Debug dengan Campuran, atau Debug dengan Memori Terkelola. Lihat File cadangan

  • Dapatkah saya mengedit kode selama sesi penelusuran kesalahan?

    Gunakan Edit dan lanjutkan. Untuk XAML, gunakan XAML Hot Reload.

  • Bagaimana cara men-debug pada komputer jarak jauh?

    Lihat Penelusuran kesalahan jarak jauh.

  • Bagaimana cara memperbaiki masalah performa?

    Lihat Tampilan pertama alat pembuatan profil

  • Bagaimana cara memperbaiki pengecualian?

    Lihat Memperbaiki pengecualian.