Delphi 10 Seattle 和 10.1 Berlin 无法调试 COM DLL

Delphi 10 Seattle and 10.1 Berlin not able to debug COM DLL

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

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

我的调试步骤:

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

  2. regsvr32 输出目录下的工程DLL

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

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

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

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

  7. 按 F9

预期:在断点处停止

在 Delphi 2007 和 XE8 中,一切正常,但我在 Delphi 西雅图或柏林无法做到。

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

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

我终于找到了解决方法。

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

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