Target Jarak Jauh

Ada dua bentuk penelusuran kesalahan jarak jauh yang berbeda, tergantung pada komputer mana (klien jarak jauh atau server) adalah komputer host. Komputer host adalah komputer tempat mesin debugger aktif. Di komputer lain, mesin debugger hanya bertindak sebagai perintah dan data relai proksi ke mesin host.

Semua operasi debugger -- seperti menjalankan perintah dan ekstensi, dan pemuatan simbol -- dilakukan oleh mesin host. Sesi debugger juga relatif terhadap mesin host.

Untuk mencantumkan server debugging dan server proses yang saat ini berjalan di komputer, gunakan OutputServers.

Debugging Server dan Debugging Clients

Server penelusuran kesalahan adalah instans mesin debugger yang bertindak sebagai host dan mendengarkan koneksi dari klien penelusuran kesalahan. Metode StartServer akan memberi tahu mesin debugger untuk mulai mendengarkan koneksi dari klien penelusuran kesalahan.

Klien penelusuran kesalahan adalah instans mesin debugger yang bertindak sebagai proksi, mengirim perintah debugger dan I/O ke server debugging. Fungsi DebugConnect dapat digunakan untuk menyambungkan ke server penelusuran kesalahan.

Objek klien yang dikembalikan oleh DebugConnect tidak secara otomatis bergabung ke sesi debugger di server debugging. Metode ConnectSession dapat digunakan untuk bergabung dengan sesi, menyinkronkan input dan output.

Komunikasi antara server debugging dan klien debugging sebagian besar terdiri dari perintah debugger dan panggilan RPC yang dikirim ke server, dan output perintah yang dikirim kembali ke klien.

Server Proses, Server Koneksi Kernel, dan Klien Cerdas

Server proses dan server koneksi kernel adalah instans mesin debugger yang bertindak sebagai proksi, mendengarkan koneksi dari klien pintar, dan melakukan operasi memori, prosesor, atau sistem operasi seperti yang diminta oleh klien jarak jauh ini. Server proses memfasilitasi penelusuran kesalahan proses yang berjalan di komputer yang sama. Server koneksi kernel memfasilitasi penelusuran kesalahan target penelusuran kesalahan kernel Windows yang tersambung ke komputer yang menjalankan server koneksi. Server proses dapat dimulai menggunakan metode StartProcessServer atau program DbgSrv. Metode WaitForProcessServerEnd akan menunggu server proses dimulai dengan StartProcessServer hingga akhir. Server koneksi kernel dapat diaktifkan menggunakan program KdSrv.

Klien cerdas adalah instans mesin debugger yang bertindak sebagai mesin host dan terhubung ke server proses. Metode ConnectProcessServer akan terhubung ke server proses. Setelah terhubung, metode yang dijelaskan dalam Target User-Mode Langsung dapat digunakan.

Ketika klien jarak jauh selesai dengan server proses, klien dapat memutuskan sambungan menggunakan DisconnectProcessServer, atau dapat menggunakan EndProcessServer untuk meminta agar server proses dimatikan. Untuk mematikan server proses dari komputer yang dijalankannya, gunakan Pengelola Tugas untuk mengakhiri proses. Jika instans mesin debugger yang menggunakan StartProcessServer masih berjalan, instans dapat menggunakan Jalankan untuk mengeluarkan perintah debugger .endsrv 0, yang akan mengakhiri server proses (ini adalah pengecualian untuk perilaku biasa .endsrv, yang umumnya tidak memengaruhi server proses).

Komunikasi antara server proses dan klien cerdas biasanya terdiri dari memori tingkat rendah, prosesor, dan operasi sistem operasi dan permintaan yang dikirim dari klien jarak jauh ke server. Hasilnya kemudian dikirim kembali ke klien.