Remote Debug a Delphi Application

Source: Borland Developer Studio 2006 Help.

Installing a Debbuger on Remote Machine

To install the remote debugger if the installation disk is not available * Create a directory on the remote machine for the installation files.

  • Locate the following files on the local machine (By default, all of these files are in C:\Program Files\Borland\BDS\4.0\Bin):
    • rmtdbg100.exe
    • bccide.dll
    • bordbk100.dll
    • bordbk100N.dll
    • comp32x.dll
    • dbkpro100.dll
    • DCC100.DLL
    • DCC100IL.DLL
    • Borland.dbkasp.dll
  • Copy the files from your local machine to the directory you created on the remote machine.
  • On the remote computer, register bordbk100.dll and bordbk100n.dll by running the regsvr32.exe registration utility. For example, on Windows XP, enter C:\Windows\System32\regsvr32.exe bordbk100.dll at the command prompt, then enter C:\Windows\System32\regsvr32.exe bordbk100n.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.
    rmtdbg100.exe -listen 

    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
    C:\RemoteDebugFiles\Program1\program1.exe. 
  • 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.