Bagikan melalui


Menggunakan peta kode untuk men-debug aplikasi Anda

Peta kode di Visual Studio dapat membantu Anda menghindari tersesat dalam basis kode besar, kode yang tidak dikenal, atau kode warisan. Misalnya, saat debugging, Anda mungkin harus melihat kode di banyak file dan proyek. Gunakan peta kode untuk menavigasi sekeliling potongan kode dan memahami hubungan di antara mereka. Dengan begitu, Anda tidak perlu melacak kode ini di kepala Anda, atau menggambar diagram terpisah. Jadi, saat pekerjaan Anda terganggu, peta kode membantu menyegarkan memori Anda tentang kode yang sedang Anda kerjakan.

Peta kode - Memetakan hubungan dalam kode

Panah hijau memperlihatkan di mana kursor Anda muncul di editor

Untuk detail perintah dan tindakan yang dapat Anda gunakan saat bekerja dengan peta kode, lihat Menelusuri dan menyusun ulang peta kode.

Pelajari selengkapnya tentang penelusuran kesalahan di Visual Studio dengan alat Debugger.

Nota

Untuk membuat dan mengedit peta kode, Anda memerlukan edisi Visual Studio Enterprise. Di Komunitas Visual Studio dan edisi Profesional, Anda dapat membuka diagram yang dihasilkan di edisi Enterprise, tetapi Anda tidak dapat mengeditnya.

Memahami masalahnya

Misalkan ada bug dalam program gambar yang sedang Anda kerjakan. Untuk mereproduksi bug, Anda membuka solusi di Visual Studio dan menekan F5 untuk memulai debugging.

Ketika Anda menggambar garis dan memilih Batalkan goresan terakhir saya, tidak ada yang terjadi sampai Anda menggambar baris berikutnya.

Peta kode - Bug yang dapat direproduksi

Jadi Anda mulai menyelidiki dengan mencari metode Undo. Anda menemukannya di kelas PaintCanvas.

Peta kode - Temukan kode

Mulai memetakan kode

Sekarang mulai memetakan metode undo dan relasinya. Dari editor kode, Anda menambahkan undo metode dan bidang yang dirujuknya ke peta kode baru. Saat Anda membuat peta baru, mungkin perlu waktu untuk mengindeks kode. Ini membantu operasi nanti berjalan lebih cepat.

Peta kode - Tampilkan metode dan bidang terkait

Petunjuk / Saran

Penyorotan hijau memperlihatkan item terakhir yang ditambahkan ke peta. Panah hijau memperlihatkan posisi kursor Anda dalam kode. Panah di antara item mewakili hubungan yang berbeda. Anda bisa mendapatkan informasi lebih lanjut tentang elemen di peta dengan menyorotkan mouse ke arah item tersebut dan memeriksa tooltip-nya.

Peta kode - Tampilkan tooltip

Untuk melihat definisi kode untuk setiap bidang, klik dua kali bidang di peta atau pilih bidang dan tekan F12. Panah hijau berpindah antar item di peta. Kursor Anda di editor kode juga bergerak secara otomatis.

Cuplikan layar jendela peta kode dengan bidang riwayat dipilih dan jendela editor kode tempat semua instans riwayat disorot.

Cuplikan layar jendela peta kode dengan bidang paintObjects dipilih dan jendela editor kode tempat semua instans paintObjects disorot.

Petunjuk / Saran

Anda juga dapat memindahkan panah hijau di peta dengan memindahkan kursor Anda di editor kode.

Memahami hubungan antara potongan kode

Sekarang Anda ingin tahu kode lain mana yang berinteraksi dengan bidang history dan paintObjects. Anda dapat menambahkan semua metode yang mereferensikan bidang ini ke peta. Anda dapat melakukan ini dari peta atau dari editor kode.

Peta kode - Temukan semua referensi

Buka peta kode dari editor kode

Nota

Jika Anda menambahkan item dari proyek yang dibagikan di beberapa aplikasi, seperti Windows Phone atau Windows Store, item tersebut selalu muncul dengan proyek aplikasi yang saat ini aktif di peta. Jadi, jika Anda mengubah konteks ke proyek aplikasi lain, konteks di peta juga berubah untuk item yang baru ditambahkan dari proyek bersama. Operasi yang Anda lakukan dengan item di peta hanya berlaku untuk item yang memiliki konteks yang sama.

Ubah tata letak untuk menyusun ulang alur hubungan dan membuat peta lebih mudah dibaca. Anda juga dapat memindahkan item di sekitar peta dengan menyeretnya.

