如何在Delphi中调试COM dll?

时间:2010-01-14 11:34:19

标签: delphi com dll debugging delphi-2010

我尝试在Delphi中调试COM dll(TAutoObject),我的断点不是绿色。

我选择了这样的选项:

  • host:c:\ Program Files \ Internet 资源管理器\ IEXPLORE.EXE
  • param:c:\ software \ test.html

我的测试很好,但在Delphi中没有断点

这是怎么回事?

6 个答案:

答案 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等工具。