Menggunakan peta kode untuk men-debug aplikasi Anda
Peta kode di Visual Studio dapat membantu Anda menghindari hilangnya basis kode besar, kode yang tidak dikenal, atau kode warisan. Misalnya, saat menelusuri kesalahan, Anda mungkin harus melihat kode di banyak file dan proyek. Gunakan peta kode untuk menavigasi sekeliling potongan kode dan memahami hubungan di antaranya. Dengan begitu, Anda tidak perlu melacak kode ini di kepala Anda, atau menggambar diagram terpisah. Jadi, ketika pekerjaan Anda terganggu, peta kode membantu menyegarkan memori Anda tentang kode yang sedang Anda kerjakan.
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.
Catatan
Untuk membuat dan mengedit peta kode, Anda memerlukan edisi Visual Studio Enterprise. Dalam edisi Komunitas dan Profesional Visual Studio, 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 penelusuran kesalahan.
Ketika Anda menggambar garis dan memilih Batalkan goresan terakhir saya, tidak ada yang terjadi sampai Anda menggambar baris berikutnya.
Jadi Anda mulai menyelidiki dengan mencari metode Undo
. Anda menemukannya di kelas PaintCanvas
.
Mulai pemetaan kode
Sekarang mulai pemetaan metode undo
dan hubungannya. Dari editor kode, Anda menambahkan metode undo
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.
Tip
Penyorotan hijau memperlihatkan item terakhir yang ditambahkan ke peta. Panah hijau menunjukkan posisi kursor Anda dalam kode. Panah di antara item mewakili hubungan yang berbeda. Anda bisa mendapatkan info lebih lanjut tentang item di peta dengan menggerakkan mouse di atasnya dan memeriksa tips alatnya.
Menavigasi dan memeriksa kode dari peta
Untuk melihat definisi kode untuk setiap bidang, klik dua kali bidang pada peta atau pilih bidang dan tekan F12. Panah hijau berpindah antar item di peta. Kursor Anda di editor kode juga bergerak secara otomatis.
Tip
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.
Catatan
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, maka konteks pada 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 mengatur ulang alur hubungan dan membuat peta lebih mudah dibaca. Anda juga dapat memindahkan item di sekitar peta dengan menyeretnya.
Tip
Secara default, Tata Letak Bertambah Bertahap diaktifkan. Ini mengatur ulang peta sesedikitan mungkin saat Anda menambahkan item baru. Untuk mengatur ulang seluruh peta setiap kali Anda menambahkan item baru, nonaktifkan Tata Letak Bertambah Bertahap.
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.
Sekarang ulangi langkah yang sama untuk memeriksa definisi metode clear
. Anda mempelajari bahwa clear
melakukan beberapa tugas dengan paintObjects
dan history
. Kemudian memanggil metode Repaint
.
Sekarang periksa definisi metode addPaintObject
. Ini juga melakukan beberapa tugas dengan history
dan paintObjects
. Ini juga memanggil Repaint
.
Temukan masalah dengan memeriksa peta
Tampaknya semua metode yang memodifikasi history
dan paintObjects
memanggil Repaint
. Namun metode undo
ini tidak memanggil Repaint
, meskipun undo
memodifikasi bidang yang sama. Jadi Anda pikir Anda dapat memperbaiki masalah ini dengan memanggil Repaint
dari undo
.
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.
Misalnya, Anda dapat menambahkan komentar ke peta dan menandai item menggunakan warna.
Jika Microsoft Outlook terinstal, Anda dapat mengirim peta melalui email ke orang lain. Anda juga dapat mengekspor peta sebagai gambar atau format lain.
Perbaiki masalah dan tunjukkan apa yang Anda lakukan
Untuk memperbaiki bug ini, Anda menambahkan panggilan Repaint
ke undo
.
Untuk mengonfirmasi perbaikan, Anda menghidupkan ulang sesi penelusuran kesalahan dan mencoba mereprodusi bug. Sekarang memilih Batalkan stroke terakhir saya bekerja seperti yang Anda harapkan dan mengonfirmasi Anda membuat perbaikan yang benar.
Anda dapat memperbarui peta untuk menampilkan perbaikan yang Anda buat.
Peta Anda sekarang menampilkan tautan antara batalkan dan Gambar Ulang.
Catatan
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 tersebut.
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.