在混合模式下调试(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 文件(而非项目属性)启用混合模式调试。