IntelliTrace untuk Visual Studio Enterprise (C#, Visual Basic, C++)

Anda dapat menghabiskan lebih sedikit waktu untuk menelusuri kesalahan aplikasi saat menggunakan IntelliTrace untuk merekam dan melacak riwayat eksekusi kode Anda. Anda dapat menemukan bug dengan mudah karena IntelliTrace memungkinkan Anda:

  • Merekam peristiwa tertentu

  • Memeriksa kode terkait, data yang muncul di jendela Lokal selama peristiwa debugger, dan informasi panggilan fungsi

  • Kesalahan debug yang sulit direproduksi atau yang terjadi dalam penyebaran

Anda dapat menggunakan IntelliTrace di edisi Visual Studio Enterprise (tetapi, bukan edisi Profesional atau Komunitas).

Apa yang ingin Anda lakukan?

Skenario Judul
Debug aplikasi saya dengan IntelliTrace:

- Tunjukkan padaku kejadian masa lalu.
- Tunjukkan informasi panggilan dengan peristiwa masa lalu.
- Simpan sesi IntelliTrace saya.
- Kontrol data yang dikumpulkan IntelliTrace.
- Memeriksa status aplikasi sebelumnya menggunakan IntelliTrace
- Panduan: Menggunakan IntelliTrace
- IntelliTrace Features
- Penelusuran Kesalahan Historis
Mengumpulkan data IntelliTrace dari aplikasi yang disebarkan - Menggunakan pengumpul mandiri IntelliTrace
Mulai penelusuran kesalahan dari file log IntelliTrace (file.iTrace). - Menggunakan data IntelliTrace yang disimpan

Aplikasi apa yang dapat saya debug dengan IntelliTrace?

Tingkat dukungan Tipe aplikasi
Dukungan penuh - aplikasi Visual Basic dan Visual C# yang menggunakan .NET Framework 2.0 atau versi yang lebih tinggi.
Anda dapat men-debug sebagian besar aplikasi, termasuk aplikasi ASP.NET, Microsoft Azure, Formulir Windows, WCF, WPF, Windows Workflow, SharePoint 2010, SharePoint 2013, dan 64-bit.
Untuk men-debug aplikasi SharePoint dengan IntelliTrace, lihat Panduan: Men-debug Aplikasi SharePoint dengan Menggunakan IntelliTrace.
Untuk men-debug aplikasi Microsoft Azure dengan IntelliTrace, lihat Men-debug Layanan Cloud yang Diterbitkan dengan IntelliTrace dan Visual Studio.
Dukungan terbatas - Aplikasi C++ yang menargetkan Windows mendukung tampilan snapshot menggunakan langkah mundur IntelliTrace. Hanya peristiwa debugger dan pengecualian yang didukung.
- Aplikasi .NET Core dan ASP.NET Core hanya didukung untuk peristiwa tertentu (peristiwa Pengontrol MVC, ADO.NET, dan HTTPClient) dalam penelusuran kesalahan lokal. Pengumpul Mandiri tidak didukung untuk aplikasi .NET Core atau ASP.NET Core.
- Aplikasi F# secara eksperimental
- Aplikasi UWP hanya didukung untuk peristiwa
Tidak didukung - Bahasa dan skrip lainnya
- Aplikasi Windows Services, Silverlight, Xbox, atau Windows Mobile

Catatan

Jika Anda ingin men-debug proses yang sudah berjalan, Anda hanya dapat mengumpulkan peristiwa IntelliTrace (tidak ada informasi panggilan). Anda hanya dapat melampirkan ke proses 32-bit atau 64-bit pada komputer lokal. Peristiwa yang terjadi sebelum Anda melampirkan ke proses tidak dikumpulkan.

Mengapa men-debug dengan IntelliTrace?

Penelusuran kesalahan tradisional atau langsung hanya menampilkan status aplikasi Anda saat ini, dengan data terbatas tentang peristiwa sebelumnya. Anda harus menyimpulkan peristiwa ini berdasarkan status aplikasi saat ini, atau Anda harus membuat ulang peristiwa ini dengan menjalankan ulang aplikasi Anda.

IntelliTrace memperluas pengalaman penelusuran kesalahan tradisional ini dengan merekam peristiwa dan data tertentu pada titik-titik waktu ini. Ini memungkinkan Anda melihat apa yang terjadi dalam aplikasi Anda tanpa memulai ulang aplikasi, terutama jika Anda melewati tempat bug berada. IntelliTrace diaktifkan secara default selama penelusuran kesalahan tradisional dan mengumpulkan data secara otomatis dan tak terlihat. Ini memungkinkan Anda beralih dengan mudah antara penelusuran kesalahan tradisional dan penelusuran kesalahan IntelliTrace untuk melihat informasi yang direkam. Lihat Fitur IntelliTrace dan Data apa yang dikumpulkan IntelliTrace?

IntelliTrace juga dapat membantu Anda men-debug kesalahan yang sulit direproduksi atau yang terjadi dalam penyebaran. Anda dapat mengumpulkan data IntelliTrace dan menyimpannya ke file log IntelliTrace (file.iTrace). File .iTrace berisi detail tentang pengecualian, peristiwa performa, Permintaan web, data pengujian, utas, modul, dan informasi sistem lainnya. Anda dapat membuka file ini di Visual Studio Enterprise, memilih item, dan memulai penelusuran kesalahan dengan IntelliTrace. Ini memungkinkan Anda membuka peristiwa apa pun dalam file dan melihat detail spesifik tentang aplikasi Anda pada saat itu.

Anda dapat menyimpan data IntelliTrace dari sumber-sumber ini:

  • Sesi IntelliTrace di Visual Studio 2015 Enterprise atau versi yang lebih baru, atau versi Visual Studio Ultimate sebelumnya.

  • ASP.NET aplikasi web yang dihosting di IIS, atau aplikasi SharePoint yang berjalan dalam penyebaran saat Anda menggunakan Microsoft Monitoring Agent, baik sendiri maupun dengan System Center 2012. Lihat Menggunakan pengumpul mandiri IntelliTrace dan Pemantauan dengan Microsoft Monitoring Agent.

    Penting

    Penggunaan Microsoft Monitoring Agent (MMA) dengan IntelliTrace tidak lagi didukung ketika Microsoft Monitoring Agent mencapai akhir masa pakai pada 31 Agustus 2024. Untuk informasi selengkapnya, lihat Migrasi ke Agen Azure Monitor dari agen Analitik Log.

Berikut adalah beberapa contoh bagaimana IntelliTrace dapat membantu Anda melakukan penelusuran kesalahan:

  • Aplikasi Anda telah merusak file data, tetapi Anda tidak tahu tempat peristiwa ini terjadi.

    Tanpa IntelliTrace, Anda harus melihat melalui kode untuk menemukan semua kemungkinan akses file, menempatkan titik henti pada akses tersebut, dan menjalankan ulang aplikasi Anda untuk menemukan tempat masalah terjadi. Dengan IntelliTrace, Anda dapat melihat semua peristiwa akses file yang dikumpulkan dan detail spesifik tentang aplikasi Anda saat setiap peristiwa terjadi.

  • Pengecualian terjadi.

    Tanpa IntelliTrace, Anda mendapatkan pesan tentang pengecualian tetapi Anda tidak memiliki banyak informasi tentang peristiwa yang menyebabkan pengecualian. Anda dapat memeriksa tumpukan panggilan untuk melihat rantai panggilan yang mengarah ke pengecualian, tetapi Anda tidak dapat melihat urutan peristiwa yang terjadi selama panggilan tersebut. Dengan IntelliTrace, Anda dapat memeriksa peristiwa yang terjadi sebelum pengecualian.

  • Bug atau crash terjadi dalam aplikasi yang disebarkan.

    Untuk aplikasi berbasis Microsoft Azure, Anda dapat mengonfigurasi pengumpulan data IntelliTrace sebelum menerbitkan aplikasi. Saat aplikasi Anda berjalan, IntelliTrace menyimpan data ke file .iTrace. Lihat Men-debug Layanan Cloud yang Diterbitkan dengan IntelliTrace dan Visual Studio.

    Untuk aplikasi web ASP.NET yang dihosting di IIS 7.0, 7.5, dan 8.0, dan SharePoint 2010 atau SharePoint 2013, gunakan Microsoft Monitoring Agent, baik sendiri maupun dengan System Center 2012, untuk menyimpan data IntelliTrace ke file .iTrace.

    Ini berguna saat Anda ingin mendiagnosis masalah dengan aplikasi dalam penyebaran. Lihat Menggunakan pengumpul mandiri IntelliTrace.

Data apa yang dikumpulkan IntelliTrace?

Mengumpulkan informasi peristiwa

Secara default, IntelliTrace hanya merekam peristiwa IntelliTrace: peristiwa debugger, pengecualian, peristiwa .NET Framework, dan peristiwa sistem lainnya yang dapat membantu Anda melakukan penelusuran kesalahan. Anda dapat memilih jenis peristiwa IntelliTrace yang ingin Anda kumpulkan, kecuali untuk peristiwa dan pengecualian debugger, yang selalu dikumpulkan. Lihat Fitur IntelliTrace.

  • Peristiwa debugger

    IntelliTrace selalu merekam peristiwa yang terjadi di Visual Studio debugger. Misalnya, memulai aplikasi Anda adalah peristiwa debugger. Peristiwa debugger lainnya menghentikan peristiwa, yang menyebabkan aplikasi Anda memutuskan eksekusi. Misalnya, program Anda mencapai titik henti, mencapai titik pelacakan, atau menjalankan perintah Langkah.

    Secara default, untuk membantu performa, IntelliTrace tidak merekam setiap nilai yang mungkin untuk peristiwa debugger. Sebaliknya, ia merekam nilai-nilai ini:

    • Nilai di jendela Lokal. Biarkan jendela Lokal terbuka untuk melihat nilai-nilai ini.

    • Nilai di jendela Otomatis hanya jika jendela Otomatis terbuka

    • Nilai di DataTip yang muncul saat Anda memindahkan penunjuk mouse di atas variabel di jendela sumber untuk melihat nilainya. IntelliTrace tidak mengumpulkan nilai dalam DataTip yang disematkan.

      Saat peristiwa IntelliTrace dan mode Snapshot diaktifkan, IntelliTrace akan mengambil snapshot dari proses aplikasi di setiap titik henti debugger dan peristiwa Langkah. Ini akan merekam nilai di jendela Lokal, Otomatis, dan Pengawasan, terlepas dari apakah jendela terbuka atau tidak. Nilai dalam tips data yang disematkan juga akan dikumpulkan.

  • Pengecualian

    IntelliTrace merekam jenis pengecualian dan pesan untuk jenis pengecualian ini:

    • Pengecualian yang ditangani ketika pengecualian diberikan dan diterima

    • Pengecualian yang Tidak Tertangani

  • Peristiwa .NET Framework

    Secara default, IntelliTrace merekam peristiwa .NET Framework yang paling umum. Misalnya, untuk peristiwa CheckBox.CheckedChanged, IntelliTrace mengumpulkan teks dan status kotak centang.

  • Peristiwa aplikasi SharePoint 2010 dan SharePoint 2013

    Anda dapat merekam peristiwa profil pengguna dan subset peristiwa Unified Logging System (ULS) untuk aplikasi SharePoint 2010 dan 2013 yang berjalan di luar Visual Studio. Anda dapat menyimpan peristiwa ini ke file .iTrace. Memerlukan Visual Studio Enterprise 2015 atau versi yang lebih baru, versi sebelumnya dari Visual Studio Ultimate, atau Microsoft Monitoring Agent yang berjalan dalam mode Pelacakan.

    Saat Anda membuka file .iTrace, masukkan ID korelasi SharePoint untuk menemukan permintaan web yang cocok, melihat peristiwa yang direkam, dan mulai penelusuran kesalahan dari peristiwa tertentu. Jika file berisi pengecualian yang tidak tertangani, Anda dapat memilih ID korelasi untuk mulai men-debug pengecualian.

    Lihat:

Mengambil snapshot

Anda dapat mengonfigurasi IntelliTrace untuk mengambil snapshot di setiap titik henti dan peristiwa langkah debugger. IntelliTrace merekam status aplikasi lengkap di setiap snapshot, yang memungkinkan Anda melihat variabel kompleks dan mengevaluasi ekspresi.

Catatan

Kolektor berdiri sendiri IntelliTrace tidak mendukung pengambilan snapshot.

Lihat Memeriksa status aplikasi sebelumnya menggunakan IntelliTrace.

Mengumpulkan informasi panggilan fungsi

Anda dapat mengonfigurasi IntelliTrace untuk mengumpulkan informasi panggilan untuk fungsi. Informasi ini memungkinkan Anda melihat riwayat tumpukan panggilan dan memungkinkan Anda melangkah mundur dan meneruskan melalui panggilan dalam kode. Untuk setiap panggilan fungsi, IntelliTrace merekam data ini:

  • Nama fungsi
  • Nilai jenis data primitif diteruskan sebagai parameter pada titik masuk fungsi dan dikembalikan di titik keluar fungsi
  • Nilai properti otomatis saat dibaca atau diubah
  • Penunjuk ke objek turunan tingkat pertama, tetapi bukan nilainya selain jika objek tersebut null atau tidak

Catatan

IntelliTrace hanya mengumpulkan 256 objek pertama dalam array dan 256 karakter pertama untuk string.

Lihat Memeriksa aplikasi Anda dengan penelusuran kesalahan historis.

Mengumpulkan informasi modul

Untuk mengontrol berapa banyak informasi panggilan yang dikumpulkan IntelliTrace, tentukan hanya modul yang Anda pedulikan. Ini dapat membantu meningkatkan performa aplikasi Anda selama pengumpulan. Lihat bagian Mengontrol berapa banyak informasi yang Dikumpulkan IntelliTrace di fitur IntelliTrace.

Apakah IntelliTrace akan memperlambat aplikasi saya?

Secara default, IntelliTrace hanya mengumpulkan data untuk peristiwa IntelliTrace yang dipilih. Ini mungkin atau mungkin tidak memperlambat aplikasi Anda, tergantung pada struktur dan organisasi kode Anda. Misalnya, jika IntelliTrace sering merekam peristiwa, ini mungkin memperlambat aplikasi Anda. Ini mungkin juga membuat Anda mempertimbangkan untuk merefaktor aplikasi Anda.

Mengumpulkan informasi panggilan mungkin memperlambat aplikasi Anda secara signifikan. Ini juga dapat meningkatkan ukuran file log IntelliTrace (file.iTrace) yang Anda simpan ke disk. Untuk meminimalkan efek ini, kumpulkan informasi panggilan hanya untuk modul yang Anda pedulikan. Untuk mengubah ukuran maksimum file .iTrace Anda, buka Alat, Opsi, IntelliTrace, Tingkat Lanjut.

Blog

Microsoft DevOps

Forum

Diagnostik Visual Studio