Bagikan melalui


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

Untuk mendebug kode pada waktu desain alih-alih saat aplikasi berjalan, Anda dapat menggunakan jendela Langsung.

Untuk mendebug kode XAML di belakang aplikasi dari perancang XAML, seperti skenario pengikatan data deklaratif, Anda dapat menggunakanDebug>Lampirkan ke Proses.

Menggunakan jendela Langsung

Anda dapat menggunakan jendela Visual Studio Langsung 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. Fitur ini disebut penelusuran kesalahan pada waktu desain.

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 Fungsi Akhir.

  3. Buka jendela Langsung dengan memilih Debug>Windows>Langsung. 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 penelusuran kesalahan lainnya saat aplikasi dalam mode jeda.

  4. Pilih Lanjutkan pada toolbar Visual Studio. Aplikasi berakhir, dan 1 dikembalikan di jendela Langsung. Pastikan Anda masih 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 Langsung, 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 tercapai lagi, dan nilai MyFunction di jendela Lokal sekarang menjadi 2. Jendela Langsung menampilkan Ekspresi telah dievaluasi dan tidak memiliki nilai.

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

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

Mendebug kontrol XAML kustom pada waktu desain dengan melampirkan ke perancang XAML

  1. Buka solusi atau proyek Anda di Visual Studio.

  2. Buat solusi/proyek.

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

    Untuk proyek UWP yang menargetkan Windows build 16299 atau yang lebih tinggi, langkah ini akan memulai proses UwpSurface.exe. Untuk proyek WPF yang menargetkan Windows build 16299 atau yang 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 di instans kedua.

  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 Terkelola (CoreCLR). Jika kontrol kustom Anda telah ditulis di C++, pilih Native.

  8. Lampirkan instans kedua Visual Studio dengan mengeklik 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. Di contoh 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. Dalam instans pertama Visual Studio, buka halaman XAML yang Anda tutup di langkah sebelumnya. Ini akan menyebabkan debugger berhenti pada titik henti pertama yang Anda tetapkan di instans kedua Visual Studio.

  13. Debug kode di instans kedua Visual Studio.