如何:在混合模式下调试
更新:2007 年 11 月
本主题适用于:
版本 |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
速成版 |
![]() |
![]() |
![]() |
![]() |
标准版 |
||||
专业团队版 |
表格图例:
![]() |
适用 |
![]() |
不适用 |
![]() |
默认情况下隐藏的一条或多条命令。 |
以下过程描述如何调试托管代码和本机代码,这一过程也称作混合模式调试。根据 DLL 或应用程序是否用本机代码编写,有两种方案可以用来进行调试:
调用 DLL 的调用应用程序是用本机代码编写的。在这种情况下 DLL 是托管的,托管调试器和本机调试器都必须启用,以调试托管代码和本机代码。可以在“<Project> 属性页”对话框中选中此选项。具体如何检查取决于是从 DLL 项目中启动调试,还是从调用应用程序项目中启动调试。
调用 DLL 的调用应用程序是用托管代码编写的,而 DLL 是用本机代码编写的。
![]() |
---|
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。 |
在调用托管 DLL 的本机 EXE 中启用混合模式调试
在“解决方案资源管理器”中选择项目。
在“视图”菜单上单击“属性页”。
在“<Project> 属性页”对话框中,展开“配置属性”节点,然后选择“调试”。
将“调试器类型”设置为“混合”或“自动”。
在调用本机 DLL 的托管 EXE 中启用混合模式调试
在“解决方案资源管理器”中选择项目。
在“视图”菜单上单击“属性页”。
在“属性页”中,单击“调试”选项卡。
在“启用调试器”组下,选中“启用未托管代码调试”复选框。
说明:
为使调试器附加到用 C++ 编写的代码,该代码需要发出 DebuggableAttribute。通过使用 /ASSEMBLYDEBUG(添加 DebuggableAttribute) 链接器选项进行链接,可以将此项自动添加到代码上。