我最近发布了这个问题 https://stackoverflow.com/questions/4579654/no-breakpoints-when-remote-debugging-with-delphi-2010-so-stuck-on-delphi-7关于我无法让 Delphi 2010 进行远程调试。我没有取得任何成功,因此决定发布一个简单的分步测试技术,该技术可能会突出显示我做错了什么。这对我来说真的很重要 - 我从 V1.0 开始就使用 Delphi 并靠它谋生。像这样被卡住是一种痛苦,它让我继续使用 Delphi 7。
不管怎样,就这样吧。
确保 Delphi 2010 有更新 4 和 5。
启动 Delphi 2010,然后选择 File |新 | VCL 表单应用程序。在表单上放置一个按钮,将 'ShowMessage( 'hello' ) 放入按钮 OnClick 事件中。将项目及其单元保存在本地文件夹“C:\scratch”中。构建项目,运行它,单击按钮,出现“hello”,一切正常。
在联网 PC (194.168.1.64) 上,创建一个新文件夹“c:\DebugTest”并以 R/W 访问权限共享它。
在 194.168.1.64 上,从 Embarcadero 网站 (RemoteDebugger_upd2.exe) 上的最新下载安装远程调试器。单击“rmtdbg140.exe”运行。接受来自防火墙的“取消阻止”消息。
Edit the DEBUG build configuration compiler settings with Output directory=\192.168.1.64\DebugTest and unit output directory = c:\scratch - see
Edit the Linking settings to set Debug Information=True, Include remote debug symbols=True. See
Leave compiling settings at defaults. See
进行完整构建。相关项目exe“project2.exe”和“project2.rsm”出现在远程文件夹\192.168.1.64\DebugTest中。 IDE 中的 Unit2 中可以看到蓝点。
在“ShowMessage”行(按钮 OnClick 事件)上设置断点。
Use 'Run' | 'Load Process' with Remote path=c:\DebugTest\Project2.exe, Remote Host=192.168.1.64 and Working directory=c:\DebugTest see
单击“加载”。可见断点立即被禁用,项目开始运行并打开 CPU 窗口并停止。按 f9 会使 exe 在远程计算机上完全运行,该按钮有效,但您无法调试它。
我尝试过各种“明显”的方法,例如关闭防火墙,但都无济于事。有好心人可以提出进一步的想法吗?
非常感谢。
好吧,对我来说,这个问题现在已经解决了,尽管作为一种“解决方法”,并且在与 Embarcadero 进行了大量交互并升级到 XE(也不起作用)之后。
远程调试器加载 rsm(远程符号)文件的能力似乎很不稳定(或者可能只是挑剔)——他们仍在调查为什么我的无法加载。我的 rsm 文件很大,大约 50Mb,尽管这对于 Delphi 7 的远程调试器来说不是问题。
解决方法包括升级到 Delphi XE,然后选择编译器链接选项“将调试信息放置在单独的 TDS 文件中”。这似乎在远程目标上创建一个 tds 文件而不是 rsm 文件,并且断点可以正常工作。
我已将 rsm 和 tds 文件提交给 Embarcadero,以调查发生这种情况的原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)