Bagikan melalui


Contoh Server Koneksi KD

Misalkan teknisi debug tidak ada di lokasi tempat komputer yang akan di-debug berada. Teknisi debugging meminta seseorang di lokasi ini untuk menyambungkan komputer target ini ke komputer lain dengan kabel debug.

Biarkan komputer lain ini berada di alamat IP 127.0.0.42. Kabel debugging menghubungkan COM1 pada komputer ini ke port mana pun yang telah diaktifkan untuk debugging pada komputer target. Server koneksi KD dimulai dengan perintah ini:

E:\Debugging Tools for Windows> kdsrv -t tcp:port=1027

Kemudian di lokasi lain, teknisi memulai WinDbg sebagai klien pintar dengan perintah ini:

G:\Debugging Tools> windbg -k kdsrv:server=@{tcp:server=127.0.0.42,port=1027},trans=@{com:port=com1,baud=57600} -y SymbolPath

Jalur simbol akan relatif terhadap komputer tempat klien pintar berjalan.

Berikut adalah contoh lain. Dalam hal ini, protokol NPIPE dipilih, dan KD digunakan alih-alih WinDbg. Pengguna pertama memilih nama pipa. Ini bisa berupa string alfanumerik apa pun -- dalam contoh ini, "KernelPipe". Pengguna pertama membuka jendela Prompt Perintah dengan hak akses tinggi (Jalankan sebagai Administrator) dan memulai server debugging dengan memasukkan perintah-perintah berikut:

E:\Debugging Tools for Windows> set _NT_DEBUG_PORT=com1
E:\Debugging Tools for Windows> kdsrv -t npipe:pipe=KernelPipe

Teknisi masuk ke komputer klien dengan akun yang tidak memiliki akses ke komputer server. Tetapi teknisi tahu nama pengguna dan kata sandi untuk akun yang memang memiliki akses ke komputer server. Nama pengguna untuk akun tersebut adalah Contoso. Teknisi memasuki perintah berikut:

net use \\BOX17\ipc$ /user:Contoso

Ketika diminta, teknisi memasukkan kata sandi untuk akun Contoso.

Teknisi tidak yakin nama apa yang digunakan untuk pipa bernama, sehingga mereka meminta 127.0.0.42 untuk server koneksi KD:

G:\Debugging Tools> cdb -QR 127.0.0.42
Servers on 127.0.0.42:
Debugger Server - npipe:Pipe=MainPipe
Remote Process Server - npipe:Pipe=AnotherPipe
Remote Kernel Debugger Server - npipe:Pipe=KernelPipe

Tiga pipa ditampilkan. Namun, hanya satu yang merupakan server koneksi KD -- yang lain adalah server debugging dan server proses mode pengguna. Teknisi dapat memasukkan perintah berikut untuk memulai klien pintar:

G:\Debugging Tools> kd -k kdsrv:server=@{npipe:server=127.0.0.42,pipe=KernelPipe},trans=@{com:baud=57600} -y SymbolPath

Perhatikan bahwa meskipun laju baud ditentukan, port tidak ditentukan. Ini menyebabkan secara default debugger akan menggunakan port yang ditentukan oleh _NT_DEBUG_PORT pada komputer tempat KdSrv berjalan.