我最近发布了this question关于我无法让Delphi 2010进行远程调试的问题。我没有取得任何成功,并决定发布一个简单的逐步测试技术,可能突出我做错了什么。这对我来说真的很重要 - 我从V1.0开始就使用Delphi并以此为生。像这样被困住是一种痛苦,它让我继续使用Delphi 7。
无论如何,这里有。
确保Delphi 2010有更新4& 5。
启动Delphi 2010,然后启动File |新的| VCL表格应用程序。在表单上放一个按钮,在按钮OnClick事件中放入'ShowMessage('hello')。将项目及其单位保存在本地文件夹“C:\ scratch”中。构建项目,运行它,单击按钮,出现'hello',一切正常。
在联网的PC(194.168.1.64)上,创建一个新文件夹“c:\ DebugTest”并与R / W访问共享。
在194.168.1.64上,从Embarcadero网站(RemoteDebugger_upd2.exe)上的最新下载安装远程调试器。点击rmtdbg140.exe即可运行。接受来自防火墙的“解锁”消息。
使用输出目录= \ 192.168.1.64 \ DebugTest和单位输出目录= c:\ scratch编辑DEBUG构建配置编译器设置 - 请参阅
编辑链接设置以设置Debug Information = True,包括远程调试符号= True。请参阅
将编译设置保留为默认值。请参阅
做一个完整的版本。相关项目exe'project2.exe'和'project2.rsm'出现在远程文件夹\ 192.168.1.64 \ DebugTest中。 IDE中的Unit2中可以看到蓝点。
在“ShowMessage”行(按钮OnClick事件)上设置断点。
使用'运行'| “加载进程”使用远程路径= c:\ DebugTest \ Project2.exe,远程主机= 192.168.1.64和工作目录= c:\ DebugTest参见
点击“加载”。可见断点立即被禁用,项目开始运行并打开CPU窗口并停止。按f9导致exe在远程机器上完全运行,按钮工作,你无法调试它。
我尝试了各种'明显'的东西,比如防火墙关闭,但都无济于事。有些人可以提出进一步的想法吗?
非常感谢。
答案 0 :(得分:6)
嗯,对我来说,这个问题现在已经解决了,虽然它是一种“解决方案”,并且在与Embarcadero进行重要互动并升级到XE之后(也没有用)。
看起来远程调试器在加载rsm(远程符号)文件的能力方面是片状的(或者可能只是挑剔) - 他们仍然在研究为什么我的不会加载。我的rsm文件大约50Mb,尽管这对Delphi 7的远程调试器来说没有问题。
解决方法涉及升级到Delphi XE,然后选择编译器链接选项“将调试信息放在单独的TDS文件中”。这似乎在远程目标上创建了一个tds文件而不是rsm文件,然后断点工作正常。
我已将我的rsm和tds文件提交给Embarcadero进行调查,了解为何会发生这种情况。
答案 1 :(得分:5)
什么是Windows操作系统?也许以管理员身份运行rmtdbg140.exe。
我在XP和XP上运行D2010远程调试。我的方法是http://blog.runbits.com/post/Remote-debugging-Delphi.aspx
答案 2 :(得分:0)
我有这个问题。为Delphi 2010安装Update 4解决了我的问题。它也列在Update 4的已修复问题列表中。
答案 3 :(得分:0)
在远程系统上必须具有正确的时区和时钟。在我的情况下,我设置了远程调试,当我加载进程时,断点变为绿色。我检查了远程系统时区和时钟,设置正确,远程dubugger再次工作。