WinDBG Tutorial – Part 3


Just short piece of information about Remote Debugging.


Remote Debugging actually means connecting the debugger on one computer to a process on another computer.


Typical scenario: PC 1 has a program that needs to be debugged. PC 2 does the debugging.



 


Advantages:


          PC 1 might not have symbols and sources for debugging (e.g. PC 1 is user of application, PC 2 is application vendor)


          PC 1 can be installed in a virtual machine


          PC 2 can debug  kernel crashes


There are multiple ways of connecting the two PCs (which is normal, as multiple transport protocols are supported), but here is a quick-start for the most typical: via TCP/IP.


Steps:


1.       Setup PC 1 as debugging Server:


If the WinDBG is already started on PC 1, open the Command window and write:


.server  tcp:port=4001


If WinDBG is not opened, start it from the command prompt with the options:


               \:>Windbg.exe  -server tcp:port=4001


2.       Connect PC 2 to PC 1:


Open WinDBG from command prompt with arguments:


               \:>Windbg.exe  windbg.exe -remote tcp:server=\\157.58.253.236,port=4001


Note: The value written in red are only examples. The IP address has to be the one of PC 1 and the port should be one of the free ports of PC 1.


3.       Attach the debugger on PC 1 to a process, open a Dump or whatever. When a debugger is attached on PC 1, PC 2 will be able to debug that process as if it were a local process.


This is only one of the numerous ways of doing remote debugging. There is always the Help -> Search option in WinDBG that you can check for advanced options.

remoteDBG.png


Comments (0)