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 debugger dapat men-debug beberapa target, secara bersamaan. Sesi debugging dimulai ketika mesin memperoleh target dan berlanjut hingga semua target dihapus. Sesi penelusuran kesalahan tidak dapat diakses saat target sedang berjalan dan dapat diakses ketika target saat ini dihentikan sementara. Mesin hanya dapat digunakan untuk memeriksa dan memanipulasi target saat sesi dapat diakses.
Perulangan utama debugger biasanya terdiri dari pengaturan status eksekusi, memanggil metode WaitForEvent dan menangani peristiwa yang dihasilkan. Ketika WaitForEvent dipanggil, sesi menjadi tidak dapat diakses.
Ketika peristiwa terjadi dalam target, mesin menangguhkan semua target dan sesi menjadi dapat diakses. Mesin kemudian memberi tahu panggilan balik peristiwa dan mengikuti aturan filter peristiwa. Panggilan balik dan filter peristiwa menentukan bagaimana eksekusi pada target harus dilanjutkan. Jika mereka menentukan bahwa mesin harus masuk ke debugger, metode WaitForEvent kembali dan sesi tetap dapat diakses; jika tidak, mesin akan melanjutkan eksekusi target dengan cara yang ditentukan oleh panggilan balik peristiwa dan filter peristiwa, dan sesi menjadi tidak dapat diakses lagi.
Selama durasi panggilan WaitForEvent--khususnya, sambil memberi tahu panggilan balik peristiwa dan memproses aturan filter--mesin dalam keadaan disebut sebagai "di dalam tunggu". Sementara dalam keadaan ini, WaitForEvent tidak dapat dipanggil (tidak masuk kembali).
Ada dua langkah yang terlibat dalam memulai eksekusi dalam target: mengatur status eksekusi, lalu memanggil WaitForEvent. Status eksekusi dapat diatur menggunakan metode SetExecutionStatus atau dengan menjalankan perintah debugger yang mengatur status eksekusi--misalnya, g(Go) dan p (Langkah).
Jika urutan perintah debugger dijalankan bersama---misalnya, "g ; ? @$ip"--an implisit tunggu akan terjadi setelah perintah apa pun yang memerlukan eksekusi dalam target jika perintah tersebut bukan perintah terakhir dalam urutan. Penantian implisit tidak dapat terjadi ketika mesin debugger berada dalam status "di dalam tunggu"; dalam hal ini, eksekusi perintah akan berhenti dan perintah saat ini--yang mencoba menyebabkan tunggu implisit--akan ditafsirkan sebagai indikasi bagaimana eksekusi dalam target harus dilanjutkan. Sisa perintah akan dibuang.
Catatan Saat menentukan apakah sesi dapat diakses atau tidak dapat diakses, eksekusi terbatas target (misalnya, melangkah) dianggap sebagai eksekusi oleh mesin. Ketika eksekusi terbatas selesai, sesi menjadi dapat diakses.
Mesin Host
Saat men-debug dari jarak jauh, Anda dapat menggunakan beberapa instans mesin debugger. Tepat salah satu instans ini mempertahankan sesi debugging; instans ini disebut mesin host .
Semua operasi debugger relatif terhadap mesin host, misalnya, pemuatan simbol dan pemuatan ekstensi.