Remote debuggng involves two debuggers running at two different locations. The debugger that performs the debugging is called the debugging server. The second debugger, called the debugging client, controls the debugging session from a remote location. To establish a remote session, you must set up the debugging server first and then activate the debugging client.
The code that is being debugged could be running on the same computer that is running the debugging server, or it could be running on a separate computer. If the debugging server is performing user-mode debugging, then the process that is being debugged can run on the same computer as the debugging server. If the debugging server is performing kernel-mode debugging, then the code being debugged would typcially run on a separate target computer.
The following diagram illustrates a remote session where the debugging server, running on a host computer, is performing kernel-mode debugging of code that is running on a separate target computer.
There are several transport protocols you can use for a remote debugging connection: TCP, NPIPE, SPIPE, SSL, and COM Port. Suppose you have chosen to use TCP as the protocol and you have chosen to use KD as both the debugging client and the debugging server. You can use the following procedure to establish a remote kernel-mode debugging session:
- On the host computer, open KD and establish a kernel-mode debugging session with a target computer. (See Performing Kernel-Mode Debugging Using KD.)
- Break in by pressing CRTL-Break.
Enter the following command.
Note The port number 5005 is arbitrary. The port number is your choice.
KD will respond with output similar to the following.
Server started. Client can connect with any of these command lines 0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
On the remote computer, open a Command Prompt window, and enter the following command.
kd -remote tcp:Port=5005,Server=YourHostComputer
where YourHostComputer is the name of your host computer, which is running the debugging server.
For complete information about launching KD (and establishing remote debugging) at the command line, see KD Command-Line Options.