调试 COM 服务器和容器

COM 应用程序执行若干不直接受程序员控制的任务。 DLL 间的通信、对象的使用计数和剪贴板操作只是可能遇到意外行为的少数几个情况。 发生这种情况时,第一步是抓住问题的根源。

Visual Studio 调试器支持单步通过和单步执行容器和服务器。 这包括单步执行远程过程调用 (RPC) 的能力。

主题内容

  1. Debugging a COM Server and Container in the Same Solution

  2. Debugging a Server Application Without Container Information

  3. Debugging a Server and Domain Isolation (SDI) Application

使用同一解决方案调试 COM 服务器和容器

可以使用同一解决方案中的两个项目来调试 COM 服务器和容器。 在每个项目和调试中设置适当的断点。 当容器对服务器进行调用而遇到断点时,容器将一直等到服务器代码返回(即等到完成调试)。

调试 COM 容器类似于调试标准程序。 一个不同的情况是当调试生成回调的事件时(如在容器应用程序上拖动数据)。 这种情况下,必须在回调函数中设置断点。

在没有容器信息的情况下调试服务器应用程序

如果不必或不想容器应用程序使用调试信息,那么开始调试服务器应用程序可分三步进行:

  1. 像对待普通的应用程序一样开始调试服务器。

  2. 按需要设置断点。

  3. 启动容器应用程序。

调试服务器和域隔离 (SDI) 应用程序

如果调试的是 SDI 服务器应用程序,对于 C/C++、C# 或 Visual Basic 项目,必须在“项目 属性页”对话框中的**“命令行参数”**属性中指定 /Embedding 或 /Automation。

使用这些命令行参数,调试器可以像从容器中启动服务器应用程序一样启动它。 从程序管理器或文件管理器启动容器将导致容器使用在调试器中启动的服务器实例。

若要访问“项目 属性页”对话框,请在解决方案资源管理器中右键单击你的项目,然后从快捷菜单中选择“属性”。 若要找到“命令行参数”属性,请展开“配置属性”类别并单击“调试”页。

请参见

其他资源

调试 COM 和 ActiveX