在混合模式下调试(C#、C++、Visual Basic)
本文介绍如何一起为托管代码和本机代码启用调试,称为 混合模式 调试。 有两种混合模式调试方案:
调用 DLL 的应用是用本机代码编写的,并且管理 DLL。
调用 DLL 的应用是用托管代码编写的,DLL 位于本机代码中。 有关演练此场景的教程,请参阅调试托管代码和本机代码。
可以在调用应用项目的“属性”页面中同时启用托管调试器和本机调试器。 本机应用和托管应用的设置不同。
如果你无权访问调用应用的项目,则可以从 DLL 项目中调试 DLL。 无需采用混合模式进行调试。 只需要 DLL 项目。 有关详细信息,请参阅 如何从 DLL 项目进行调试。
说明
本文中所述的对话框和命令可能与你的体验不同,具体取决于 Visual Studio 设置或版本。 若要更改设置,请选择 工具>导入和导出设置。 有关详细信息,请参阅重置所有设置。
为本机调用应用启用混合模式(C++)
若要在 C++ 中为本机调用应用启用混合模式调试,请执行以下步骤:
在 Visual Studio 解决方案资源管理器中,右键单击C++项目并选择 属性,或使用 Alt + Enter 键盘快捷方式。 随即打开“<项目>属性页”对话框。
在对话框中,展开 配置属性 部分,然后选择 调试 选项卡。
在 调试 选项卡中,选择 调试器类型 属性,并使用下拉列表选择 自动 或 混合 选项。 如果有多个选项可用于 混合(例如 .NET Core 和 .NET Framework),请选择最佳配置选项。
若要应用属性更改,选择“确定”。
为托管调用应用启用混合模式(C# 或 Visual Basic)
若要在 C# 或 Visual Basic 中为托管调用应用启用混合模式调试,请执行以下步骤:
在 Visual Studio 解决方案资源管理器中,右键单击 C# 或 Visual Basic 项目并选择 属性,或使用 Alt + Enter 键盘快捷方式。 此时将打开“属性”窗格。
在 属性 窗格中,通过设置以下属性启用混合模式调试:
.NET 代码
在左侧菜单中,选择“调试”。
在“常规”部分中,选择“打开调试启动配置文件 UI”链接。 此时会打开“启动配置文件”对话框。
在对话框中,滚动以找到“启用本机代码调试”部分。
选择“为托管代码和本机代码启用调试(也称为混合模式调试)”属性:
若要应用属性更改,请关闭 启动配置文件 对话框和 属性 窗格。
.NET Framework 代码
如果使用没有调试启动配置文件的 .NET Framework 代码,请执行以下步骤:
在左侧菜单中,选择“调试”。
在“调试器引擎”部分中,选择“启用本机代码调试”属性:
若要应用属性更改,请关闭 属性 窗格。
在左侧菜单中,选择“调试”。
在“调试器引擎”部分中,选择“启用本机代码调试”属性:
若要应用属性更改,请关闭 属性 窗格。
说明
对于 Visual Studio 2017 和 Visual Studio 2019 中的 .NET Core 应用,必须使用 launchSettings.json 文件而不是项目属性来启用混合模式调试。