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.
Mesin debug (DE) bekerja dengan interpreter atau sistem operasi untuk menyediakan layanan debugging seperti kontrol eksekusi, titik henti, dan evaluasi ekspresi. DE bertanggung jawab untuk memantau status program yang sedang di-debug. Untuk melakukan ini, DE menggunakan metode apa pun yang tersedia untuknya dalam runtime yang didukung, baik dari CPU atau dari API yang disediakan oleh runtime.
Misalnya, runtime bahasa umum (CLR) menyediakan mekanisme untuk memantau program yang sedang berjalan melalui antarmuka ICorDebugXXX. DE yang mendukung CLR menggunakan antarmuka ICorDebugXXX yang sesuai untuk melacak program kode terkelola yang sedang di-debug. Kemudian mengomunikasikan setiap perubahan status ke manajer debug sesi (SDM), yang meneruskan informasi tersebut ke Visual Studio IDE.
Nota
Mesin debug menargetkan runtime tertentu, yaitu sistem tempat program di-debug berjalan. CLR adalah runtime untuk kode terkelola, dan runtime Win32 adalah untuk aplikasi Windows asli. Jika bahasa yang Anda buat dapat menargetkan salah satu dari dua runtime ini, Visual Studio sudah menyediakan mesin debug yang diperlukan. Yang perlu Anda implementasikan adalah pengurai ekspresi.
Operasi mesin debug
Layanan pemantauan diimplementasikan melalui antarmuka DE dan dapat menyebabkan paket debug beralih antara mode operasional yang berbeda. Untuk informasi selengkapnya, lihat Mode operasional. Biasanya hanya ada satu implementasi DE per lingkungan run-time.
Nota
Meskipun ada implementasi DE terpisah untuk Transact-SQL dan JScript, VBScript, dan JScript berbagi satu DE.
Debugging Visual Studio memungkinkan mesin debug dapat berjalan dengan dua cara: baik dalam proses yang sama dengan Visual Studio shell, atau dalam proses yang sama dengan program target yang sedang di-debug. Bentuk terakhir biasanya terjadi ketika proses yang di-debug sebenarnya adalah skrip yang berjalan di bawah penerjemah. Mesin debug harus memiliki pengetahuan intim tentang penerjemah untuk memantau skrip. Dalam hal ini, penerjemah sebenarnya adalah runtime; mesin debug adalah untuk implementasi runtime tertentu. Selain itu, implementasi satu DE dapat dibagi di seluruh batas proses dan mesin (misalnya, penelusuran kesalahan jarak jauh).
DE mengekspos antarmuka penelusuran kesalahan Visual Studio. Semua komunikasi melalui COM. Jika DE dimuat di dalam proses, di luar proses, atau di komputer lain, hal itu tidak memengaruhi komunikasi komponen.
DE bekerja dengan komponen evaluator ekspresi untuk memungkinkan DE pada runtime tertentu memahami sintaks ekspresi. DE juga bekerja dengan komponen handler simbol untuk mengakses informasi debug simbolis yang dihasilkan oleh pengkompilasi bahasa. Untuk informasi selengkapnya, lihat Evaluator ekspresi dan Penyedia simbol.