Cuplikan layar jendela peta kode dengan menu Tata Letak terbuka dan perintah Kiri ke Rgiht dipilih.

Petunjuk / Saran

Secara default, Tata Letak Inkremental diaktifkan. Ini mengatur ulang peta sesedikit mungkin saat Anda menambahkan item baru. Untuk mengatur ulang seluruh peta setiap kali Anda menambahkan item baru, nonaktifkan Tata Letak Bertambah Bertahap.

Cuplikan layar jendela peta kode dengan panah relationshiop di antara bidang yang menunjuk dari kiri ke kanan.

Mari kita periksa metode ini. Pada peta, klik dua kali metode PaintCanvas , atau pilih metode ini dan tekan F12. Anda mempelajari bahwa metode ini membuat history dan paintObjects sebagai daftar kosong.

Cuplikan layar jendela peta kode dengan metode PaintCanvas dipilih dan gambar cuplikan kode memperlihatkan nama metode PainCanvas disorot.

Sekarang ulangi langkah-langkah yang sama untuk memeriksa clear definisi metode. Anda mempelajari bahwa clear melakukan beberapa tugas dengan paintObjects dan history. Kemudian memanggil metode Repaint.

Cuplikan layar jendela peta kode dengan metode Hapus dipilih dan gambar cuplikan kode memperlihatkan kode untuk metode Hapus.

Sekarang periksa definisi metode addPaintObject. Ini juga melakukan beberapa tugas dengan history dan paintObjects. Ini juga memanggil Repaint.

Cuplikan layar jendela peta kode dengan metode addPaintObject dipilih dan gambar cuplikan kode memperlihatkan kode untuk metode addPaintObject.

Temukan masalah dengan memeriksa peta

Tampaknya semua metode yang memodifikasi history dan paintObjects memanggil Repaint. undo Namun metode ini tidak memanggil Repaint, meskipun undo memodifikasi bidang yang sama. Jadi Anda pikir Anda dapat memperbaiki masalah ini dengan memanggil Repaint dari undo.

Peta kode program - Temukan pemanggilan metode yang hilang

Jika Anda tidak memiliki peta untuk menunjukkan kepada Anda panggilan yang hilang ini, mungkin lebih sulit untuk menemukan masalah ini, terutama dengan kode yang lebih kompleks.

Bagikan penemuan Anda dan langkah berikutnya

Sebelum Anda atau orang lain memperbaiki bug ini, Anda dapat membuat catatan di peta tentang masalah dan cara memperbaikinya.

Peta kode - Komentar dan tandai item untuk tindakan lanjutan

Misalnya, Anda dapat menambahkan komentar ke peta dan menandai item menggunakan warna.

Peta kode - Item yang dikomentari dan ditandai

Jika Microsoft Outlook terinstal, Anda bisa mengirim peta melalui email ke orang lain. Anda juga dapat mengekspor peta sebagai gambar atau format lain.

Peta kode - Berbagi, ekspor, email

Perbaiki masalah dan tunjukkan apa yang Anda lakukan

Untuk memperbaiki bug ini, Anda menambahkan panggilan Repaint ke undo.

Peta kode - Tambahkan panggilan fungsi yang hilang

Untuk mengonfirmasi perbaikan, Anda mengulang sesi debugging dan mencoba menggandakan bug. Sekarang dengan memilih Urungkan goresan terakhir saya bekerja seperti yang Anda harapkan dan memastikan bahwa perbaikan yang Anda lakukan benar.

Peta kode - Konfirmasi perbaikan kode

Anda dapat memperbarui peta untuk menampilkan perbaikan yang Anda buat.

Peta kode - Perbarui peta dengan panggilan metode yang hilang

Peta Anda sekarang menampilkan tautan antara batalkan dan Repaint.

Peta kode - Peta yang diperbarui dengan panggilan metode

Nota

Saat memperbarui peta, Anda mungkin melihat pesan yang mengatakan indeks kode yang digunakan untuk membuat peta Anda diperbarui. Ini berarti seseorang mengubah kode, yang menyebabkan peta Anda tidak cocok dengan kode saat ini. Ini tidak menghentikan Anda memperbarui peta, tetapi Anda mungkin harus membuat ulang peta untuk mengonfirmasi bahwa peta cocok dengan kode.

Sekarang Anda sudah selesai dengan penyelidikan Anda. Anda berhasil menemukan dan memperbaiki masalah dengan memetakan kode. Anda juga memiliki peta yang membantu Anda menavigasi di sekitar kode, mengingat apa yang Anda pelajari, dan menunjukkan langkah-langkah yang Anda ambil untuk memperbaiki masalah.