Overview of Remote Debugging
Go Up to Debugging Applications Index
- Note: This topic describes the old-style remote debugging solution, which has been superceded by the new multi-device and remote debugging solution. You can, however, continue to use the old-style procedures and debugger just as they are described here. To use the new debugging solution to debug a remote process, see Debugging Multi-Device Applications for information about the new multi-device and remote debugging solution.
Remote debugging enables you to debug one or more applications on a remote machine when the IDE is running only on your local machine. This allows debugging on a machine where it is impractical to install the entire IDE and rebuild a project. Remote debugging is useful for applications that run differently on your local machine than on an end user's machine.
- Note: When debugging from a Windows machine to a remote Windows machine, you can get a PAClient error message saying the file can't be created because it is being used by another process.
- The suggested workaround is to deploy your
<project>.rsmfile to the remote machine. To do this, go to Project > Options > Delphi Compiler > Linking and set Include remote debugging symbols to True.
The Remote Debugger Executable
The remote debugger executable is named
rmtdbg250.exe. The executable and its supporting files must be present on the remote machine. Use the Platform Assistant to install the remote debugger and the debugging files. For instructions, see PAServer, the Platform Assistant Server Application.
Local and Remote Files
Three types of files are involved in remote debugging:
- Source files
- Executable files
- Symbol files
Source files are compiled using the IDE on the local machine. The executable files and symbol files produced after compilation must be copied to the remote machine.
When you debug a project on a remote machine, the source files for the project must be open on the local machine. The source files display in the editor window to show a program's current execution point. You do not use source files on the remote machine.
Executable files are the .dll files and .exe files that are mapped into the application's address space. You generate these files on the local machine, then copy them to the remote machine.
Symbol files are generated on the local machine at compile time. These are used by the debugger to get information such as the mapping of machine instructions to source line numbers or the names and types of variables declared in the source files. Delphi uses RSM files, C++ uses TDS files.
You must set up specific options to generate symbol files on the local machine, then copy the files to the remote machine.
Local and Remote Machines
To use remote debugging, you must be able to log on to the remote machine and you must have write access to at least one directory.
The remote debugger does not provide a mechanism for interacting with an application on the remote machine. If you need to interact with the application, you must establish a remote desktop connection:
- How to use Remote Desktop (Windows 10)
- Remote Desktop app help (Windows 8)
- Connect to another computer using Remote Desktop Connection (Windows 7)
- Microsoft Remote Desktop (OS X)
- Remote Debugging - Old-Style Procedures
- Installing a Debugger on a Remote Machine
- Establishing a Connection for Remote Debugging
- Preparing Files for Remote Debugging
- Installing, Starting, and Stopping the Remote Debug Server
- Debugging Multi-Device Applications (new remote debugging solution)
- PAServer, the Platform Assistant Server Application
- Debugging iOS Apps
- Running and Debugging Your Android Application On a Remote Android Device