如何:在混合模式下调试

更新:2007 年 11 月

本主题适用于:

版本

Visual Basic

C#

C++

Web Developer

速成版

主题不适用 主题不适用 主题适用 主题不适用

标准版

主题不适用

主题不适用

主题适用

主题不适用

专业团队版

主题不适用

主题不适用

主题适用

主题不适用

表格图例:

主题适用

适用

主题不适用

不适用

主题适用,但命令默认情况下隐藏

默认情况下隐藏的一条或多条命令。

以下过程描述如何调试托管代码和本机代码,这一过程也称作混合模式调试。根据 DLL 或应用程序是否用本机代码编写,有两种方案可以用来进行调试:

  • 调用 DLL 的调用应用程序是用本机代码编写的。在这种情况下 DLL 是托管的,托管调试器和本机调试器都必须启用,以调试托管代码和本机代码。可以在“<Project> 属性页”对话框中选中此选项。具体如何检查取决于是从 DLL 项目中启动调试,还是从调用应用程序项目中启动调试。

  • 调用 DLL 的调用应用程序是用托管代码编写的,而 DLL 是用本机代码编写的。

说明:

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

在调用托管 DLL 的本机 EXE 中启用混合模式调试

  1. 在“解决方案资源管理器”中选择项目。

  2. 在“视图”菜单上单击“属性页”。

  3. 在“<Project> 属性页”对话框中,展开“配置属性”节点,然后选择“调试”。

  4. 将“调试器类型”设置为“混合”或“自动”。

在调用本机 DLL 的托管 EXE 中启用混合模式调试

  1. 在“解决方案资源管理器”中选择项目。

  2. 在“视图”菜单上单击“属性页”。

  3. 在“属性页”中,单击“调试”选项卡。

  4. 在“启用调试器”组下,选中“启用未托管代码调试”复选框。

    说明:

    为使调试器附加到用 C++ 编写的代码,该代码需要发出 DebuggableAttribute。通过使用 /ASSEMBLYDEBUG(添加 DebuggableAttribute) 链接器选项进行链接,可以将此项自动添加到代码上。

请参见

任务

如何:从 DLL 项目进行调试