Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tracepoints memungkinkan Anda untuk mencatat informasi ke jendela Output dalam kondisi yang dapat dikonfigurasi tanpa memodifikasi atau menghentikan kode Anda. Fitur ini didukung untuk bahasa terkelola (C#, Visual Basic, F#) dan kode asli serta bahasa seperti JavaScript dan Python.
Nota
Untuk informasi tentang informasi pengelogan ke jendela Output secara terprogram menggunakan API .NET, lihat Mengirim pesan ke jendela Output.
Mari kita ambil contoh
Contoh program berikut adalah perulangan sederhana for dengan variabel penghitung yang meningkat satu per satu setiap kali perulangan menjalankan perulangan lain.
using System.Diagnostics;
namespace Tracepoints
{
public class Program
{
public static void Main(string[] args)
{
int counter = 0;
for (int i=0; i<=10; i++)
{
counter +=1;
}
}
}
}
Mengatur titik pelacakan dalam kode sumber
Anda dapat mengatur titik pelacakan dengan menentukan string output di bawah kotak centang Tindakan di jendela Pengaturan Titik Henti .
Untuk menginisialisasi titik pelacakan, pertama-tama klik selokan di sebelah kiri nomor baris tempat Anda ingin mengatur titik pelacakan.
Arahkan mouse ke atas lingkaran merah dan klik ikon gigi untuk membuka jendela Pengaturan Titik Henti .
Pilih kotak centang Tindakan .
Perhatikan bagaimana lingkaran merah berubah menjadi berlian yang menunjukkan bahwa Anda telah beralih dari titik henti ke titik pelacakan.
Masukkan pesan yang ingin Anda masuk ke kotak teks Perlihatkan pesan di Jendela Output (untuk detailnya, lihat bagian selanjutnya di artikel ini).
Titik pelacakan Anda sekarang diatur. Tekan tombol "Tutup" jika yang ingin Anda lakukan adalah mencatat beberapa informasi ke Jendela Output.
Jika Anda ingin menambahkan kondisi yang menentukan apakah pesan Anda ditampilkan, pilih kotak centang Kondisi .
Anda memiliki tiga pilihan untuk kondisi: Ekspresi Bersyarah, Filter, dan Hit Count.
Menu tindakan
Menu ini memungkinkan Anda untuk mencatat pesan ke jendela Output. Ketik string yang ingin Anda keluarkan ke dalam kotak pesan (tidak perlu tanda kutip). Jika Anda ingin menampilkan nilai variabel, pastikan Anda mengapitnya dalam kurung kurawal.
Misalnya, jika Anda ingin menampilkan nilai counter variabel di konsol output, ketik {counter} di kotak teks pesan.
Jika Anda mengklik Tutup lalu debug program (F5), Anda akan melihat output berikut di jendela Output.
Anda juga dapat menggunakan kata kunci khusus untuk menampilkan informasi yang lebih spesifik. Masukkan kata kunci persis seperti yang ditunjukkan di bawah ini (gunakan "$" di depan setiap kata kunci dan semua batas untuk kata kunci itu sendiri).
| Keyword | Apa yang Ditampilkan |
|---|---|
$ADDRESS |
Instruksi saat ini |
$CALLER |
Nama fungsi panggilan |
$CALLSTACK |
Tumpukan panggilan |
$FUNCTION |
Nama fungsi saat ini |
$PID |
ID Proses |
$PNAME |
Nama proses |
$TID |
ID Utas |
$TNAME |
Nama utas |
$TICK |
Jumlah centang (dari Windows GetTickCount) |
Menu kondisi
Kondisi memungkinkan Anda memfilter pesan output Anda, sehingga hanya ditampilkan dalam skenario tertentu. Ada tiga jenis kondisi utama yang tersedia untuk Anda.
Ekspresi kondisional
Untuk ekspresi bersyarah, pesan output hanya ditampilkan saat kondisi tertentu terpenuhi.
Untuk ekspresi bersyarah, Anda dapat mengatur titik pelacakan untuk menghasilkan pesan saat kondisi tertentu benar atau ketika telah berubah. Misalnya, jika Anda hanya ingin menampilkan nilai penghitung selama perulangan perulangan yang merata for , Anda dapat memilih opsi Is true lalu ketik i%2 == 0 di kotak teks pesan.
Jika Anda ingin mencetak nilai penghitung saat perulangan perulangan for berubah, pilih opsi Saat diubah dan ketik i di kotak teks pesan.
Perilaku opsi Saat diubah berbeda untuk bahasa pemrograman yang berbeda.
- Untuk kode asli, debugger tidak menganggap evaluasi pertama kondisi adalah perubahan, sehingga tidak mencapai titik jejak pada evaluasi pertama.
- Untuk kode terkelola, debugger mencapai titik pelacakan pada evaluasi pertama setelah Ketika diubah dipilih.
Anda juga dapat mengatur kondisi saat titik pelacakan dapat diaktifkan dengan menyisipkan Titik Henti ke bagian kode tertentu dan memilih kotak centang Hanya aktifkan saat titik henti berikut ini tertembak: opsi di menu Pengaturan Titik Henti . Anda dapat memilih titik henti apa pun dari daftar pilihan.
Untuk melihat ekspresi valid yang lebih komprehensif yang dapat Anda gunakan saat mengatur kondisi, lihat Ekspresi di debugger.
Dapatkan bantuan AI
Jika Anda memiliki Copilot, Anda bisa mendapatkan bantuan AI saat membuat titik pelacakan. Copilot memberi Anda saran untuk titik henti bersyarat dan titik pelacakan yang khusus untuk kode Anda.
Untuk informasi selengkapnya, lihat Debug dengan Copilot.
Jumlah Hit
Kondisi hit count memungkinkan Anda mengirim output hanya setelah baris kode tempat titik pelacakan diatur telah menjalankan beberapa kali yang ditentukan.
Untuk hit count, Anda dapat memilih untuk menghasilkan pesan saat baris kode tempat titik pelacakan diatur telah dijalankan beberapa kali. Berdasarkan persyaratan itu bisa sama dengan, atau kelipatan, atau lebih besar dari atau sama dengan nilai hit count yang ditentukan. Pilih opsi yang paling sesuai dengan kebutuhan Anda dan ketik nilai bilangan bulat di bidang (misalnya, 5) yang mewakili iterasi yang menarik.
Anda juga dapat menghapus titik henti pada hit pertama dengan mengaktifkan kotak centang Hapus titik henti setelah ditemui.
Filter
Untuk kondisi filter, tentukan perangkat, proses, atau output utas mana yang ditampilkan.
Daftar ekspresi filter:
-
MachineName= "nama" -
ProcessId= nilai -
ProcessName= "nama" -
ThreadId= nilai -
ThreadName= "nama"
Sertakan string (seperti nama) dalam tanda kutip ganda. Nilai dapat dimasukkan tanpa tanda kutip. Anda dapat menggabungkan klausa menggunakan & (AND), || (OR), ! (NOT), dan tanda kurung.
Pertimbangan
Sementara tracepoint dimaksudkan untuk membuat debugging pengalaman yang lebih bersih, dan lebih lancar. Ada beberapa pertimbangan yang harus Anda ketahui saat menggunakannya.
Terkadang saat Anda memeriksa properti atau atribut objek, nilainya dapat berubah. Jika nilai berubah selama inspeksi, itu bukan bug yang disebabkan oleh fitur tracepoint itu sendiri. Namun, menggunakan titik pelacakan untuk memeriksa objek tidak menghindari modifikasi yang tidak disengaja ini.
Cara ekspresi dievaluasi dalam kotak Pesan tindakan mungkin berbeda dari bahasa yang saat ini Anda gunakan untuk pengembangan. Misalnya, untuk mengeluarkan string, Anda tidak perlu membungkus pesan dalam tanda kutip bahkan jika Anda biasanya menggunakan Debug.WriteLine() atau console.log(). Selain itu, sintaks kurung kurawal ({ }) ke ekspresi output mungkin juga berbeda dari konvensi untuk menghasilkan nilai dalam bahasa pengembangan Anda. (Namun, konten dalam kurung kurawal ({ }) masih harus ditulis menggunakan sintaks bahasa pengembangan Anda).
Jika Anda mencoba men-debug aplikasi langsung, dan mencari fitur serupa, lihat fitur titik log kami di Snapshot Debugger. Debugger rekam jepret adalah alat yang digunakan untuk menyelidiki masalah dalam aplikasi produksi. Titik log juga memungkinkan Anda mengirim pesan ke Jendela Output tanpa harus mengubah kode sumber dan tidak memengaruhi aplikasi yang sedang berjalan. Untuk informasi selengkapnya, lihat Men-debug aplikasi Azure langsung.