我遇到了一个大问题,即在 Delphi 6 DirectShow DLL 中没有命中断点。我将在 IDE 中加载 DLL (AX) 并使用 Graph Edit 作为主机程序运行它,并且不会触发任何断点。我尝试将 FastMM4 DLL 移动到项目目录,完全删除 FastMM4,打开和关闭调试 DCU,清理项目目录,取消注册和重新注册 DLL,我能想到的一切。没有任何效果。每次我运行主机程序时,我都会在事件查看器中看到我的 DLL 加载并显示“无调试信息”消息。然后在绝望的谷歌搜索中,我发现了一篇 C++ Builder 的帖子,建议尝试“远程调试符号”链接器选项:
Project -> Options -> Linker (Tab) -> Exe and DLL options (group box) -> "Include Remote Debug Symbols" (勾选)
突然我的断点开始被击中。以下是我的问题:
1)为什么这样做?是因为这个选项还是因为这个选项触发了其他一些修复问题的编译器/链接器操作?我想知道,这样当它再次发生时,我可以可靠地解决这个问题。
2) 远程调试符号是否是恶意程序员可以用来深度跟踪我的程序的东西?换句话说,如果它们随意放置,是否会带来安全风险?