gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 14:41:53 28 4
gpt4 key购买 nike

我最近发布了this question关于我无法让 Delphi 2010 进行远程调试。我没有取得任何成功,因此决定发布一个简单的分步测试技术,该技术可能会突出显示我做错了什么。这对我来说真的很重要 - 我从 V1.0 开始就使用 Delphi 并靠它谋生。像这样被卡住是一种痛苦,它让我继续使用 Delphi 7。

无论如何,就到这里。

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

  2. 启动 Delphi 2010,然后选择 File |新 | VCL 表单应用程序。在表单上放置一个按钮,将 'ShowMessage( 'hello' ) 放入按钮 OnClick 事件中。将项目及其单元保存在本地文件夹“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. 使用输出目录 =\192.168.1.64\DebugTest 和单元输出目录 = c:\scratch 编辑 DEBUG 构建配置编译器设置 - 请参阅 Compiler settings

  6. 编辑链接设置以设置调试信息=True,包括远程调试符号=True。请参阅Linking settings

  7. 将编译设置保留为默认值。请参阅Compiling settings

  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 请参阅 Load Process remote tab

  11. 单击“加载”。可见断点立即被禁用,项目开始运行并打开 CPU 窗口并停止。按 f9 会使 exe 在远程计算机上完全运行,按钮可以工作,只是无法调试它。

我尝试过各种“明显”的方法,例如关闭防火墙,但都无济于事。有好心人可以提出进一步的想法吗?

非常感谢。

最佳答案

好吧,对我来说,这个问题现在已经解决了,尽管作为一种“解决方法”,并且在与 Embarcadero 进行大量交互并升级到 XE(也不起作用)之后。

远程调试器加载 rsm(远程符号)文件的能力似乎不稳定(或者可能只是挑剔)——他们仍在调查为什么我的无法加载。我的 rsm 文件很大,大约 50Mb,尽管这对于 Delphi 7 的远程调试器来说不是问题。

解决方法包括升级到 Delphi XE,然后选择编译器链接选项“将调试信息放置在单独的 TDS 文件中”。这似乎在远程目标上创建一个 tds 文件而不是 rsm 文件,并且断点可以正常工作。

我已将 rsm 和 tds 文件提交给 Embarcadero,以调查发生这种情况的原因。

关于Delphi 2010远程调试-无法使断点工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018147/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com