I wrote a simple VCL win32 application that has the following code:
procedure TForm5.Button1Click(Sender: TObject);
begin
ShowMessage('bingo');
end;
I compiled the application with runtime packages and has turn on the following switches:
- Debug Information -> true
- Include remote debug symbol -> true
- Assertion, debug information, local smbols, use debug dcus -> true
The output has the following files:
- Project1.exe
- project1.rsm
The two runtime packages are:
- vcl160.bpl
- rtl160.bpl
I set a break point in Button1Click handler, the local IDE debugger will stop there if I run the
application in debugger mode.
Next, I want to try remote debug the application with runtime packages.
I assign remote profile to the 32-bits windows platform. The test connection works with the remote profile. PAServer was started too in remote machine. I can notice 4 files were copied to remote machine when attempt to run the application with Delphi XE2 IDE debugger:
- Project1.exe
- project1.rsm
- vcl160.bpl
- rtl160.bpl
However, the event log shows:
Module Load: Project1.exe. No Debug Info. Base Address: $00400000. Process Project1.exe (1676)
As the module doesn't has debug info, all breakpoint will fail to trigger.
I have tried build single file .exe application without runtime packages. The same remote debugger steps work and I can debug application remotely.
What has make the remote debugging fail with application built with runtime packages?
Best Answer
It looks like you have to additionaly deploy '.dcp' files corresponding to used runtime packages.
From Debugger Notes (Release Notes for XE2):