Dokumentasi ini membahas pertanyaan umum tentang fitur debugging di Visual Studio. Ini juga memetakan tugas debugging atau isu ke fitur yang relevan di debugger Visual Studio. Tautan ini mencakup tugas atau masalah seperti debugging aplikasi multi-utas, navigasi kode, kebocoran memori, menginspeksi variabel, penggunaan titik henti, debugging kode eksternal, dan banyak lagi. Jika Anda memerlukan gambaran umum fitur debugger, lihat Pertama-tama lihat debugger sebagai gantinya.
Titik Pemberhentian
Bagaimana cara menjeda kode yang sedang berjalan untuk memeriksa baris kode yang mungkin berisi bug?
Atur titik henti. Untuk informasi selengkapnya, lihat Menggunakan jenis titik henti yang tepat dan Mulai menggunakan titik henti.
Bagaimana cara menjeda menjalankan kode berdasarkan kriteria tertentu?
Atur jenis titik henti yang benar. Untuk informasi selengkapnya, lihat Menggunakan jenis titik henti yang tepat.
Bagaimana cara mencatat informasi ke jendela Output dalam kondisi yang dapat dikonfigurasi tanpa memodifikasi atau menghentikan kode saya?
Tracepoints memungkinkan Anda untuk mencatat informasi ke jendela Output dalam kondisi yang dapat dikonfigurasi tanpa memodifikasi atau menghentikan kode Anda. Untuk informasi selengkapnya, lihat Menggunakan titik pelacakan di debugger Visual Studio
Mengelola dan melacak titik henti saya
Gunakan jendela Titik Henti. Untuk informasi selengkapnya, lihat Mengelola titik henti.
Menjeda kode dan debug saat pengecualian tertentu yang ditangani atau tidak tertangani dilemparkan
Meskipun Pembantu Pengecualian menunjukkan tempat kesalahan terjadi, jika Anda ingin menjeda dan men-debug kesalahan tertentu, Anda dapat memberi tahu debugger untuk memutuskan saat pengecualian dilemparkan.
Mengatur titik henti dari tumpukan panggilan
Jika Anda ingin menjeda dan men-debug kode saat memeriksa alur eksekusi atau melihat fungsi di jendela Call Stack, lihat Mengatur titik henti di jendela Call Stack.
Menjeda kode pada instruksi perakitan tertentu
Anda dapat melakukan ini dengan mengatur titik henti dari jendela Pembongkaran.
Menavigasi kode
Bagaimana cara mempelajari perintah untuk menelusuri kode saya saat debugging?
Untuk 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 Sampai Kursor" untuk skenario ini. Anda dapat menyimpan titik henti Anda dan debugger akan mengabaikannya sampai mencapai baris kode dengan kursor. Ini juga akan melewati salah satu pengecualian kesempatan pertama memutus kondisi yang mungkin terjadi. Untuk 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 Anda minati.
Memeriksa dan Memvisualisasikan data
Bagaimana cara memeriksa nilai variabel saat menjalankan aplikasi saya?
Arahkan kursor ke variabel menggunakan petunjuk data
atau memeriksa variabel di jendela Autos dan Locals .Dapatkah saya mengamati perubahan nilai variabel tertentu?
Atur jam tangan pada variabel. Untuk informasi selengkapnya, lihat Memantau variabel.
Bagaimana cara melihat string yang terlalu panjang untuk jendela debugger?
Penampil String menunjukkan string yang terlalu panjang untuk tip data atau jendela debugger. Ini juga dapat membantu Anda mengidentifikasi string cacat.
Visualizer string bawaan di Visual Studio mencakup opsi Teks, XML, HTML, dan JSON.Bagaimana cara melihat objek koleksi besar?
Visualizer DataSet memungkinkan Anda melihat konten DataSet, 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 aplikasi yang berjalan 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?
Bagaimana cara melampirkan ke aplikasi yang sama berulang kali?
Anda dapat menggunakan Sambung Kembali ke Proses (Shift+Alt+P) untuk memulai debugging aplikasi Anda dengan mudah dalam satu klik, tanpa perlu melalui dialog Lampirkan ke Proses setiap saat. Lihat Sambungkan kembali ke proses
Melakukan debug pada aplikasi multithreaded
Bagaimana cara mendebug aplikasi multi-utas? Atau, apakah aplikasi saya dalam keadaan macet?
Lihat jendela Parallel Stacks pemecahan masalah lebih lanjut
Bagaimana cara melihat urutan fungsi mana yang dipanggil?
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 Pilih 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 cuplikan dalam alat memori atau bandingkan dua heap dump menggunakan fungsi diff. Lihat Menganalisis penggunaan memori.
Penelusuran Kesalahan Kode Eksternal
Bisakah saya hanya melihat kode pengguna saat penelusuran kesalahan?
Just My Code adalah fitur debugging Visual Studio yang secara otomatis melewati panggilan ke kode sistem, kerangka kerja, dan kode non-pengguna lainnya. Di jendela Call Stack, Just My Code menggabungkan panggilan ini ke dalam frame [External Code]. Lihat Pemecahan masalah hanya untuk kode pengguna dengan Just My Code
Bagaimana cara melihat atau men-debug instruksi perakitan mentah yang dijalankan program saya?
Gunakan Jendela Pembongkaran dari Debug > Windows > Disassembly. 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 Opsi > Debug > Simbol untuk mengunduh simbol dan sumber untuk Pustaka .NET. Lihat Tentukan simbol
Bagaimana cara memuat PDB dari lokasi atau server tertentu atau bersama?
Konfigurasikan Server Simbol Anda dari Opsi > Debug > Simbol. Lihat Spesifikasikan simbol
Bagaimana cara mencegah memuat PDB tertentu secara permanen? Atau, bagaimana saya bisa selalu memuatkan satu?
Konfigurasikan Daftar Sertakan dan Kecualikan di Debug > Opsi > Simbol.
Lihat Tentukan simbol
Mengonfigurasi penelusuran kesalahan
Bagaimana cara mengonfigurasi pengaturan debugger?
Untuk mengonfigurasi opsi debugger dan pengaturan proyek debugger, lihat pengaturan debugger dan persiapan.
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 yang lebih canggih, 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 Dump Sebagai. Lihat File Dump
Bagaimana cara menganalisis file cadangan?
Buka cadangan dengan memilih File > Buka di Visual Studio. Untuk memulai penelusuran kesalahan, pilih Debug dengan Terkelola Saja, Debug dengan Asli Saja, Debug dengan Campuran, atau Debug dengan Memori Terkelola. Lihat File Dump
Bisakah saya mengedit kode selama sesi debugging?
Gunakan Hot Reload, yang sebelumnya disebut Edit dan Lanjutkan. Untuk XAML, gunakan XAML Hot Reload.
Bagaimana cara men-debug pada komputer jarak jauh?
Lihat debug jarak jauh.
Bagaimana cara memperbaiki masalah performa?
Bagaimana cara memperbaiki pengecualian?
Lihat Memperbaiki pengecualian.