调试使用 Visual C++ 编写的组件

准备好在 Microsoft Visual C++ 组件中调试 COM+ 功能时,可以配置 Visual C++ 项目或组件服务管理工具来启动调试器。 如果使用的是 Visual C++,则可以使用 OLE RPC 和实时 (JIT) 调试利用远程客户端进行调试。 如果无法在调试器下运行客户端,或者客户端正在另一台计算机上运行,则可以在 COM+ 的“在调试器中启动”设置。 在组件服务管理工具中,可以在 COM+ 应用程序“属性”对话框的“高级”选项卡上找到此项(复选框形式)。

完成调试后,应关闭正在调试的 COM+ 应用程序。 如果服务器进程保持正在运行状态,则在现有 DLL 在内存中仍处于已加载状态时,下次尝试生成 DLL 时,可能会收到错误消息。 若要关闭 COM+ 应用程序,请右键单击控制台树中的应用程序,然后单击“关闭”。

注意

如果使用事务,可能还需要增加事务超时,默认为 60 秒。 还可以指定值 0,从而有效地指定无限事务超时期限。 使用组件服务管理工具,更改“我的计算机属性”窗口的“选项”选项卡上的事务超时设置。

 

使用 Visual C++ 调试服务器应用程序组件

调试 COM+ 服务器应用程序时,可能会想要将客户端和服务器应用程序都加载到调试器中,以便调试远程调用。 使用 Visual C++,可以通过实时 (JIT) 和 OLE RPC 设置调试对组件的远程调用。 JIT 设置会导致已编译的组件在发生错误时启动 Visual C++ 调试器;通过 OLE RPC 设置,调试器可在逐步执行代码时从客户端逐步执行到组件。

启用这些功能后,可以在调试器下启动客户端。 当客户端调用组件时,即使服务器位于网络上的其他计算机上,调试器也会在服务器进程中逐步执行组件代码。 如有必要,会自动在服务器计算机上启动调试会话。 同样,逐步执行组件代码中的返回语句时,会将调试返回到客户端代码中的下一个语句。

注意

可以使用 COM+ 的“在调试器中启动”设置来节省几个步骤。 这样就可以指定 Visual C++(或其他)调试器,而无需在 Visual C++ 环境中进行特殊的调试设置。 在组件服务管理工具中,可以在 COM+ 应用程序“属性”对话框的“高级”选项卡上找到此项(复选框形式)。 有关详细信息,请参阅本主题中的“在不使用 Visual C++ 的情况下调试”。

 

当包含组件的 COM+ 应用程序是服务器应用程序时,必须首先使用组件服务管理工具关闭应用程序。 为此,请在控制台树中右键单击 COM+ 应用程序,然后单击“关闭”。

在 Visual C++ 中启用 RPC 调试

  1. 在 Visual C++ 中的“工具”菜单上,单击“选项”。

  2. 在“选项”对话框中的“调试”选项卡上,选择“OLE RPC 调试”和“实时调试”复选框。

  3. 单击“确定”。

若要开始调试,请在调试器中启动客户端项目。

还可以在未在调试器中启动客户端的情况下调试组件。 在这种情况下,组件必须自行启动调试器。 为此,组件项目必须指定调试会话的可执行文件以及 COM+ 应用程序 ID。

启用服务器应用程序组件以启动 Visual C++ 调试器

  1. 在“项目”菜单中,单击“设置”

  2. 在“项目设置”对话框的“设置用于”框中,选择“Win32 调试”。

  3. 在“调试”选项卡的“类别”框中,选择“常规”。

  4. 在“调试会话的可执行文件”框中,输入 Dllhost.exe 的完全限定路径,后跟指定包含组件的 COM+ 应用程序的应用程序 ID 的参数。

    注意

    使用组件服务管理工具,可在 COM+ 应用程序的“属性”对话框的“常规”选项卡上找到应用程序 ID。 下面是一个示例:

     

    注意

    C:\Winnt\System32\Dllhost.exe /ProcessID:{applicationID}

     

  5. 单击“确定”。

现在可以设置断点,启动调试器,并开始调用组件。

使用 Visual C++ 调试库应用程序组件

若要调试库应用程序中的组件,必须配置客户端的项目,因为客户端的进程将托管库应用程序。

使用 Visual C++ 启用库应用程序调试

  1. 在 Visual C++ 的“项目”菜单上,单击“设置”。

  2. 在“项目设置”对话框的“设置用于”框中,单击“Win32 调试”。

  3. 在“调试”选项卡的“类别”框中,单击“其他 DLL”。

  4. 在“模块”列表中,在库应用程序中添加组件 DLL。 这样,就可以在实际加载 DLL 之前设置断点。

  5. 单击“确定”。

在不使用 Visual C++ 的情况下调试

无论是否使用 Visual C++ 进行调试,都可以使用“在调试器中启动”设置,指定组件应在其中运行的调试器。

从组件服务管理工具指定调试器

  1. 在控制台树中,选择包含要调试的组件的 COM+ 库应用程序。

  2. 右键单击应用程序,然后单击“属性”

  3. 在应用程序的“属性”对话框中,单击“高级”选项卡。

  4. 在“调试”下,选中“在调试器中启动”复选框。

  5. 在“调试器路径”框中,输入要使用的调试器的路径。 还可以单击“浏览”找到调试器。 下面是一个示例:C:\Winnt\System32\Ntsd.exe。

  6. 单击 “确定”

调试使用 Visual Basic 编写的组件