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

9
我有一个COM DLL项目,在Delphi 2007和XE8中我能够调试它(在断点处停止)。
然而,在Delphi 10 Seattle或10.1 Berlin中,IDE似乎无法在断点处停止。
我的调试步骤如下:
1. 切换到DEBUG模式(并检查那些调试选项的勾选情况,例如调试信息)。 2. 在输出目录下通过regsvr32注册项目DLL。 3. 编写一个简单的vbscript来创建COM对象并调用其方法。 4. 在调试器中,使用c:\windows\syswow64\cscript.exe进行32位调试或c:\windows\system32\cscript.exe进行64位调试,设置一个“Run”命令行。 5. 设置运行vbscript的命令行参数。 6. 在被调用的方法处设置断点。 7. 按F9。 预期结果是在断点处停止。
在Delphi 2007和XE8中一切正常,但我无法在Delphi Seattle或Berlin中做到这一点。
这里可能出了什么问题?在Delphi的最新IDE版本下调试COM DLL时是否需要启用/禁用任何设置?

1
好问题,但不容易回答。很可能是一个错误。 - Rudy Velthuis
1
Quality Portal上向Embarcadero提交报告。 - Remy Lebeau
1个回答

1
看起来这是IDE的问题。我已经在JIRA上提出了这个问题:https://quality.embarcadero.com/browse/RSP-14964 最终我找到了一个解决方法。
我必须按F8键而不是F9键。这样,CPU窗口将弹出混合的Pascal和Assembly指令,并且如果您按F9键,则很可能会停止在断点处(但有时会发生随机行为)。 我可以多次重现这个问题。直接按F9键不会停在断点处,但在调试期间,cscript.exe窗口确实会弹出。
我的项目是一个300K的COM DLL。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接