9

我有一个 COM DLL 项目,我可以在 Delphi 2007 和 XE8 中调试它(在断点处停止)。

但是,IDE 似乎不可能在 Delphi 10 Seattle 或 10.1 Berlin 的断点处停止。

我的调试步骤:

  1. 更改为 DEBUG(并检查是否勾选了那些调试选项。例如调试信息)

  2. regsvr32 输出目录下的项目DLL

  3. 编写一个简单地创建 COM 对象并调用其方法的 vbscript

  4. 在调试器中,设置用于 32 位或64 位调试的Run命令行c:\windows\syswow64\cscript.exec:\windows\system32\cscript.exe

  5. 设置命令行参数以运行 vbscript。

  6. 在调用的方法处设置断点。

  7. 按 F9

预期:在断点处停止

在 Delphi 2007 和 XE8 中,一切都很好,但我无法在 Delphi 西雅图或柏林做到这一点。

这里可能出现什么问题?为了在 Delphi 的最新 IDE 版本下调试 COM DLL,我需要启用/禁用任何设置吗?

4

1 回答 1

1

看起来这是IDE的问题。我在 JIRA 中提出了这个问题: https ://quality.embarcadero.com/browse/RSP-14964

我终于在我的情况下找到了解决方法。

我必须按 F8 而不是 F9。在这种情况下,CPU 窗口将弹出混合的 Pascal 和汇编指令,如果按 F9,它很可能会在断点处停止(但有时确实会发生随机行为)。我可以根据需要多次复制它。直接按F9不会停在断点处,但是调试时会弹出cscript.exe窗口。

我的项目是一个 300K COM DLL。

于 2016-06-17T17:24:17.613 回答