Bagikan melalui


Pelajari tips dan trik produktivitas untuk debugger di Visual Studio

Baca topik ini untuk mempelajari beberapa tips dan trik produktivitas untuk debugger Visual Studio. Untuk melihat fitur dasar debugger, lihat Tampilan awal di debugger. Dalam topik ini, kami membahas beberapa area yang tidak termasuk dalam tur fitur.

Pintasan keyboard

Untuk daftar pintasan keyboard yang paling umum terkait dengan penelusuran kesalahan, lihat bagian Debug di Pintasan keyboard.

Menyematkan tips data

Jika Anda sering mengarahkan mouse ke atas tips data saat penelusuran kesalahan, Anda mungkin ingin menyematkan tip data agar variabel memberi diri Anda akses cepat. Variabel tetap disematkan bahkan setelah menghidupkan ulang. Untuk menyematkan tip data, klik ikon sematkan sambil mengarahkan mouse ke atasnya. Anda dapat menyematkan beberapa variabel.

Menyematkan Tip Data

Anda juga dapat menyesuaikan tips data dengan beberapa cara lain, seperti menjaga tip data diperluas ( tip data lengket), atau membuat tip data transparan. Untuk informasi selengkapnya, lihat Menampilkan nilai data di DataTips di editor kode.

Edit kode Anda dan lanjutkan penelusuran kesalahan (C#, VB, C++)

Di sebagian besar bahasa komputer yang didukung oleh Visual Studio, Anda dapat mengedit kode Anda di tengah sesi penelusuran kesalahan dan melanjutkan penelusuran kesalahan. Untuk menggunakan fitur ini, klik kode Anda dengan kursor saat berhenti di debugger, edit, dan tekan F5, F10, atau F11 untuk melanjutkan penelusuran kesalahan.

Mengedit dan melanjutkan penelusuran kesalahan

Untuk informasi selengkapnya tentang menggunakan fitur dan batasan fitur, lihat Mengedit dan Melanjutkan.

Edit kode XAML dan lanjutkan penelusuran kesalahan

Untuk memodifikasi kode XAML selama sesi penelusuran kesalahan, lihat Menulis dan men-debug kode XAML yang sedang berjalan dengan XAML Hot Reload.

Men-debug masalah yang sulit direprodusi

Jika sulit atau memakan waktu untuk membuat ulang status tertentu di aplikasi Anda, pertimbangkan apakah penggunaan titik henti kondisional dapat membantu. Anda dapat menggunakan titik henti kondisional dan titik henti filter untuk menghindari pembobolan kode aplikasi hingga aplikasi memasuki status yang diinginkan (seperti status di mana variabel menyimpan data yang buruk). Anda dapat mengatur kondisi menggunakan ekspresi, filter, jumlah hit, dan sebagainya.

Untuk membuat titik henti kondisional

  1. Klik kanan ikon titik henti (bola merah) dan pilih Kondisi.

  2. Di jendela Titik Henti Pengaturan, ketik ekspresi.

    Titik Henti Bersyar

  3. Jika Anda tertarik dengan jenis kondisi lain, pilih Filter alih-alih Ungkapan bersyarat dalam kotak dialog Pengaturan Titik Henti, lalu ikuti tips filter.

Mengonfigurasi data untuk ditampilkan di debugger

Untuk C#, Visual Basic, dan C++ (hanya kode C++/CLI), Anda dapat memberi tahu debugger informasi apa yang akan ditampilkan menggunakan atribut DebuggerDisplay. Untuk kode C++, Anda dapat melakukan hal yang sama menggunakan visualisasi Natvis.

Melampirkan ke aplikasi yang sama berulang kali

Saat Anda menggunakan fitur lampirkan untuk memproses, Anda dapat dengan cepat memasang kembali ke proses yang sebelumnya Anda lampirkan dengan memilih Debug>Pasang Ulang ke Proses (Shift+Alt+P). Ketika Anda memilih perintah ini, debugger akan segera mencoba melampirkan ke proses terakhir yang Anda lampirkan dengan terlebih dahulu mencoba mencocokkan ID proses sebelumnya dan jika itu gagal, dengan mencocokkan dengan nama proses sebelumnya. Jika tidak ada kecocokan yang ditemukan, atau jika beberapa proses memiliki nama yang sama, kotak dialog Lampirkan ke Proses akan terbuka sehingga Anda dapat memilih proses yang benar.

Melacak objek di luar cakupan (C#, Visual Basic)

Sangat mudah untuk melihat variabel menggunakan jendela debugger seperti jendela Watch. Namun, ketika variabel keluar dari cakupan di jendela Watch, Anda mungkin melihat bahwa variabel berwarna abu-abu. Dalam beberapa skenario aplikasi, nilai variabel dapat berubah bahkan ketika variabel berada di luar cakupan, dan Anda mungkin ingin melihatnya dengan cermat (misalnya, variabel mungkin mengumpulkan sampah). Anda dapat melacak variabel dengan membuat ID Objek untuk variabel tersebut di jendela Watch.

Untuk membuat ID objek

  1. Atur titik henti di dekat variabel yang ingin Anda lacak.

  2. Mulai debugger (F5) dan berhenti di titik henti.

  3. Temukan variabel di jendela Locals (Debug > Windows > Locals), klik kanan variabel, dan pilih Buat ID Objek.

    Membuat ID Objek

  4. Anda akan melihat $ angka plus di jendela Locals. Variabel ini adalah ID objek.

  5. Klik kanan variabel ID objek dan pilih Add Watch.

Untuk informasi selengkapnya, lihat Membuat ID Objek.

Melihat nilai yang dikembalikan untuk fungsi

Untuk melihat nilai pengembalian untuk fungsi Anda, lihat fungsi yang muncul di jendela Autos saat Anda menelusuri kode Anda. Untuk melihat nilai pengembalian untuk fungsi, pastikan bahwa fungsi yang Anda minati telah dijalankan (tekan F10 sekali jika Anda saat ini dihentikan pada panggilan fungsi). Jika jendela ditutup, gunakan Debug > Windows > Autos untuk membuka jendela Autos.

Jendela Otomatis

Selain itu, Anda dapat memasukkan fungsi di jendela Immediate untuk melihat nilai yang dikembalikan. (Buka menggunakan Debug > Windows > Immediate.)

Jendela Langsung

Anda juga dapat menggunakan pseudovariables di jendela Watch dan Immediate, seperti $ReturnValue.

Memeriksa string di visualizer

Saat bekerja dengan string, akan sangat membantu untuk melihat seluruh string yang diformat. Untuk melihat teks biasa, string XML, HTML, atau JSON, klik ikon VisualizerIcon kaca pembesar sambil mengarahkan kubah ke variabel yang berisi nilai string.

Membuka Visualizer String

Visualizer string dapat membantu Anda mengetahui apakah string salah bentuk, tergantung pada jenis string. Misalnya, bidang Value kosong menunjukkan string tidak dikenali oleh jenis visualizer. Untuk informasi selengkapnya, lihat Kotak Dialog Visualizer String.

JSON String Visualizer

Untuk beberapa jenis lain seperti objek DataSet dan DataTable yang muncul di jendela debugger, Anda juga dapat membuka visualizer bawaan.

Menganalisis penggunaan memori

Anda dapat mengambil dan membandingkan rekam jepret dari timbunan, mengoptimalkan penggunaan memori, dan menemukan kebocoran memori menggunakan alat penggunaan memori. Untuk informasi selengkapnya, lihat Memilih alat analisis memori.

Buat file cadangan

File cadangan adalah rekam jepret yang menunjukkan proses yang dijalankan dan modul yang dimuat untuk aplikasi pada titik waktu tertentu. Cadangan dengan informasi timbunan juga menyertakan rekam jepret memori aplikasi pada saat itu. Cadangan sebagian besar digunakan untuk men-debug masalah dari komputer yang tidak dapat diakses pengembang.

Jika Anda perlu menyimpan file cadangan, pilih Debug > Simpan Cadangan Sebagai.

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

Untuk informasi selengkapnya, lihat File cadangan.

Memecah kode pada pengecualian yang ditangani

Debugger memecah kode Anda pada pengecualian yang tidak tertangani. Namun, pengecualian yang ditangani (seperti pengecualian yang terjadi dalam try/catch blok) juga dapat menjadi sumber bug dan Anda mungkin ingin menyelidiki kapan mereka terjadi. Anda dapat mengonfigurasi debugger untuk memecah kode untuk pengecualian yang ditangani juga dengan mengonfigurasi opsi dalam kotak dialog Exception Settings. Buka kotak dialog ini dengan memilih Debug > Windows > Exception Settings.

Kotak dialog Exception Settings memungkinkan Anda memberi tahu debugger untuk memecah kode pada pengecualian tertentu. Dalam ilustrasi di bawah ini, debugger memecah ke dalam kode Anda setiap kali System.NullReferenceException terjadi. Untuk informasi selengkapnya, lihat Managing exceptions.

Kotak Dialog Pengaturan Pengecualian

Mengubah alur eksekusi

Dengan debugger dijeda pada baris kode, gunakan mouse untuk mengambil penunjuk panah kuning di sebelah kiri. Pindahkan penunjuk panah kuning ke titik yang berbeda di jalur eksekusi kode. Kemudian Anda menggunakan F5 atau perintah langkah untuk terus menjalankan aplikasi.

Memindahkan Penunjuk Eksekusi

Dengan mengubah alur eksekusi, Anda dapat melakukan hal-hal seperti menguji jalur eksekusi kode yang berbeda atau menjalankan kembali kode tanpa menghidupkan ulang debugger. Untuk informasi selengkapnya, lihat Memindahkan penunjuk eksekusi.

Peringatan

Sering kali Anda perlu berhati-hati dengan fitur ini, dan Anda melihat peringatan di tooltip. Anda mungkin juga melihat peringatan lain. Memindahkan penunjuk tidak dapat mengembalikan aplikasi Anda ke status aplikasi sebelumnya.

Men-debug kebuntuan dan kondisi balapan

Jika Anda perlu men-debug jenis masalah yang umum terjadi pada aplikasi multi-utas, melihat lokasi utas saat penelusuran kesalahan sering kali membantu. Anda dapat melakukan ini dengan mudah menggunakan tombol Tampilkan Utas di Sumber.

Untuk menampilkan utas dalam kode sumber Anda:

  1. Saat menelusuri kesalahan, klik tombol Perlihatkan Utas di Sumber Perlihatkan Utas di Sumber di toolbar Debug.

  2. Lihatlah gutter di sisi kiri jendela. Pada baris ini, Anda akan melihat ikon Penanda Utas penanda utas yang menyerupan dua utas kain. Penanda utas tersebut menunjukkan bahwa utas berhenti di lokasi ini.

    Perhatikan bahwa penanda utas mungkin disembunyikan sebagian oleh titik henti.

  3. Arahkan kursor ke penanda utas. DataTip muncul. DataTip memberi tahu Anda nama dan nomor ID utas untuk setiap utas yang dihentikan.

    Anda juga dapat melihat lokasi utas di jendela Parallel Stacks.

Lebih akrab dengan bagaimana debugger terpasang ke aplikasi Anda (C#, C++, Visual Basic, F#)

Untuk melampirkan ke aplikasi yang sedang berjalan, debugger memuat file simbol (.pdb) yang dihasilkan untuk membangun aplikasi yang sama persis dengan yang anda coba debug. Dalam beberapa skenario, sedikit pengetahuan tentang file simbol dapat membantu. Anda dapat memeriksa bagaimana Visual Studio memuat file simbol menggunakan jendela Modul.

Buka jendela Modul saat menelusuri kesalahan dengan memilih Debug > Windows > Modul. Jendela Modul dapat memberi tahu Anda modul apa yang diperlakukan debugger sebagai kode pengguna, atau Kode Saya, dan status pemuatan simbol untuk modul. Dalam sebagian besar skenario, debugger secara otomatis menemukan file simbol untuk kode pengguna, tetapi jika Anda ingin melangkah ke (atau men-debug) kode .NET, kode sistem, atau kode pustaka pihak ketiga, langkah tambahan diperlukan untuk mendapatkan file simbol yang benar.

Melihat informasi simbol di jendela Modul

Anda dapat memuat informasi simbol langsung dari jendela Modul dengan mengklik kanan dan memilih Muat Simbol.

Terkadang, pengembang aplikasi mengirim aplikasi tanpa file simbol yang cocok (untuk mengurangi jejak), tetapi menyimpan salinan file simbol yang cocok untuk build sehingga mereka dapat men-debug versi yang dirilis nanti.

Untuk mengetahui bagaimana debugger mengklasifikasikan kode sebagai kode pengguna, lihat Hanya Kode Saya. Untuk mengetahui selengkapnya tentang file simbol, lihat Menentukan simbol (.pdb) dan file sumber di debugger Visual Studio.

Pelajari lebih lanjut

Untuk tips dan trik tambahan dan informasi yang lebih rinci, lihat posting blog ini:

Pintasan Papan Ketik