Delphi 2010远程调试 - 无法获得断点工作

Bri*_*ost 10 delphi remote-debugging breakpoints delphi-2010

我最近发布了一个关于我无法让Delphi 2010使用远程调试的问题.我没有取得任何成功,并决定发布一个简单的逐步测试技术,可能突出我做错了什么.这对我来说真的很重要 - 我从V1.0开始就使用Delphi并以此为生.像这样被困住是一种痛苦,它使我保持在Delphi 7上.

无论如何,这里去了.

  1. 确保Delphi 2010具有更新4和5.

  2. 启动Delphi 2010,然后启动File | 新的| VCL表格应用程序.在表单上放一个按钮,在按钮OnClick事件中放入'ShowMessage('hello').将项目及其单位保存在本地文件夹"C:\ scratch"中.构建项目,运行它,单击按钮,出现'hello',一切正常.

  3. 在联网的PC(194.168.1.64)上,创建一个新文件夹"c:\ DebugTest"并与R/W访问共享.

  4. 在194.168.1.64上,从Embarcadero网站(RemoteDebugger_upd2.exe)上的最新下载安装远程调试器.点击rmtdbg140.exe即可运行.接受来自防火墙的"解除阻止"消息.

  5. 使用Output directory =\192.168.1.64\DebugTest和unit output directory = c:\ scratch编辑DEBUG构建配置编译器设置 - 请参阅 编译器设置

  6. 编辑链接设置以设置Debug Information = True,包括远程调试符号= True.看到链接设置

  7. 将编译设置保留为默认值.看到编译设置

  8. 做一个完整的构建.相关项目exe'project2.exe'和'project2.rsm'出现在远程文件夹\ 192.168.1.64\DebugTest中.IDE中的Unit2中可以看到蓝点.

  9. 在"ShowMessage"行(按钮OnClick事件)上设置断点.

  10. 使用'运行'| "加载进程"使用远程路径= c:\ DebugTest\Project2.exe,远程主机= 192.168.1.64和工作目录= c:\ DebugTest参见加载进程远程选项卡

  11. 点击"加载".可见断点立即被禁用,项目开始运行并打开CPU窗口并停止.按f9导致exe在远程机器上完全运行,按钮工作,你只是无法调试它.

我尝试了各种"明显"的东西,比如防火墙关闭,但都无济于事.某个善良的人可以提出进一步的想法

非常感谢.

Bri*_*ost 6

好吧,对我来说,这个问题现在已经解决了,虽然作为一种"解决方案",并且在与Embarcadero进行了大量互动并升级到XE(这也没有奏效)之后.

看起来远程调试器在加载rsm(远程符号)文件的能力方面是片状的(或者可能只是挑剔) - 他们仍然在研究为什么我的不会加载.我的rsm文件大约50Mb,尽管这对Delphi 7的远程调试器来说没问题.

解决方法涉及升级到Delphi XE,然后选择编译器链接选项"将调试信息放在单独的TDS文件中".这似乎在远程目标上创建了一个tds文件而不是rsm文件,然后断点工作正常.

我已将我的rsm和tds文件提交给Embarcadero进行调查,了解为何会发生这种情况.

  • 加1并感谢您发布此邮件!我在一个相对复杂的程序(COM客户端/服务器,DLL + EXE)中遇到了完全相同的问题。将RemoteDebugSymbols设置为False(并改用TDS选项),使我可以进行远程调试。注意:我还必须从服务器删除旧的RSM文件。有趣的是,简单的测试EXE可以通过RSM文件进行远程调试。 (2认同)

net*_*ecz 5

什么Windows操作系统?也许以管理员身份运行rmtdbg140.exe.

我在XP和XP上运行D2010远程调试.我的方法是http://blog.runbits.com/post/Remote-debugging-Delphi.aspx