我编写了一个简单的 VCL win32 应用程序,它具有以下代码:
procedure TForm5.Button1Click(Sender: TObject);
begin
ShowMessage('bingo');
end;
我用运行时包编译了应用程序并打开了以下开关:
- 调试信息 -> true
- 包括远程调试符号 -> true
- 断言、调试信息、本地 smbols、使用 debug dcus -> true
输出具有以下文件:
- 项目1.exe
- 项目1.rsm
这两个运行时包是:
- vcl160.bpl
- rtl160.bpl
我在 Button1Click 处理程序中设置了一个断点,如果我在调试器模式下运行应用程序,本地 IDE 调试器将停在那里。
接下来,我想尝试使用运行时包远程调试应用程序。
我将远程配置文件分配给 32 位 Windows 平台。测试连接适用于远程配置文件。PAServer 也在远程机器中启动。尝试使用 Delphi XE2 IDE 调试器运行应用程序时,我注意到 4 个文件被复制到远程计算机:
- 项目1.exe
- 项目1.rsm
- vcl160.bpl
- rtl160.bpl
但是,事件日志显示:
Module Load: Project1.exe. No Debug Info. Base Address: $00400000. Process Project1.exe (1676)
由于模块没有调试信息,所有断点将无法触发。
我尝试构建没有运行时包的单文件 .exe 应用程序。相同的远程调试器步骤工作,我可以远程调试应用程序。
是什么导致使用运行时包构建的应用程序远程调试失败?