Debug pada waktu desain di Visual Studio (C#, C++/CLI, Visual Basic, F#)

Untuk men-debug kode pada waktu desain alih-alih saat aplikasi berjalan, Anda dapat menggunakan jendela Segera .

Untuk debug kode XAML di balik aplikasi dari desainer XAML, misalnya skenario pengikatan data deklaratif, Anda dapat menggunakan Debug>Lampirkan ke Proses.

Menggunakan jendela Langsung

Anda dapat menggunakan jendela Langsung Visual Studio untuk menjalankan fungsi atau subroutine tanpa menjalankan aplikasi Anda. Jika fungsi atau subroutine berisi titik henti, Visual Studio akan berhenti pada titik henti. Anda kemudian dapat menggunakan jendela debugger untuk memeriksa status program Anda. Fitur ini disebut debugging pada waktu desain. Untuk informasi terperinci, lihat Menggunakan jendela Langsung

Contoh berikut ada di Visual Basic. Anda juga dapat menggunakan jendela Langsung pada waktu desain di aplikasi C#, F#, dan C++/CLI. Untuk C++/CLI, kompilasi tanpa opsi /clr untuk menggunakan jendela Langsung.

  1. Tempelkan kode berikut ke dalam aplikasi konsol Visual Basic kosong:

    Module Module1
    
        Sub Main()
            MySub()
        End Sub
    
        Function MyFunction() As Decimal
            Static i As Integer
            i = i + 1
            Return i
        End Function
    
        Sub MySub()
            MyFunction()
    
        End Sub
    End Module
    
  2. Atur titik henti pada baris End Function.

  3. Buka jendela Segera dengan memilih Debug>Windows>Segera. Ketik ?MyFunction di jendela, lalu tekan Enter.

    Titik henti tercapai, dan nilai MyFunction di jendela Lokal adalah 1. Anda dapat memeriksa tumpukan panggilan dan jendela debugging lainnya saat aplikasi dalam mode jeda.

  4. Pilih Lanjutkan pada toolbar Visual Studio. Aplikasi berakhir, dan 1 dikembalikan di jendela Segera . Pastikan Anda masih berada dalam mode desain.

  5. Ketik ?MyFunction lagi di jendela Langsung , dan tekan Enter. Titik henti tercapai, dan nilai MyFunction di jendela Lokal adalah 2.

  6. Tanpa memilih Lanjutkan, ketik ?MySub() di jendela Segera , lalu tekan Enter. Titik henti tercapai, dan nilai MyFunction di jendela Lokal adalah 3. Anda dapat memeriksa status aplikasi saat aplikasi dalam mode istirahat.

  7. Pilih Lanjutkan. Titik henti dikenai lagi, dan nilai MyFunction di jendela Lokals sekarang 2. Jendela Langsung menampilkan Ekspresi telah dievaluasi dan tidak memiliki nilai.

  8. Pilih Lanjutkan lagi. Aplikasi berakhir, dan 2 dikembalikan di jendela Segera . Pastikan Anda masih dalam mode desain.

  9. Untuk menghapus konten jendela Segera , klik kanan di jendela dan pilih Hapus Semua.

Mendebug kontrol XAML kustom pada saat desain dengan menghubungkan ke desainer XAML

  1. Buka solusi atau proyek Anda di Visual Studio.

  2. Bangun solusi/proyek.

  3. Buka halaman XAML yang berisi kontrol kustom yang ingin Anda debug.

    Untuk proyek UWP yang menargetkan Windows build 16299 atau lebih tinggi, langkah ini akan memulai proses UwpSurface.exe . Untuk proyek WPF yang menargetkan Windows build 16299 atau lebih tinggi, langkah ini akan memulai proses WpfSurface.exe . Untuk versi WPF atau UWP sebelum Windows build 16299, langkah ini akan memulai proses XDesProc.exe .

  4. Buka instans kedua Visual Studio. Jangan buka solusi atau proyek untuk kedua kali.

  5. Di instans kedua Visual Studio, buka menu Debug dan pilih Lampirkan ke Proses....

  6. Bergantung pada jenis proyek Anda (lihat langkah-langkah sebelumnya), pilih UwpSurface.exe, WpfSurface.exe, atau proses XDesProc.exe dari daftar proses yang tersedia.

  7. Di bidang Lampirkan ke dialog Lampirkan ke Proses , pilih jenis kode yang benar untuk kontrol kustom yang ingin Anda debug.

    Jika kontrol kustom Anda telah ditulis dalam bahasa .NET, pilih jenis kode .NET yang sesuai seperti Managed (CoreCLR). Jika kontrol kustom Anda telah ditulis di C++, pilih Asli.

  8. Lampirkan instans kedua Visual Studio dengan mengklik tombol Lampirkan .

  9. Dalam instans kedua Visual Studio, buka file kode yang terkait dengan kontrol kustom yang ingin Anda debug. Pastikan untuk hanya membuka file, bukan seluruh solusi atau proyek.

  10. Tempatkan titik henti yang diperlukan dalam file yang dibuka sebelumnya.

  11. Dalam instans pertama Visual Studio, tutup halaman XAML yang berisi kontrol kustom yang ingin Anda debug (halaman yang sama dengan yang Anda buka di langkah-langkah sebelumnya).

  12. Di instans pertama Visual Studio, buka halaman XAML yang Anda tutup di langkah sebelumnya. Ini akan menyebabkan debugger berhenti di titik henti pertama yang Anda tetapkan di instans kedua Visual Studio.

  13. Debug kode di instance kedua Visual Studio.