1

我正在尝试调试我的 DirectShow 源过滤器。我在 Windows XP 上使用 Delphi Pro 6 以及 DSPACK 组件库。我使用 Skype 作为我的主机应用程序,我在运行菜单的参数选项中设置它,用于测试我的源过滤器 DLL(ax 文件扩展名)。Skype 运行良好,我在事件查看器中看到了我的 OutputDebugString 消息流,但我的断点都没有被命中。在我的项目设置中,我关闭了优化,打开了堆栈帧,打开了调试 DCU,打开了范围检查和溢出检查。每次我修改代码并运行测试时,我:

  • 做一个完整的构建
  • 取消注册 DirectShow 过滤器 (regsvr32 /u)
  • 注册 DirectShow 过滤器 (regsvr32)
  • 从 IDE 运行 Skype 作为我的主机应用程序

当发生异常时,IDE 会捕获它并弹出一个错误对话框,其中包含在 CPU 窗口中查看汇编代码的选项。但是,我的断点都没有被击中。谁能告诉我如何让断点工作?

谢谢。

4

2 回答 2

2

在我看来,您在构建时关闭了调试信息,无论是在项目选项中,还是在代码或包含文件中的某处使用 $D- 开关。检查以确保您有可用的调试信息。

于 2010-03-18T12:33:56.800 回答
2

除了 Mason Wheeler 指出的调试选项外,还可以使用完整的地图文件。并确保搜索路径中没有旧的 DCU 和 BPL。此外,考虑使用 EurekaLog 或 MadExcept - 即使是试用版也应该能够向您展示当它爆炸时发生了什么。

于 2010-03-18T15:07:55.320 回答