Bagikan melalui


Memeriksa variabel dalam jendela Otomatis and Lokal

Jendela Otomatis dan Lokal menampilkan nilai variabel saat Anda men-debug. Jendela hanya tersedia selama sesi penelusuran kesalahan. Jendela Otomatis memperlihatkan variabel yang digunakan di sekitar pernyataan saat ini tempat debugger dijeda. Jendela Locals menunjukkan variabel yang ditentukan dalam cakupan lokal, yang biasanya merupakan fungsi atau metode saat ini.

Catatan

Jika ini pertama kalinya Anda mencoba men-debug kode, Anda mungkin ingin membaca Debugging untuk pemula absolut dan teknik dan alat Debugging sebelum melalui artikel ini.

Jendela Otomatis tersedia untuk kode C#, Visual Basic, C++, dan Python, tetapi tidak untuk JavaScript atau F#.

Untuk membuka jendela Otomatis, saat penelusuran kesalahan, pilih Debug>Windows>Autos, atau tekan Ctrl+Alt+V>A.

Untuk membuka jendela Lokal, saat menelusuri kesalahan, pilih Debug>Windows>Lokal, atau tekan Alt+4.

Menggunakan jendela Otomatis dan Lokal

Array dan objek ditampilkan di jendela Otomatis dan Lokal sebagai kontrol pohon. Pilih panah di sebelah kiri nama variabel untuk memperluas tampilan untuk memperlihatkan bidang dan properti. Berikut ini contoh System.IO.FileStream objek di jendela Lokal:

Cuplikan layar jendela Lokal, dengan file diatur ke nilai System.IO.FileStream.

Cuplikan layar jendela Lokal, dengan file diatur ke nilai System.IO.FileStream.

Nilai merah di jendela Lokal atau Otomatis berarti nilai telah berubah sejak evaluasi terakhir. Perubahan bisa dari sesi penelusuran kesalahan sebelumnya, atau karena Anda telah mengubah nilai di jendela.

Format numerik default dalam jendela debugger adalah desimal. Untuk mengubahnya menjadi heksadesimal, klik kanan di jendela Lokal atau Otomatis dan pilih Tampilan Heksadesimal. Perubahan ini mempengaruhi semua jendela debugger.

Mengedit nilai variabel di jendela Otomatis atau Lokal

Untuk mengedit nilai sebagian besar variabel di jendela Otomatis atau Lokal, klik dua kali nilai dan masukkan nilai baru.

Anda dapat memasukkan ekspresi untuk suatu nilai, misalnya a + b. Debugger menerima sebagian besar ekspresi bahasa yang paling valid.

Dalam kode C++ asli, Anda mungkin harus memenuhi syarat konteks nama variabel. Untuk informasi selengkapnya, lihat Operator konteks (C++).

Perhatian

Pastikan Anda memahami konsekuensi sebelum mengubah nilai dan ekspresi. Kemungkinan masalah:

  • Mengevaluasi beberapa ekspresi dapat mengubah nilai variabel atau memengaruhi status program Anda. Misalnya, mengevaluasi var1 = ++var2 perubahan nilai var1 dan var2. Ekspresi ini dikatakan memiliki efek samping. Efek samping dapat menyebabkan hasil yang tidak terduga jika Anda tidak menyadarinya.

  • Mengedit nilai floating-point dapat mengakibatkan ketidakakuratan kecil karena konversi desimal ke biner komponen pecahan. Bahkan pengeditan yang tampaknya tidak berbahaya dapat mengakibatkan perubahan pada beberapa bit dalam variabel floating-point.

Cari di jendela Otomatis atau Lokal

Anda dapat mencari kata kunci di kolom Nama, Nilai, dan Jenis dari jendela Otomatis atau Lokal menggunakan bilah pencarian di atas setiap jendela. Tekan ENTER atau pilih salah satu panah untuk menjalankan pencarian. Untuk membatalkan pencarian yang sedang berlangsung, pilih ikon "x" di bilah pencarian.

Gunakan panah kiri dan kanan (masing-masing Shift+F3 dan F3) untuk beralih di antara kecocokan yang ditemukan.

Cuplikan layar Pencarian di Jendela Lokal

Cuplikan layar Pencarian di Jendela Lokal

Untuk membuat pencarian Anda lebih atau kurang menyeluruh, gunakan daftar dropdown Search Deeper di bagian atas jendela Autos atau Locals untuk memilih berapa banyak tingkat dalam yang ingin Anda cari ke dalam objek berlapis.

Menyematkan properti di jendela Otomatis atau Lokal

Catatan

Fitur ini didukung untuk .NET Core 3.0 atau yang lebih tinggi.

Anda dapat dengan cepat memeriksa objek berdasarkan propertinya di jendela Otomatis dan Lokal menggunakan alat Properti yang Dapat Disematkan. Untuk menggunakan alat ini, arahkan kursor ke properti dan pilih ikon sematkan yang muncul atau klik kanan dan pilih opsi Sematkan Anggota sebagai Favorit di menu konteks yang dihasilkan. Ini menautkan properti tersebut ke bagian atas daftar properti objek, dan nama dan nilai properti ditampilkan di kolom Nilai . Untuk melepaskan semat properti, pilih ikon sematkan lagi atau pilih opsi Lepaskan Anggota sebagai Favorit di menu konteks.

Cuplikan layar menyematkan properti di jendela Lokal.

Anda juga dapat mengalihkan nama properti dan memfilter properti yang tidak disematkan saat melihat daftar properti objek di jendela Otomatis atau Lokal. Anda dapat mengakses setiap opsi dengan memilih tombol di bar alat di atas jendela Otomatis atau Lokal.

Cuplikan layar Filter properti favorit.

Cuplikan layar Alihkan nama properti.

Mengubah konteks untuk jendela Otomatis atau Lokal

Anda dapat menggunakan toolbar Lokasi Debug untuk memilih fungsi, utas, atau proses yang diinginkan, yang mengubah konteks untuk jendela Otomatis dan Lokal .

Untuk mengaktifkan toolbar Lokasi Debug, klik di bagian kosong area toolbar dan pilih Lokasi Debug dari daftar dropdown, atau pilih Tampilkan>Lokasi Debug Bilah Alat.>

Mengatur titik henti dan memulai penelusuran kesalahan. Saat titik henti telah tercapai, eksekusi dijeda dan Anda dapat melihat lokasi di toolbar Lokasi Debug.

Cuplikan layar toolbar Lokasi Debug.

Cuplikan layar toolbar Lokasi Debug.

Dapatkan bantuan AI

Jika Anda memiliki Copilot, Anda bisa mendapatkan bantuan AI saat melihat variabel di jendela Autos atau Locals, atau di tips data. Klik kanan pada variabel dan gunakan tombol Minta Salinan. Cuplikan layar tombol Minta Salinan. Dalam skenario ini, Copilot sudah mengetahui konteks untuk pertanyaan Anda, jadi Anda tidak perlu memberikan konteks sendiri dalam obrolan. Untuk informasi selengkapnya, lihat Debug dengan Copilot.

Variabel di jendela Otomatis (C#, C++, Visual Basic, Python)

Bahasa kode yang berbeda menampilkan variabel yang berbeda di jendela Otomatis.

  • Di C# dan Visual Basic, jendela Otomatis menampilkan variabel apa pun yang digunakan pada baris saat ini atau sebelumnya. Misalnya, dalam kode C# atau Visual Basic, deklarasikan empat variabel berikut:

         public static void Main()
         {
            int a, b, c, d;
            a = 1;
            b = 2;
            c = 3;
            d = 4;
         }
    

    Atur titik henti pada baris c = 3;, dan mulai debugger. Saat eksekusi dijeda, jendela Otomatis akan menampilkan:

    Cuplikan layar jendela Otomatis, dengan nilai c diatur ke 0.

    Cuplikan layar jendela Otomatis, dengan nilai c diatur ke 0.

    Nilai c adalah 0, karena baris c = 3 belum dijalankan.

  • Di C++, jendela Otomatis menampilkan variabel yang digunakan setidaknya dalam tiga baris sebelum baris saat ini di mana eksekusi dijeda. Misalnya, dalam kode C++, deklarasikan enam variabel:

         void main() {
             int a, b, c, d, e, f;
             a = 1;
             b = 2;
             c = 3;
             d = 4;
             e = 5;
             f = 6;
         }
    

    Atur titik henti pada baris e = 5; dan jalankan debugger. Saat eksekusi berhenti, jendela Otomatis akan menampilkan:

    Cuplikan layar jendela Otomatis, dengan garis disorot yang memperlihatkan int c dengan nilai 3.

    Cuplikan layar jendela Otomatis, dengan garis disorot yang memperlihatkan int c dengan nilai 3.

    Variabel e tidak diinisialisasi, karena baris e = 5 belum dijalankan.

Melihat nilai pengembalian panggilan metode

Dalam kode .NET dan C++, Anda dapat memeriksa nilai pengembalian di jendela Otomatis saat Anda melangkahi atau keluar dari panggilan metode. Melihat nilai pengembalian panggilan metode dapat berguna ketika tidak disimpan dalam variabel lokal. Metode dapat digunakan sebagai parameter, atau sebagai nilai pengembalian dari metode lain.

Catatan

Mulai dari Visual Studio 2022 versi 17.12 Pratinjau 3, Anda juga dapat melihat nilai pengembalian sebaris dan bukan hanya di jendela Otomatis.

Misalnya, kode C# berikut menambahkan nilai pengembalian dari dua fungsi:

static void Main(string[] args)
{
    int a, b, c, d;
    a = 1;
    b = 2;
    c = 3;
    d = 4;
    int x = sumVars(a, b) + subtractVars(c, d);
}

private static int sumVars(int i, int j)
{
    return i + j;
}

private static int subtractVars(int i, int j)
{
    return j - i;
}

Untuk melihat nilai pengembalian panggilan metode sumVars() dan subtractVars() di jendela Otomatis:

  1. Atur titik henti int x = sumVars(a, b) + subtractVars(c, d); pada baris.

  2. Mulai penelusuran kesalahan, dan saat eksekusi dijeda di titik henti, pilih Lewati atau tekan F10. Anda harus melihat nilai pengembalian berikut di jendela Otomatis:

    Cuplikan layar nilai pengembalian Otomatis C#.

    Cuplikan layar nilai pengembalian Otomatis C#.