繁体   English   中英

调试InProc COM Dll

[英]Debugging InProc COM Dll

我在VC ++ 6.0中有一个项目,其中有一个exe和一个InProc COM Dll。 我希望能够在InProc COM DLL中的某个位置放置一个断点,但是VC ++不允许我设置断点。

我有此DLL的源代码,但是我无法弄清楚如何在代码中放置断点并对其进行调试?

有人能帮我吗。

自从我使用COM以来已经有一段时间了,但是IIRIC在COM项目中将可执行文件配置为启动应用程序。 它应该可以工作(对不起,我这里没有再安装VC ++ 6.0 :()。

如果不起作用,则可以尝试将调试器附加到正在运行的应用程序。

无论哪种情况,请确保您在COM服务器中具有完整的调试信息。

希望这可以帮助。

您可以研究的两件事

  1. 在“调试选项”对话框中取消选中“ 要求源文件与原始版本完全匹配”
  2. 如果失败,请再次编译DLL(最好禁用优化功能/Od ),然后将新的DLL及其PDB文件使用。

不知道这是否可以在VC6中使用,但是您可以在要中断代码的地方尝试_asm int 3 ,这会在代码中引起断点并允许您对其进行调试。

  1. 附加到过程
  2. 打开项目->设置(Alt + F7)
  3. 打开调试选项卡,类别其他DLL
  4. 添加您的进程内服务器DLL
  5. 在关闭调试器时保存.opt文件

这样,下次您附加到进程或手动打开.opt文件时,将加载进程内服务器DLL,对其PDB进行解析,将最后一个开放源代码文件加载,将断点加载。

此处需要“其他dll”设置的原因是,直到In-proc服务器的实例被CoCreated加载,才会加载它。 因此,调试器不会加载其PDB文件,并且源文件被视为未知文本文件,因此它们中的断点变为非活动状态(白色)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM