Penelusuran kesalahan dengan Visual Studio untuk Mac

Penting

Visual Studio untuk Mac dijadwalkan untuk dihentikan pada 31 Agustus 2024 sesuai dengan Kebijakan Siklus Hidup Modern Microsoft. Meskipun Anda dapat terus bekerja dengan Visual Studio untuk Mac, ada beberapa opsi lain untuk pengembang di Mac seperti versi pratinjau ekstensi C# Dev Kit baru untuk Visual Studio Code.

Pelajari selengkapnya tentang garis waktu dukungan dan alternatif.

Visual Studio untuk Mac memiliki debugger dengan dukungan untuk aplikasi .NET Core, .NET Framework, Unity, dan Xamarin.

Visual Studio untuk Mac menggunakan Mono Soft Debugger, yang diimplementasikan ke dalam runtime Mono, memungkinkan Visual Studio untuk Mac men-debug kode terkelola di semua platform.

Debugger

Visual Studio untuk Mac menggunakan Mono Soft Debugger untuk men-debug kode terkelola (C# atau F#) di semua aplikasi Xamarin. Debugger Mono Soft berbeda dari debugger reguler karena ini adalah debugger koperasi yang dibangun ke dalam runtime Mono; kode yang dihasilkan dan runtime Mono bekerja sama dengan IDE untuk memberikan pengalaman penelusuran kesalahan. Runtime Mono mengekspos fungsi penelusuran kesalahan melalui protokol kawat, yang dapat Anda baca selengkapnya dalam dokumentasi Mono.

Debugger keras, seperti LLDB atau GDB, mengontrol program tanpa pengetahuan atau kerja sama dari program yang di-debug. Ini masih dapat berguna saat men-debug aplikasi Xamarin jika Anda perlu menelusuri kesalahan kode iOS atau Android asli.

Untuk aplikasi .NET Core dan ASP.NET Core, Visual Studio untuk Mac menggunakan debugger .NET Core. Debugger ini juga merupakan debugger kooperatif dan bekerja dengan runtime .NET.

Menggunakan debugger

Untuk mulai penelusuran kesalahan aplikasi apa pun, selalu pastikan konfigurasi diatur ke Debug. Konfigurasi debug menyediakan sekumpulan alat yang berguna untuk mendukung penelusuran kesalahan, seperti titik henti, menggunakan visualizer data, dan menampilkan tumpukan panggilan:

Debug configuration

Mengatur titik henti

Untuk mengatur titik henti di IDE Anda, klik area margin editor Anda, di samping nomor baris kode tempat Anda ingin memutuskan:

Setting breakpoint in margin

Anda dapat melihat semua titik henti yang telah diatur dalam kode Anda dengan masuk ke Jendela Titik Henti:

List of breakpoints

Mulai penelusuran kesalahan

Untuk memulai penelusuran kesalahan, pilih browser target, perangkat, atau simulator/emulator:

Debug configurationSelect target device

Kemudian sebarkan aplikasi Anda dengan menekan tombol Putar, atau Cmd + return. Saat Anda mencapai titik henti, kode akan disorot dengan warna kuning:

Highlight showing breakpoint has been hit

Alat penelusuran kesalahan, seperti yang digunakan untuk memeriksa nilai objek, dapat digunakan pada saat ini untuk mendapatkan informasi selengkapnya tentang apa yang terjadi dalam kode Anda:

Debug visualizations

Titik henti kondisional

Anda juga dapat menetapkan aturan yang menentukan keadaan di mana titik henti harus terjadi. Ini dikenal sebagai menambahkan titik henti kondisional. Untuk mengatur titik henti kondisional, akses jendela Properti Titik Henti, yang dapat dilakukan dengan dua cara:

  • Untuk menambahkan titik henti bersyarat baru, klik kanan pada margin editor, di sebelah kiri nomor baris untuk kode yang ingin Anda atur titik hentinya, dan pilih Titik Henti Baru:

Breakpoint context menu

  • Untuk menambahkan kondisi ke titik henti yang sudah ada, klik kanan pada titik henti dan pilih Properti Titik Henti, atau, di Jendela Titik Henti, pilih tombol Edit Titik Henti yang diilustrasikan di bawah ini:

Edit existing Breakpoint in Breakpoints Window

Anda kemudian dapat memasukkan kondisi di mana Anda ingin titik henti terjadi:

Edit Breakpoint conditions

Melangkah melalui kode

Ketika titik henti telah tercapai, alat Debug memungkinkan Anda untuk mendapatkan kontrol atas eksekusi program. Visual Studio untuk Mac akan menampilkan empat tombol, memungkinkan Anda menjalankan dan menelusuri kode. Di Visual Studio untuk Mac, mereka akan terlihat seperti:

Buttons to step through code

Berikut adalah empat tombol:

  • Putar - Ini akan mulai mengeksekusi kode, sampai titik henti berikutnya.
  • Step Over - Ini akan menjalankan baris kode berikutnya. Jika baris berikutnya adalah panggilan fungsi, Step Over akan menjalankan fungsi, dan akan berhenti di baris kode berikutnya setelah fungsi.
  • Melangkah Ke - Ini juga akan menjalankan baris kode berikutnya. Jika baris berikutnya adalah panggilan fungsi, Melangkah Ke akan berhenti di baris pertama fungsi, memungkinkan Anda untuk melanjutkan penelusuran kesalahan baris demi baris fungsi. Jika baris berikutnya bukan fungsi, baris tersebut akan berulah sama dengan Step Over.
  • Keluar - Ini akan kembali ke baris tempat fungsi saat ini dipanggil.

Ubah pernyataan mana yang dijalankan berikutnya

Saat debugger dijeda, panah di margin menunjukkan baris kode mana yang akan dijalankan berikutnya. Anda dapat memilih dan menyeret panah ke baris kode yang berbeda untuk mengubah pernyataan mana yang akan dijalankan. Anda dapat mencapai hal yang sama dengan juga mengklik kanan pada baris kode dan memilih Atur Pernyataan Berikutnya dari menu konteks.

Drag and drop arrow to set next statement

Perhatian

Mengubah baris eksekusi saat ini dapat menyebabkan perilaku tak terduga dalam aplikasi. Ada juga beberapa kondisi di mana mengubah pernyataan berikutnya untuk dijalankan tidak dimungkinkan. Misalnya, menyeret panah dari satu metode ke metode lain tidak akan berfungsi. Dalam kasus yang tidak didukung ini, Visual Studio untuk Mac akan menampilkan dialog untuk memberi tahu Anda bahwa tidak mungkin mengubah baris eksekusi saat ini.

Penelusuran kesalahan pustaka kelas Mono

Produk Xamarin dikirim dengan kode sumber untuk pustaka kelas Mono, dan Anda dapat menggunakan ini untuk satu langkah dari debugger untuk memeriksa bagaimana hal-hal bekerja di bawah tenda.

Karena fitur ini mengonsumsi lebih banyak memori selama penelusuran kesalahan, fitur ini dinonaktifkan secara default.

Untuk mengaktifkan fitur ini, telusuri ke Visual Studio untuk Debugger Preferensi > Mac > dan pastikan bahwa opsi "Masuk ke kode eksternal" dipilih, seperti yang diilustrasikan di bawah ini:

Step into external code option

Lihat juga