调试 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