Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini memperkenalkan fitur debugger Visual Studio dalam panduan langkah demi langkah. Jika Anda menginginkan tampilan tingkat yang lebih tinggi dari fitur debugger, lihat Pertama-tama lihat debugger. Saat Anda melakukan debug aplikasi, biasanya berarti Anda menjalankan aplikasi dengan debugger yang tersambung. Saat Anda melakukan tugas ini, debugger menyediakan banyak cara untuk melihat apa yang dilakukan kode Anda saat dijalankan. Anda dapat menelusuri kode dan melihat nilai yang disimpan dalam variabel, Anda dapat mengatur jam tangan pada variabel untuk melihat kapan nilai berubah, Anda dapat memeriksa jalur eksekusi kode Anda, melihat apakah cabang kode berjalan, dan sebagainya. Jika latihan ini adalah pertama kalinya Anda mencoba men-debug kode, Anda mungkin ingin membaca Debugging untuk pemula absolut sebelum melalui artikel ini.
Meskipun aplikasi demo adalah C#, sebagian besar fitur berlaku untuk C++, Visual Basic, F#, Python, JavaScript, dan bahasa lain yang didukung oleh Visual Studio (F# tidak mendukung Edit dan lanjutkan. F# dan JavaScript tidak mendukung jendela otomatis). Cuplikan layar berada di C#.
Dalam tutorial ini, Anda akan:
- Mulai debugger dan tekan titik henti.
- Pelajari perintah untuk menelusuri kode di debugger
- Memeriksa variabel di tips data dan jendela debugger
- Memeriksa tumpukan panggilan
Prasyarat
Anda harus menginstal Visual Studio 2022 dan beban kerja pengembangan desktop .NET.
Jika Anda belum menginstal Visual Studio, buka halaman unduhan Visual Studio untuk menginstalnya secara gratis.
Jika Anda sudah memiliki Visual Studio tetapi pengembangan desktop .NET beban kerja tidak diinstal, buka Alat >Dapatkan Alat dan Fitur..., yang meluncurkan Alat Penginstal Visual Studio. Di Penginstal Visual Studio, pilih pengembangan desktop .NET beban kerja, lalu pilih Ubah.
Membuat proyek
Pertama, Anda membuat proyek aplikasi konsol .NET Core. Jenis proyek dilengkapi dengan semua file templat yang Anda butuhkan, sebelum Anda bahkan menambahkan apa pun!
Buka Visual Studio. Jika jendela Mulai tidak terbuka, pilih File>Jendela Mulai.
Pada jendela mulai, pilih Buat proyek baru.
Di jendela Buat proyek baru, masukkan konsol di kotak pencarian. Selanjutnya, pilih C# dari daftar Bahasa, lalu pilih Windows dari daftar Platform.
Setelah Anda menerapkan filter bahasa dan platform, pilih templat Aplikasi Konsol, lalu pilih Berikutnya.
Nota
Jika Anda tidak melihat templat Console App, Anda dapat menginstalnya dari jendela Membuat proyek baru. Pada pesan Tidak menemukan apa yang Anda cari?, pilih tautan Pasang lebih banyak alat dan fitur. Kemudian, di Penginstal Visual Studio, pilih pengembangan desktop .NET beban kerja.
Di jendela Konfigurasikan proyek baru Anda, masukkan GetStartedDebugging di kotak Nama proyek. Kemudian, pilih Berikutnya.
Di jendela Informasi tambahan, pastikan .NET 8.0 dipilih di menu dropdown Kerangka Kerja, lalu pilih Buat.
Visual Studio membuka proyek baru Anda.
Membuat aplikasi
Di Program.cs, ganti semua kode default dengan kode berikut:
using System;
class ArrayExample
{
static void Main()
{
char[] letters = { 'f', 'r', 'e', 'd', ' ', 's', 'm', 'i', 't', 'h'};
string name = "";
int[] a = new int[10];
for (int i = 0; i < letters.Length; i++)
{
name += letters[i];
a[i] = i + 1;
SendMessage(name, a[i]);
}
Console.ReadKey();
}
static void SendMessage(string name, int msg)
{
Console.WriteLine("Hello, " + name + "! Count to " + msg);
}
}
Mulai debugger!
Sebagian besar, kami menggunakan pintasan keyboard di sini, karena ini adalah cara cepat untuk menjalankan perintah debugger. Perintah yang setara, seperti toolbar atau perintah menu, juga dicatat.
Untuk memulai debugger, pilih F5, atau pilih tombol Target Debug di toolbar Standar, atau pilih tombol Mulai Debugging di toolbar Debug, atau pilih Debug>Mulai Debugging dari bilah menu.
F5 memulai aplikasi dengan debugger yang tertanam pada proses aplikasi. Karena kami belum melakukan sesuatu yang istimewa untuk memeriksa kode, aplikasi berjalan hingga selesai dan Anda melihat output konsol.
Hello, f! Count to 1 Hello, fr! Count to 2 Hello, fre! Count to 3 Hello, fred! Count to 4 Hello, fred ! Count to 5 Hello, fred s! Count to 6 Hello, fred sm! Count to 7 Hello, fred smi! Count to 8 Hello, fred smit! Count to 9 Hello, fred smith! Count to 10Untuk menghentikan debugger, pilih Shift+F5, atau pilih tombol Hentikan Penelusuran Kesalahan di toolbar Debug, atau pilih Debug>Hentikan Penelusuran Kesalahan dari bilah menu.
Di jendela konsol, pilih kunci apa pun untuk menutup jendela konsol.
Mengatur titik henti dan memulai debugger
Dalam perulangan
forfungsiMain, atur titik henti dengan mengklik margin kiri pada baris kode berikut:name += letters[i];Lingkaran merah muncul di tempat Anda mengatur titik henti.
Titik henti adalah fitur penting untuk penelusuran kesalahan yang andal. Anda dapat mengatur titik henti di mana Anda ingin Visual Studio menjeda kode yang sedang berjalan sehingga Anda dapat melihat nilai variabel atau perilaku memori, atau mengetahui apakah cabang kode sedang dijalankan atau tidak.
Untuk memulai debugging, pilih F5, atau pilih tombol Debug Target di toolbar Standar, atau pilih tombol Start Debugging di toolbar Debug, atau pilih Debug>Start Debugging dari bilah menu. Aplikasi dimulai dan debugger berjalan ke baris kode tempat Anda mengatur titik henti.
Panah kuning menunjuk ke pernyataan di mana debugger berhenti. Eksekusi aplikasi dijeda pada titik yang sama, dengan instruksi belum dijalankan.
Saat aplikasi tidak berjalan, F5 memulai debugger, yang menjalankan aplikasi hingga mencapai titik henti pertama. Jika aplikasi dijeda pada titik henti, maka F5 akan terus menjalankan aplikasi hingga mencapai titik henti berikutnya.
Titik henti adalah fitur yang berguna saat Anda mengetahui baris atau bagian kode yang ingin Anda periksa secara rinci. Untuk informasi lebih lanjut tentang berbagai jenis titik henti yang dapat diatur, seperti titik henti bersyarat, lihat Menggunakan titik henti.
Menavigasi kode dan memeriksa data dengan menggunakan data tips
Saat eksekusi kode dijeda pada pernyataan
name += letters[i], arahkan mouse ke atas variabellettersuntuk melihat tip data yang menunjukkan ukuran array dan jenis elemen,char[10].Nota
Salah satu fitur paling berguna dari debugger adalah kemampuannya untuk memeriksa variabel. Seringkali, ketika Anda mencoba men-debug masalah, Anda mencoba mencari tahu apakah variabel memiliki nilai yang Anda harapkan pada waktu tertentu. Melihat tips data adalah cara yang baik untuk memeriksanya.
Perluas variabel
lettersuntuk melihat semua elemen array dan nilainya.
Arahkan mouse ke atas variabel
nameuntuk melihat nilainya saat ini, yang merupakan string kosong.Untuk memajukan debugger ke pernyataan berikutnya, pilih F10, atau pilih tombol Langkah atas di toolbar Debug, atau pilih Debug>Langkah Di Atas dari bilah menu. Pilih F10 dua kali lagi untuk melewati panggilan metode
SendMessage.F10 menggerakkan debugger tanpa memasuki fungsi atau metode, meskipun kode tersebut tetap dijalankan. Dengan cara ini, kami melewati proses debugging kode dalam metode
SendMessage, yang tidak kami ingin bahas saat ini.Untuk mengulangi perulangan
forbeberapa kali, pilih F10 berulang kali. Selama setiap perulangan, jeda di breakpoint, lalu arahkan kursor ke variabelnameuntuk memeriksa nilainya di jendela informasi.
Nilai variabel berubah dengan setiap iterasi perulangan
for, memperlihatkan nilaif, lalufr, lalufre, dan sebagainya. Untuk memajukan debugger melalui perulangan lebih cepat, pilih F5 sebagai gantinya, yang maju ke titik henti Anda alih-alih pernyataan berikutnya.Saat eksekusi kode dijeda dalam perulangan
formetodeMain, pilih F11, atau pilih tombol Masuk ke dari toolbar Debug, atau pilih Debug>Langkah Ke dari bilah menu, hingga Anda mencapai panggilan metodeSendMessage.Debugger harus dijeda pada baris kode ini:
SendMessage(name, a[i]);Untuk masuk ke metode
SendMessage, pilih F11 lagi.Penunjuk kuning maju ke metode
SendMessage.
F11 membantu Anda memeriksa alur eksekusi kode Anda secara lebih mendalam. Untuk masuk ke sebuah metode dari pemanggilan metode, pilih F11. Secara bawaan, debugger melewatkan masuk ke metode nonpengguna. Untuk mempelajari tentang penelusuran kesalahan kode nonpengguna, lihat Just My Code.
Setelah selesai men-debug metode
SendMessage, Anda siap untuk kembali ke perulanganformetodemain.Untuk meninggalkan metode
SendMessage, pilih Shift+F11, atau pilih tombol Keluar di toolbar Debug, atau pilih Debug>Keluar dari bilah menu.Step Out melanjutkan eksekusi aplikasi dan memajukan debugger hingga metode atau fungsi saat ini kembali.
Anda melihat penunjuk kuning kembali di loop
fordari metodeMain, terhenti pada pemanggilan metodeSendMessage. Untuk informasi selengkapnya tentang berbagai cara untuk berpindah melalui kode Anda, lihat Menavigasi kode di debugger.
Navigasi kode menggunakan Jalankan Sampai Klik
Pilih F5 untuk melanjutkan ke titik henti lagi.
Di editor kode, arahkan mouse pada panggilan metode
Console.WriteLinedalam metodeSendMessagesampai tombol Jalankan ke Klik muncul. Tipsalat untuk tombol menunjukkan "Jalankan eksekusi ke sini."
Pilih tombol Jalankan untuk Mengklik. Atau, dengan kursor Anda di pernyataan
Console.WriteLine, pilih Ctrl+F10. Atau, klik kanan panggilan metodeConsole.WriteLine, dan pilih Jalankan ke Kursor dari menu konteks.Debugger maju ke panggilan metode
Console.WriteLine.Menggunakan tombol Jalankan ke Klik mirip dengan mengatur titik henti sementara, dan berguna untuk dengan cepat menavigasi dalam wilayah yang terlihat dari kode aplikasi Anda pada file yang terbuka.
Mulai ulang aplikasi Anda dengan cepat
Untuk menjalankan ulang aplikasi Anda dari awal di debugger, pilih Ctrl+Shift+F5, atau pilih tombol Mulai Ulang di toolbar Debug, atau pilih Debug>Mulai Ulang dari bilah menu.
Mulai ulang menghentikan debugger lalu memulai ulang, dalam satu langkah. Ketika debugger dimulai ulang, debugger berjalan ke titik henti pertama, yang merupakan titik henti yang sebelumnya Anda atur di dalam perulangan for, lalu jeda.
Memeriksa variabel dengan jendela Otomatis dan Lokal
Jendela Autos dan Lokal menampilkan nilai variabel saat Anda melakukan debugging. Jendela hanya tersedia selama sesi debug. Jendela Autos menunjukkan variabel yang digunakan pada baris saat ini tempat debugger berada dan baris sebelumnya. Jendela Lokal menunjukkan variabel yang ditentukan dalam cakupan lokal, yang biasanya merupakan fungsi atau metode saat ini.
Saat debugger dijeda, lihat jendela Autos di bagian bawah editor kode.
Jika jendela Otomatis ditutup, pilih Ctrl+D, A, atau pilih Debug>Windows>Autos dari bilah menu.
Dengan debugger masih dijeda, lihat jendela Lokal, di tab di samping jendela Otomatis.
Jika jendela Lokal ditutup, pilih Ctrl+D, L, atau pilih Debug>Windows>Locals.
Di jendela Lokal, perluas variabel
lettersuntuk melihat elemen array dan nilainya.
Untuk informasi lebih lanjut tentang jendela Otomatis dan Lokal, lihat Menginspeksi variabel di jendela Otomatis dan Lokal.
Mengatur jam tangan
Anda dapat menentukan variabel, atau ekspresi, yang ingin Anda pantau saat menelusuri kode—dengan menambahkannya ke jendela Watch.
Saat debugger dijeda, klik kanan variabel
namedan pilih Tambahkan Watch.Jendela Watch terbuka secara default di bagian bawah editor kode.
Sekarang setelah Anda memantau variabel
name, langkah melalui kode Anda untuk melihat perubahan nilai variabelnamedengan setiap iterasifor.Tidak seperti jendela variabel lainnya, jendela Watch selalu menampilkan variabel yang Anda tonton. Variabel yang berada di luar cakupan ditampilkan sebagai tidak tersedia.
Untuk informasi selengkapnya tentang jendela Watch, lihat variabel Watch dengan jendela Watch.
Memeriksa tumpukan panggilan
Call Stack dapat membantu Anda memahami alur eksekusi aplikasi Anda, dengan menampilkan urutan metode dan fungsi yang dipanggil.
Saat debugger dijeda di loop
for, lihat jendela Call Stack, yang secara default terbuka di panel kanan bawah editor kode.Jika jendela Call Stack ditutup, pilih Ctrl+D, C, atau pilih Debug>Windows>Call Stack dari bilah menu.
Di jendela Call Stack, Anda melihat pointer kuning pada metode
Mainsaat ini.Pilih F11 beberapa kali hingga Anda melihat jeda debugger dalam metode
SendMessage.Baris atas jendela Call Stack memperlihatkan fungsi saat ini, yang merupakan metode
SendMessage. Baris kedua menunjukkan bahwa metodeSendMessagedipanggil dari metodeMain.
Nota
Jendela Call Stack mirip dengan perspektif Debug di beberapa IDEs, seperti Eclipse.
Di jendela Call Stack, Anda dapat mengklik dua kali baris kode untuk membuka kode sumber tersebut, yang mengubah cakupan yang sedang diperiksa oleh debugger. Tindakan ini tidak memajukan debugger.
Anda juga dapat menggunakan menu klik kanan dari jendela Call Stack untuk melakukan hal lain. Misalnya, Anda dapat menyisipkan titik henti ke dalam fungsi tertentu, memajukan debugger dengan menggunakan Jalankan ke Kursor, atau masuk ke kode sumber.
Untuk informasi selengkapnya tentang Call Stack, lihat Cara: Memeriksa Call Stack.
Langkah berikutnya
Dalam tutorial ini, Anda telah mempelajari cara memulai debugger, menelusuri kode, dan memeriksa variabel. Anda mungkin ingin melihat fitur debugger tingkat tinggi bersama dengan tautan ke informasi selengkapnya.