我尝试在Delphi中调试COM dll(TAutoObject),我的断点不是绿色。
我选择了这样的选项:
我的测试很好,但在Delphi中没有断点
这是怎么回事?
答案 0 :(得分:8)
您必须运行启动COM +对象的程序,然后将其附加到进程。
答案 1 :(得分:2)
IE启动一个托管不受信任代码的子进程。这可能是您的调试设置无法正常工作的原因,也是为什么一旦启动就会附加到流程的原因。
答案 2 :(得分:1)
由于调试器无法启动文件,因此无效。
IIRC您可以尝试“附加到进程”到运行它的进程(iexplorer.exe),但问题是不允许通过组件的启动进行调试。 (因为它需要花费时间手动附加)
我有一个不同的设置,我在delphi应用程序的面板上实例化了一个非常不同的编译.ocx,并用它进行调试。哪个工作得很好。
答案 3 :(得分:1)
此链接Breakpoint not honored while debugging a DLL帮助我在Delphi 5中调试我的com dll。转到Project - >选项 - >链接器 - >选中标记"包括远程调试符号"。我无法告诉你它为什么会起作用。 Delphi 5的帮助提供了以下描述:
包含远程调试符号如果使用远程调试,请选中此项。
答案 4 :(得分:0)
您还需要启用集成调试。它位于调试器选项的常规选项卡上。
过去我所做的是创建一个单独的程序,它调用我的COM对象并将其用作调试的目标而不是标准主机。这简化了事情,还允许您创建已知问题的特定可重复测试,以便以后帮助进行烟雾测试。
答案 5 :(得分:-1)
您也可以使用CodeSite等工具。