Bagikan melalui


Pengevaluasi Ekspresi

Evaluator ekspresi (EE) memeriksa sintaks bahasa untuk mengurai dan mengevaluasi variabel dan ekspresi pada waktu proses, memungkinkannya dilihat oleh pengguna saat IDE berada dalam mode jeda.

Menggunakan pengevaluasi ekspresi

Ekspresi dibuat menggunakan metode ParseText , sebagai berikut:

  1. Mesin debug (DE) mengimplementasikan antarmuka IDebugExpressionContext2 .

  2. Paket debug mendapatkan IDebugExpressionContext2 objek dari antarmuka IDebugStackFrame2 dan kemudian memanggil IDebugStackFrame2::ParseText metode di atasnya untuk mendapatkan objek IDebugExpression2 .

  3. Paket debug memanggil metode EvaluateSync atau metode EvaluateAsync untuk mendapatkan nilai ekspresi. IDebugExpression2::EvaluateAsync dipanggil dari jendela Perintah/Segera. Semua komponen UI lainnya memanggil IDebugExpression2::EvaluateSync.

  4. Hasil evaluasi ekspresi adalah objek IDebugProperty2 , yang berisi nama, jenis, dan nilai hasil evaluasi ekspresi.

    Selama evaluasi ekspresi, EE memerlukan informasi dari komponen penyedia simbol. Penyedia simbol menyediakan informasi simbolis yang digunakan untuk mengidentifikasi dan memahami ekspresi yang diurai.

    Ketika evaluasi ekspresi asinkron selesai, peristiwa asinkron dikirim oleh DE melalui manajer debug sesi (SDM) untuk memberi tahu IDE bahwa evaluasi ekspresi selesai. Dan, hasil evaluasi kemudian dikembalikan dari pemanggilan metode IDebugExpression2::EvaluateSync.

Catatan implementasi

Mesin debug Visual Studio berharap untuk berbicara dengan evaluator ekspresi menggunakan antarmuka Common Language Runtime (CLR). Akibatnya, evaluator ekspresi yang bekerja dengan mesin debug Visual Studio harus mendukung CLR (daftar lengkap semua antarmuka penelusuran kesalahan CLR dapat ditemukan di debugref.doc, yang merupakan bagian dari Windows Software Development Kit (SDK)).

Lihat juga