Antarmuka ICorDebugEval
Menyediakan metode untuk mengaktifkan debugger guna menjalankan kode dalam konteks kode yang sedang didebug.
Metode
Metode | Deskripsi |
---|---|
Metode Batalkan | Membatalkan komputasi objek ICorDebugEval ini yang saat ini dijalankan. |
Metode CallFunction | Menyiapkan panggilan ke fungsi yang ditentukan. (Usang dalam .NET Framework versi 2.0; gunakan ICorDebugEval2::CallParameterizedFunction sebagai gantinya.) |
Metode CreateValue | Mendapatkan pointer antarmuka ke objek “ICorDebugValue” dari jenis yang ditentukan, dengan nilai awal nol atau null. (Usang di .NET Framework 2.0; gunakan ICorDebugEval2::CreateValueForType sebagai gantinya.) |
Metode GetResult | Mendapatkan pointer antarmuka ke ICorDebugValue yang memuat hasil evaluasi. |
Metode GetThread | Mendapatkan pointer antarmuka ke “ICorDebugThread” tempat evaluasi ini dijalankan atau akan dijalankan. |
Metode IsActive | Mendapatkan nilai yang menunjukkan apakah objek ICorDebugEval ini saat ini sedang dijalankan. |
Metode NewArray | Mengalokasikan array baru dari jenis dan dimensi elemen yang ditentukan. (Usang di .NET Framework 2.0; gunakan ICorDebugEval2::NewParameterizedArray sebagai gantinya.) |
Metode NewObject | Mengalokasikan instans objek baru dan memanggil metode konstruktor yang ditentukan. (Usang di .NET Framework 2.0; gunakan ICorDebugEval2::NewParameterizedObject sebagai gantinya.) |
Metode NewObjectNoConstructor | Mengalokasikan instans objek baru dari jenis yang ditentukan, tanpa mencoba memanggil metode konstruktor. (Usang di .NET Framework 2.0; gunakan ICorDebugEval2::NewParameterizedObjectNoConstructor sebagai gantinya.) |
Metode NewString | Mengalokasikan objek string baru dengan konten yang ditentukan. |
Keterangan
Objek ICorDebugEval
dibuat dalam konteks alur tertentu yang digunakan untuk melakukan evaluasi. Semua objek dan jenis yang digunakan dalam evaluasi tertentu harus berada dalam domain aplikasi yang sama. Domain aplikasi tersebut tidak perlu sama dengan domain aplikasi alur saat ini. Evaluasi dapat disarangkan.
Operasi evaluasi tidak selesai sampai debugger memanggil ICorDebugController::Continue, lalu menerima panggilan balik ICorDebugManagedCallback::EvalComplete. Jika Anda perlu menggunakan fungsi evaluasi tanpa mengizinkan alur lain berjalan, tangguhkan alur dengan menggunakan ICorDebugController::SetAllThreadsDebugState atau ICorDebugController::Stop sebelum memanggil ICorDebugController::Continue.
Karena kode pengguna berjalan saat evaluasi sedang berlangsung, setiap peristiwa debug dapat terjadi, termasuk beban kelas dan titik henti. Debugger akan menerima panggilan balik, seperti biasa, untuk peristiwa ini. Keadaan evaluasi akan dilihat sebagai bagian dari pemeriksaan status program normal. Rantai tumpukan akan menjadi rantai CHAIN_FUNC_EVAL
(lihat enumerasi “CorDebugStepReason” dan metode ICorDebugChain::GetReason). API debugger penuh akan terus beroperasi seperti biasa.
Jika situasi perulangan yang mengalami kebuntuan atau tidak terbatas muncul, kode pengguna mungkin tidak pernah selesai. Dalam kasus seperti itu, Anda harus memanggil ICorDebugEval::Abort sebelum melanjutkan program.
Catatan
Antarmuka ini tidak mendukung panggilan jarak jauh, baik lintas mesin maupun lintas proses.
Persyaratan
Platform: Lihat Persyaratan Sistem.
Header: CorDebug.idl, CorDebug.h
Pustaka: CorGuids.lib
Versi .NET Framework: Tersedia mulai dari versi 1.0