Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
swdev:howto:remote_debug_delphi_application [2009/06/26 11:46]
smayr
swdev:howto:remote_debug_delphi_application [2009/06/26 12:17] (current)
smayr
Line 1: Line 1:
 == Remote Debug a Delphi Application == == Remote Debug a Delphi Application ==
 +Source: Borland Developer Studio 2006 Help.
  
 === Installing a Debbuger on Remote Machine === === Installing a Debbuger on Remote Machine ===
-Source: Borland 2006 Help 
  
 To install the remote debugger if the installation disk is not available To install the remote debugger if the installation disk is not available
Line 21: Line 21:
  * If you are debugging an ASP.NET application, copy ''Borland.dbkasp.dll'' to the ''Install\GlobalAssemblyCache'' directory on the remote machine. If you are debugging an ASP.NET application, register the ''Borland.dbkasp.dll'' in the ''GlobalAssemblyCache'' using the Microsoft .NET ''gacutil.exe'' utility. For example, on Windows XP with Microsoft .NET Framework SDK, enter ''C:\Program Files\Microsoft.NET\SDK\v1.1\Bin\gacutil Borland.dbkasp.dll''  * If you are debugging an ASP.NET application, copy ''Borland.dbkasp.dll'' to the ''Install\GlobalAssemblyCache'' directory on the remote machine. If you are debugging an ASP.NET application, register the ''Borland.dbkasp.dll'' in the ''GlobalAssemblyCache'' using the Microsoft .NET ''gacutil.exe'' utility. For example, on Windows XP with Microsoft .NET Framework SDK, enter ''C:\Program Files\Microsoft.NET\SDK\v1.1\Bin\gacutil Borland.dbkasp.dll''
  
 +=== Establishing a Connection for Remote Debugging ===
 +
 +You must establish a TCP/IP connection between the local and remote machines in preparation for remote debugging. This connection uses multiple ports that are chosen dynamically by Windows. The remote debug server listens on one port, and a separate port is opened for each application that is being debugged. A firewall that only allows connections to the listening port will prevent the remote debugger from working.
 +
 +**Note:** If the remote machine uses the firewall included with Windows XP service pack 2, you will receive a message asking whether Borland remote debugging service should be allowed. You must indicate that this is allowed.
 + 
 +**Warning:** The connection between Developer Studio 2006 and the remote debug server is a simple TCP/IP socket, with neither encryption nor authentication support. Therefore, the remote debug server should not be run on a computer that can be accessed over the network by untrusted clients.
 + 
 +To connect the local machine and the remote machine
 + 
 + * Ensure that the remote debugger is installed on the remote machine. 
 + * Ensure that the executable files and symbol files (.tds. .rsm and .pdb) have been copied to the remote machine. 
 + * On the remote machine, start ''rmtdbg100.exe'' with the ''-listen'' argument. <code>rmtdbg100.exe -listen </code> This starts the remote debugger's listener and directs it to wait for a connection from your host machine's IDE. 
 + * On the local machine, choose Run > Attach to Process. This displays the Attach to Process dialog. 
 + * Specify the host name or TCP/IP address for the remote machine, then click Refresh. A list of processes running on the remote machine is displayed. This verifies the connectivity between the local and remote machines. 
 + * On the local machine, choose Run > Load Process > Remote. This displays the Remote page of the Load Process dialog. 
 + * In the Remote path field, specify the full path for the directory on the remote machine into which you copied the executable files and symbol files. The name of the executable must be included. For example, if you are debugging a ''program1.exe'', and you copy this to a directory named ''RemoteDebugFiles\Program1'' on the remote machine, specify <code>C:\RemoteDebugFiles\Program1\program1.exe. </code>
 + * In the Remote host field, specify the host name or TCP/IP address for the remote machine. 
 + * Click the Load button. This connects the IDE on the local machine to the debugger on the remote machine. 
 +
 +Once this connection is established, you can use the IDE on the local machine to debug the application as it runs on the remote machine. 
 +**Note:** You cannot interact directly with the remote application through the remote debugger. For interactive debugging, you can establish a remote desktop connection.
 + 
 +=== Preparing Files for Remote Debugging ===
 + 
 +Executable files and symbol files must be copied to the remote machine after they are compiled. You must set the correct options on your local machine in order to generate these files.
 + 
 +To prepare files for debugging on a remote machine
 + 
 + * Open the project on your local machine. 
 + * Choose Project > Options > Linker and verify that the "Include remote debug symbols" option is checked. This directs the compiler to generate a symbol file. The following extensions are used in symbol files (for Delphi projects): 
 +
 +^ Language ^ Debug symbol file extension ^
 +| Delphi for Win32 | .rsm |
 +| Delphi for .NET  | .rsm and .pdb |
 +| C++              | .tds |
 +| C#               | .pdb |
 +
 + * Compile the project on your local machine. 
 + * Copy the executable files and symbol files for the project to the remote machine. 
 + * Choose Run > Load Process 
 + * Specify the directory into which you copied the symbol files in the Debug symbols search path field. 
 + * Click OK.