问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

调试 DLL 项目

创作时间:
作者:
@小白创作中心

调试 DLL 项目

引用
1
来源
1.
https://learn.microsoft.com/zh-cn/visualstudio/debugger/how-to-debug-from-a-dll-project?view=vs-2022

在软件开发过程中,调试DLL项目是一个常见的需求。本文将详细介绍如何在Visual Studio中从DLL项目进行调试,包括本机DLL、C# DLL以及托管DLL的调试方法。通过本文,开发者可以掌握从设置调用应用到实际调试的完整流程,确保代码调试的准确性和效率。

在 Visual Studio 中从 DLL 项目调试(C#、C++、Visual Basic、F#)

  • 项目
  • 01/12/2024
  • 10 个参与者

本文内容

调试 DLL 项目的一种方法是在 DLL 项目属性中指定调用应用。 随后可以从 DLL 项目本身开始调试。 若要使此方法有效,应用必须调用与配置相同的位置处的相同 DLL。 如果应用找到并加载了不同版本的 DLL,则该版本不包含断点。 有关调试 DLL 的其他方法,请参阅调试 DLL 项目。

如果托管应用调用本机 DLL,或本机应用调用托管 DLL,则可以同时调试 DLL 和调用应用。 有关详细信息,请参阅如何:在混合模式下调试。

本机和托管 DLL 项目具有不同的设置来指定调用应用。

在本机 DLL 项目中指定调用应用

在解决方案资源管理器中选择 C++ DLL 项目。 选择“属性”图标,按 Alt+Enter,或右键单击并选择“属性”。

在“<项目> > 属性页”对话框中,确保窗口顶部的“配置”字段设置为“调试”。

选择“配置属性”>“调试”。

在“要启动的调试器”列表中,选择“本地 Windows 调试器”或“远程 Windows 调试器”。

在“命令”或“远程命令”框中,添加调用应用的完全限定路径和文件名,如 .exe 文件。

向“命令参数”框添加任何必要的程序参数。

选择“确定”。

在 C# DLL 项目中指定调用应用(.NET Core、.NET 5+)

在解决方案资源管理器中选择 C# 或 Visual Basic DLL 项目。 选择“属性”图标,按 Alt+Enter,或右键单击并选择“属性”。

在“调试”选项卡中,选择“打开调试启动配置文件 UI”。

在“启动配置文件”对话框中,选择“创建新配置文件”图标,然后选择“可执行文件”。

在新配置文件中的“可执行文件”下,浏览到可执行文件(.exe 文件)的位置并将其选定。

在“启动配置文件”对话框中,记下默认配置文件的名称,然后将其选定并删除。

将新配置文件重命名为与默认配置文件相同的名称。

或者,可以手动编辑 launchSettings.json 以获取相同的结果。 你希望 launchSettings.json 中的第一个配置文件与类库的名称匹配,并希望它在文件中列在第一个。

在托管 DLL 项目中指定调用应用

在解决方案资源管理器中选择 C# 或 Visual Basic DLL 项目。 选择“属性”图标,按 Alt+Enter,或右键单击并选择“属性”。

确保窗口顶部的“配置”字段设置为“调试” 。

在“启动操作”下:

对于 .NET Framework DLL。选择“启动外部程序”,并添加调用应用的完全限定路径和名称。

或者,选择“使用 URL 启动浏览器”并填写本地 ASP.NET 应用的 URL。

  • 对于 .NET Core DLL,“调试”属性页是不同的。 从“启动”下拉列表中选择“可执行文件”,然后在“可执行文件”字段中添加调用应用的完全限定路径和名称。

  • 对于 .NET Core DLL,“调试”属性页不同。 从“启动”下拉列表中选择“可执行文件”,然后在“可执行文件”字段中添加调用应用的完全限定路径和名称。

在“命令行参数”或“应用程序参数”字段中添加任何所需的命令行参数。

使用“文件”>“保存选定项”或 Ctrl+S 来保存更改。

从 DLL 项目调试

在 DLL 项目中设置断点。

右键单击 DLL 项目,然后选择“设为启动项目”。

确保“解决方案配置”设置为“调试” 。 按 F5,然后单击绿色“启动”箭头,或选择“调试”>“启动调试”。

其他提示:

如果调试未命中断点,请确保 DLL 输出(默认情况为 <>\Debug 文件夹)是调用应用进行调用的位置。

如果要从本机 DLL 中断托管调用应用中的代码,或进行相反的转换,请启用混合模式调试。

在某些情况下,可能需要告诉调试器在何处查找源代码。 有关详细信息,请参阅使用“未加载符号/未加载源”页面。

相关内容

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号