在混合模式下调试(C#、C++、Visual Basic)

本文介绍如何一起为托管代码和本机代码启用调试,称为 混合模式 调试。 有两种混合模式调试方案:

  • 调用 DLL 的应用是用本机代码编写的,并且管理 DLL。

  • 调用 DLL 的应用是用托管代码编写的,DLL 位于本机代码中。 有关演练此场景的教程,请参阅调试托管代码和本机代码

可以在调用应用项目的“属性”页面中同时启用托管调试器和本机调试器。 本机应用和托管应用的设置不同。

如果你无权访问调用应用的项目,则可以从 DLL 项目中调试 DLL。 无需采用混合模式进行调试。 只需要 DLL 项目。 有关详细信息,请参阅 如何从 DLL 项目进行调试。

说明

本文中所述的对话框和命令可能与你的体验不同,具体取决于 Visual Studio 设置或版本。 若要更改设置,请选择 工具>导入和导出设置。 有关详细信息,请参阅重置所有设置

为本机调用应用启用混合模式(C++)

若要在 C++ 中为本机调用应用启用混合模式调试,请执行以下步骤:

  1. 在 Visual Studio 解决方案资源管理器中,右键单击C++项目并选择 属性,或使用 Alt + Enter 键盘快捷方式。 随即打开“<项目>属性页”对话框。

  2. 在对话框中,展开 配置属性 部分,然后选择 调试 选项卡。

  3. 调试 选项卡中,选择 调试器类型 属性,并使用下拉列表选择 自动混合 选项。 如果有多个选项可用于 混合(例如 .NET Core 和 .NET Framework),请选择最佳配置选项。

    显示如何在 Visual Studio 中为C++项目启用混合模式调试的屏幕截图。

  4. 若要应用属性更改,选择“确定”

为托管调用应用启用混合模式(C# 或 Visual Basic)

若要在 C# 或 Visual Basic 中为托管调用应用启用混合模式调试,请执行以下步骤:

  1. 在 Visual Studio 解决方案资源管理器中,右键单击 C# 或 Visual Basic 项目并选择 属性,或使用 Alt + Enter 键盘快捷方式。 此时将打开“属性”窗格。

  2. 属性 窗格中,通过设置以下属性启用混合模式调试:

    .NET 代码

    1. 在左侧菜单中,选择“调试”。

    2. 在“常规”部分中,选择“打开调试启动配置文件 UI”链接。 此时会打开“启动配置文件”对话框。

    3. 在对话框中,滚动以找到“启用本机代码调试”部分。

    4. 选择“为托管代码和本机代码启用调试(也称为混合模式调试)”属性:

      显示如何在 Visual Studio 中为 C# 或 Visual Basic 项目启用混合模式调试的屏幕截图。

    5. 若要应用属性更改,请关闭 启动配置文件 对话框和 属性 窗格。

    .NET Framework 代码

    如果使用没有调试启动配置文件的 .NET Framework 代码,请执行以下步骤:

    1. 在左侧菜单中,选择“调试”。

    2. 在“调试器引擎”部分中,选择“启用本机代码调试”属性:

      显示如何在 Visual Studio 2019 中为 C# 或 Visual Basic 项目启用混合模式调试的屏幕截图。

    3. 若要应用属性更改,请关闭 属性 窗格。

    1. 在左侧菜单中,选择“调试”。

    2. 在“调试器引擎”部分中,选择“启用本机代码调试”属性:

      显示如何在 Visual Studio 2019 中为 C# 或 Visual Basic 项目启用混合模式调试的屏幕截图。

    3. 若要应用属性更改,请关闭 属性 窗格。

    说明

    对于 Visual Studio 2017 和 Visual Studio 2019 中的 .NET Core 应用,必须使用 launchSettings.json 文件而不是项目属性来启用混合模式调试。