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 Pertama-tama lihat debugger. Dalam topik ini, kami membahas beberapa area yang tidak termasuk dalam tur fitur.

Jalan pintas papan ketik

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

Menyematkan tips data

Jika Anda sering memeriksa tips data saat debugging, Anda mungkin ingin menyematkan tips data untuk variabel agar Anda dapat mengaksesnya dengan cepat. Variabel tetap tertaut bahkan setelah dihidupkan ulang. Untuk menyematkan tip data, klik ikon sematkan saat mengarahkan mouse ke atasnya. Anda dapat menyematkan beberapa variabel.

Menyematkan Tip Data

Anda juga dapat menyesuaikan tips data dalam beberapa cara lainnya, seperti mempertahankan tips data yang diperluas (tip data lengket), atau membuat tips data menjadi transparan. Untuk informasi selengkapnya, lihat Menampilkan nilai data di Tips Data di editor kode.

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

Dalam sebagian besar bahasa yang didukung oleh Visual Studio, Anda dapat mengedit kode di tengah sesi debugging dan melanjutkannya. Untuk menggunakan fitur ini, klik kode Anda dengan kursor saat dijeda di debugger, lakukan pengeditan, dan tekan F5, F10, atau F11 untuk melanjutkan debugging.

Edit dan lanjutkan debugging

Untuk informasi selengkapnya tentang menggunakan fitur dan batasan fitur, lihat Edit dan Lanjutkan.

Edit kode XAML dan lanjutkan debag

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

Masalah debug 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 bersyariah 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 dengan menggunakan ekspresi, filter, penghitungan hit, dan sebagainya.

Untuk membuat titik henti kondisional

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

  2. Di jendela Pengaturan Titik Henti , ketik ekspresi.

    Penanda Kondisional

  3. Jika Anda tertarik dengan jenis kondisi lain, pilih Filter alih-alih Ekspresi bersyarat dalam kotak dialog Pengaturan Titik Henti, lalu ikuti petunjuk 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 ke proses, Anda dapat dengan cepat menghubungkan kembali ke proses yang sebelumnya Anda hubungkan dengan memilih Debug>Hubungkan 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 Lokal (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 Tambahkan Watch.

Untuk informasi selengkapnya, lihat Membuat ID Objek.

Menampilkan nilai pengembalian untuk fungsi

Untuk melihat nilai pengembalian untuk fungsi Anda, lihat fungsi yang muncul di jendela Otomatis 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 Otomatis .

Jendela Otomatis

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

Jendela Segera

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

Memeriksa teks dalam 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 kaca pembesar VisualizerIcon sambil mengarahkan mouse ke atas variabel yang berisi nilai string.

Membuka String Visualizer

Visualizer string dapat membantu Anda menemukan apakah sebuah string bermasalah, tergantung pada jenis string tersebut. Misalnya, bidang Nilai kosong menunjukkan string tidak dikenali oleh jenis visualizer. Untuk informasi selengkapnya, lihat Kotak Dialog Penvisualisasi String.

JSON String Visualizer

Untuk beberapa jenis lain seperti objek Himpunan Data 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.

Membuat file cadangan

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. Dump memori sebagian besar digunakan untuk melakukan debug masalah dari mesin 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 dump, pilih Debug dengan Hanya Managed, Debug dengan Hanya Native, Debug dengan Campuran, atau Debug dengan Memori Managed.

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 blok try/catch ) juga dapat menjadi sumber bug dan Anda mungkin ingin menyelidiki kapan terjadinya. Anda dapat mengonfigurasi debugger untuk memecah kode untuk pengecualian yang ditangani juga dengan mengonfigurasi opsi dalam kotak dialog Pengaturan Pengecualian . Buka kotak dialog ini dengan memilih Debug > Pengaturan Pengecualian Windows>.

Kotak dialog Pengaturan Pengecualian memungkinkan Anda memberi tahu debugger untuk memecah kode pada pengecualian tertentu. Dalam ilustrasi di bawah ini, debugger menginterupsi kode Anda setiap kali System.NullReferenceException terjadi. Untuk informasi selengkapnya, lihat Mengelola pengecualian.

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 dalam jalur eksekusi kode. Kemudian Anda menggunakan F5 atau perintah langkah untuk terus menjalankan aplikasi.

Pindahkan Penunjuk Eksekusi

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

Peringatan

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

Men-debug kebuntuan dan kondisi balapan

Jika Anda perlu men-debug masalah umum pada aplikasi multithread, sering kali membantu melihat lokasi utas saat proses debugging. Anda dapat melakukannya dengan mudah menggunakan tombol Tampilkan Utas di Sumber .

Untuk menampilkan utas dalam kode sumber Anda:

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

  2. Lihat selokan di sisi kiri jendela. Pada baris ini, Anda akan melihat ikon penanda utasThread Marker yang menyerupai dua utas kain. Penanda utas menunjukkan bahwa utas dihentikan di lokasi ini.

    Perhatikan bahwa penanda utas mungkin disembunyikan sebagian oleh titik henti.

  3. Arahkan penunjuk ke atas penunjuk benang. Tooltip Data muncul. DataTip menampilkan nama dan ID utas untuk setiap utas yang dihentikan.

    Anda juga dapat melihat lokasi thread di jendela Tumpukan Paralel.

Pelajari lebih lanjut mengenai bagaimana debugger menyambungkan ke aplikasi Anda (C#, C++, Visual Basic, F#)

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

Buka jendela Modul saat melakukan debugging 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 debug) kode .NET, kode sistem, atau kode pustaka pihak ketiga, langkah tambahan diperlukan untuk mendapatkan file simbol yang benar.

Lihat 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 Keyboard