Versi Visual Studio 2010 Ultimate memiliki fitur baru IntelliTrace (pelacakan cerdas). IntelliTrace diperkenalkan ke Visual Studio untuk mempercepat debugging aplikasi .NET. Ini melacak peristiwa dan metode yang telah ditetapkan selama proses berjalan dan secara efektif diteruskan ke pelaksana debugging , sehingga dengan cepat mengirimkan status dan berbagai informasi program selama eksekusi untuk membantu pengembang men-debug program dengan lebih baik dan menemukan masalah dengan cepat. Faktanya, sebelum Visual Studio 2010, Microsoft Visual Stuido telah membantu kami mewarisi alat debugging dengan sangat baik, seperti variabel pemantauan, melihat tumpukan, dll., dan memungkinkan pengaturan breakpoint untuk debugging satu langkah, dll. Semua ini sangat membantu pengembang untuk memahami status program dalam proses eksekusi yang berbeda dan mendeteksi terlebih dahulu apakah program tersebut berjalan sesuai dengan logika sebenarnya. Dan terlebih lagi, kita dapat menemukan masalahnya dengan memantau status program setelah breakpoint. Masalahnya adalah beberapa kesalahan logika mungkin terjadi sebelum breakpoint dijalankan, dan mungkin tidak dapat dilacak. Pengembang harus menghentikan proses debug saat ini, menyetel ulang titik henti sementara, dan memulai proses debug, dan proses eksperimental ini sering kali memerlukan waktu berkali-kali untuk menemukan lokasi yang tepat guna menyetel titik henti sementara. IntelliTrace secara cerdas secara otomatis melacak dan menampilkan beberapa informasi debug dan status program kepada pengembang, sehingga mengurangi kebutuhan pemrogram untuk menemukan titik henti sementara yang sesuai untuk melacak dan memantau status program yang berjalan.
Visual Studio memberi kita dua cara untuk mengontrol sumber konten informasi yang dikumpulkannya. Yang pertama adalah peristiwa IntelliTrace saja, yang hanya mengumpulkan data terkait peristiwa penelusuran cerdas dan interupsi debugging; yang lainnya adalah peristiwa IntelliTrace dan informasi panggilan, yang akan mengumpulkan data selain IntelliTrace Berbagai data masuk dan keluar dari pemanggilan metode di luar peristiwa. Mari kita lihat cara mengatur opsi penelusuran IntelliTrace di Visual Studio 2010.
Buka Alat-->Opsi-->IntelliTrace. Ini diaktifkan secara default, namun hanya menangkap peristiwa karena biaya menangkap peristiwa itu murah. Namun, saat Anda mulai melacak semua informasi panggilan ini, nilai sebenarnya mulai terlihat. Setiap kali Anda melakukan debug, IntelliTrace akan muncul. Anda dapat menggunakan alat debugging historis ini selama debugging dinamis. Katakanlah saya ada di sana dan saya memiliki breakpoint, tetapi saya ingin membuat cadangan dan mendesain ulang breakpoint ini, saya dapat menggunakan IntelliTrace untuk menyelesaikan tugas ini.
Orang lain yang telah menangkap proses debugging mereka menggunakan IntelliTrace dapat mengirimi Anda rekaman dan file .dlls dan pdbs, dan Anda dapat memutar ulang prosesnya. Prosesnya mungkin masuk ke database (Anda tidak memiliki database), mungkin diatur sedemikian rupa sehingga Anda tidak dapat menyalinnya, mungkin berada di jaringan yang tidak dapat Anda jangkau, namun, Anda tidak memilikinya. Tidak perlu khawatir karena Anda memiliki catatan dan file .dlls dan pdbs yang dapat Anda putar ulang.
Tentu saja, lebih baik memiliki kode sumbernya, karena Anda dapat melihat kode tersebut seolah-olah Anda sedang men-debugnya di mesin Anda sendiri. Ini bagus untuk gangguan misterius yang berfungsi dengan baik pada mesin Anda tetapi tidak pada mesin orang lain. Ini juga sangat bagus untuk situasi multi-utas, dan saat Anda membuka aplikasi, kesalahan perangkat lunak akan hilang, tetapi saat berjalan pada kecepatan normal, kesalahan perangkat lunak muncul lagi.
Secara default, IntelliTrace hanya mengumpulkan kejadian terkait IntelliTrace. Hal ini untuk menjaga data yang dikumpulkan tetap kecil dan dampaknya terhadap kinerja minimal. Ketika Anda memilih untuk juga mengumpulkan data pada pemanggilan metode, selain peningkatan ruang yang ditempati oleh data yang dikumpulkan sementara, dampaknya terhadap kinerja juga lebih besar. Meskipun rincian yang dikumpulkan berbeda-beda, kedua metode mengumpulkan beberapa data yang sama. Misalnya, ia akan selalu mengumpulkan informasi sistem saat proses pengumpulan dimulai untuk pertama kalinya, peristiwa bongkar muat modul, waktu mulai dan berakhirnya thread, dll. Saat peristiwa modul dan thread terjadi, informasi jendela debugging modul dan thread dapat diperbarui dengan benar. Selain itu, dalam mode apa pun, data juga akan dikumpulkan pada titik henti sementara debugging, dan tipe data dasar serta objek yang dikumpulkan akan diperiksa dan ditinjau selama debugging, dan nilainya akan diizinkan untuk diubah.
Secara umum, debugger IntelliTrace dibuat khusus untuk pengembang program. Melalui fungsi debugging historisnya yang unik, debugger ini memberi pengembang fungsi kontrol proses penelusuran penyesalan. Misalnya, apa yang harus saya lakukan jika pengecualian terjadi 10 menit yang lalu dalam program selama pengembangan? Jika dulu biasanya dilakukan dengan memanggil pernyataan Debug.Write secara manual, sekarang tidak perlu! Karena fungsi debug historis di banyak alat pengembangan sangat mirip, melalui IntelliTrace dalam versi resmi VS2010, pemrogram tidak hanya dapat melihat status program saat ini, tetapi juga memeriksa peristiwa yang dihasilkan dalam keadaan tertentu, dan bahkan Mengisolasi titik kegagalan di riwayat aplikasi. Oleh karena itu, setelah mengaktifkan debugging historis, versi resmi VS2010 dapat menangkap tumpukan panggilan dan variabel terkait. Kita dapat kembali ke 10 menit atau lebih sebelum program disimpan untuk memeriksa berbagai situasi ketika terjadi pengecualian dan kegagalan dalam program. Karena secara default program hanya menyimpan tipe kunci, pengembang dapat memilih untuk mencatat semua parameter, objek, dan variabel global. Oleh karena itu, IntelliTrace akan secara aktif menampilkan peristiwa penting selama program berjalan, seperti pengecualian kode, akses file, debugging waktu nyata, dll.