Mengaktifkan Klien Cerdas

Setelah server proses DbgSrv diaktifkan, Anda dapat membuat klien pintar di komputer lain dan memulai sesi penelusuran kesalahan.

Ada dua cara untuk memulai klien cerdas: dengan memulai CDB atau WinDbg dengan opsi baris perintah -premote, atau dengan menggunakan antarmuka grafis WinDbg.

Protokol klien pintar harus cocok dengan protokol server proses. Sintaks umum untuk memulai klien pintar tergantung pada protokol yang digunakan. Opsi berikut ini ada:

Debugger -premote npipe:server=Server,pipe=PipeName[,password=Password] [Options]

Debugger -premote tcp:server=Server,port=Socket[,password=Password][,ipversion=6] [Options]

Debugger -premote tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] [Options]

Debugger -premote com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] [Options]

Debugger -premote spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] [Options]

Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] [Options]

Debugger -premote ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] [Options]

Untuk menggunakan antarmuka grafis untuk menyambungkan ke server proses, WinDbg harus dalam mode tidak aktif -- antarmuka harus dimulai tanpa parameter baris perintah, atau harus mengakhiri sesi debugging sebelumnya. Pilih File | Sambungkan ke perintah menu Stub Jarak Jauh . Saat kotak dialog Sambungkan ke Server Stub Jarak Jauh muncul, masukkan salah satu string berikut ini ke dalam kotak teks String koneksi :

npipe:server=Server,pipe=PipeName[,password=Password] 

tcp:server=Server,port=Socket[,password=Password][,ipversion=6] 

tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] 

com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] 

spipe:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,pipe=PipeName[,password=Password] 

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},server=Server,port=Socket[,password=Password] 

ssl:proto=Protocol,{certuser=Cert|machuser=Cert},clicon=Server,port=Socket[,password=Password] 

Atau, Anda dapat menggunakan tombol Telusuri untuk menemukan server proses aktif.

Parameter dalam perintah sebelumnya memiliki nilai yang mungkin berikut:

Debugger
Ini bisa berupa CDB atau WinDbg.

Server
Ini adalah nama jaringan atau alamat IP komputer tempat server proses dibuat. Dua garis miring terbalik awal (\) bersifat opsional pada baris perintah, tetapi tidak diizinkan dalam kotak dialog WinDbg.

pipe=PipeName
Jika protokol NPIPE atau SPIPE digunakan, PipeName adalah nama yang diberikan ke pipa saat server proses dibuat.

Jika Anda tidak masuk ke komputer klien dengan akun yang memiliki akses ke komputer server, Anda harus memberikan nama pengguna dan kata sandi. Di komputer klien, di jendela Prompt Perintah, masukkan perintah berikut.

net use \\Server\ipc$ /user:UserName

di mana Server adalah nama komputer server, dan UserName adalah nama akun yang memiliki akses ke komputer server.

Saat Diminta, masukkan kata sandi untuk UserName.

Setelah perintah ini berhasil, Anda dapat mengaktifkan klien pintar dengan menggunakan opsi baris perintah -premote atau dengan menggunakan antarmuka grafis WinDbg.

Catatan Anda mungkin perlu memfungsikan berbagi berkas dan pencetak pada komputer server. Dalam Panel Kontrol, navigasikan ke pengaturan berbagi Jaringan dan Jaringan Internet > dan Pusat> Berbagi Tingkat Lanjut. Pilih Aktifkan berbagi file dan printer.

port=Soket
Jika protokol TCP atau SSL digunakan, Soket adalah nomor port soket yang sama yang digunakan saat server proses dibuat.

clicon
Menentukan bahwa server proses akan mencoba menyambungkan ke klien pintar melalui koneksi terbalik. Klien harus menggunakan clicon jika dan hanya jika server menggunakan clicon. Dalam kebanyakan kasus, klien pintar dimulai sebelum server proses ketika koneksi terbalik digunakan.

port=COMPort
Jika protokol COM digunakan, COMPort menentukan port COM yang akan digunakan. Awalan "COM" bersifat opsional -- misalnya, "com2" dan "2" dapat diterima.

baud=BaudRate
Jika protokol COM digunakan, BaudRate harus cocok dengan laju baud yang dipilih saat server proses dibuat.

channel=COMChannel
Jika protokol COM digunakan, COMChannel harus cocok dengan nomor saluran yang dipilih saat server proses dibuat.

proto=Protokol
Jika protokol SSL atau SPIPE digunakan, Protokol harus cocok dengan protokol aman yang digunakan saat server proses dibuat.

Cert
Jika protokol SSL atau SPIPE digunakan, Anda harus menggunakan parameter certuser=Cert atau machuser=Cert yang identik yang digunakan saat server proses dibuat.

password=Password
Jika kata sandi digunakan saat server proses dibuat, Kata Sandi harus disediakan untuk membuat klien pintar. Ini harus cocok dengan kata sandi asli. Kata sandi peka huruf besar/kecil. Jika kata sandi yang salah disediakan, pesan kesalahan akan menentukan "Kesalahan 0x80004005."

ipversion=6
(Alat Debugging untuk Windows 6.6.07 dan yang lebih lama saja) Memaksa debugger untuk menggunakan IP versi 6 daripada versi 4 saat menggunakan TCP untuk terhubung ke Internet. Di Windows Vista dan versi yang lebih baru, debugger mencoba default otomatis ke IP versi 6, membuat opsi ini tidak perlu.

Pilihan
Parameter baris perintah tambahan apa pun dapat ditempatkan di sini. Lihat Opsi Baris Perintah untuk daftar lengkap. Jika Anda menggunakan CDB, ini harus menentukan proses yang ingin Anda debug. Jika Anda menggunakan WinDbg, Anda dapat menentukan proses pada baris perintah atau melalui antarmuka grafis.

Karena server proses hanya bertindak sebagai gateway untuk klien pintar, Opsi tambahan akan sama dengan yang akan Anda gunakan jika Anda memulai debugger mode pengguna pada komputer yang sama dengan aplikasi target.

Jika Anda menggunakan opsi -premote dengan .attach (Lampirkan ke Proses) atau .create (Create Process), parameternya sama dengan yang tercantum di atas.

Pemecahan Masalah

Jika Anda melihat pesan ini: Klien tidak menggunakan versi protokol jarak jauh yang sama dengan server , ini menunjukkan bahwa versi DbgSrv yang Anda coba sambungkan menggunakan versi protokol yang berbeda dari versi WinDbg.

Tidak jarang perubahan protokol dilakukan. Ketika ini terjadi, pastikan Anda menggunakan versi yang cocok dari versi terbaru DbgSrv dan WinDbg (Klasik) atau WinDbg. Untuk informasi tentang mengunduh versi terbaru, lihat Alat Debugging untuk Windows.