逐步调试第三方组件包,用它就可以

大家好,我是本期的实验室研究员——张广坡。今天我将通过实验和完整的操作过程,向大家介绍如何使用 Source Link 调试 Bootstrap Blazor 开源组件库。接下来就让我们一起到实验室中一探究竟吧!

微软MVP实验室研究员

逐步调试第三方组件包,用它就可以_第1张图片

思路浅析

当我们使用第三方组件包的时候,尤其是遇到小问题的时候,特别想通过逐步调试进入到某个方法内部去看看其具体逻辑,这样做会给我们带来极大的便利,然后现实非常残酷,我们在一无源代码二无 PDB 的情况下想要实现逐步调试是不可能的任务。那么我们如何才能逐步调试第三方组件包呢?

通过本次实现,我们以第三方 Bootstrap Blazor 组件包为例,通过 Source Link 对此组件包进行逐步调试。

喜欢 Bootstrap Blazor 组件库的小伙伴们在日常开发过程中常常会遇到一些问题,非常想对 Bootstrap Blazor 组件库进行代码调试,是否有一种简单的办法让我们不需要项目引用 Bootstrap Blazor 的情况下就可以逐语句调试呢?答案就是 Source Link。

什么是Source Link

Source Link 是开发人员的一项生产力功能,它允许在编译过程中将有关程序集原始源代码的唯一信息嵌入到PDB中的一组软件包和规范。通过 SourceLink 添加到 PDB 文件中的元数据,和本地源代码文件、仓库内的代码文件建立了一个映射关系。因此 Visual Studio 调试时可以在需要时下载文件, 并为用户提供源代码调试, Microsoft库(例如.NET Core和Roslyn)都已启用Source Link。

开源地址:
https://github.com/dotnet/sou...

我们本地开发时传统的调试模式还是通过引用源代码的方式进行代码调试,这使得我们很难调试没有源代码的第三方组件库。我们可以通过 Source Link 在无需源码的情况下获得极佳的调试体验。

配置 Visual Studio IDE 工具

步骤 1 - 配置 NuGet.org 符号源

默认情况下,NuGet.org 符号源未启用。为了让 SourceLink 正常工作,Visual Studio 需要能够下载这些源代码,因此我们必须先进行设置。

在 Visual Studio 中,转到 工具–>选项–>调试–>符号:

逐步调试第三方组件包,用它就可以_第2张图片

确保选中“NuGet.org 符号服务器”选项。

步骤2 - 禁用 “仅我的代码”

接下来,我们需要转到 工具–>选项–>调试–>常规设置窗口并禁用“仅我的代码”选项:

逐步调试第三方组件包,用它就可以_第3张图片

步骤 3 - 启用源服务器和源链接支持

默认情况下,Visual Studio 中已启用 SourceLink 支持,但未启用源服务器支持。

再次,转到 工具->选项->调试->常规设置窗口并进行以下更改:

逐步调试第三方组件包,用它就可以_第4张图片

配置完毕,我们开始进入调试之旅。

调试组件

新建工程引用 Bootstrap Blazor 组件包,后开始进行调试。

逐步调试第三方组件包,用它就可以_第5张图片

命中断点后,按 Ctrl + Alt + U 快捷键,调出 Modules 窗口。

逐步调试第三方组件包,用它就可以_第6张图片

从 Modules 窗口通过 Name 排序后可以看到我们要调试的 Bootstrap Blazor 组件包并未加载 PDB 文件,此时我们点击右键如图所示,选择 Load Symbols 根据每个人的网络情况会有一些延时,此时 Visual Studio 会从 Nuget.org 上下载组件包所需的 PDB 文件,下载完毕后,我们按 F11 (逐行调试)弹出对话框如下:

此时由于本地仅有刚刚下载的 PDB 文件,必须有源代码才可以进行逐行调试,所以弹出对话框请求下载源代码并调试,即可以进入到组件包内。

逐步调试第三方组件包,用它就可以_第7张图片

逐步调试第三方组件包,用它就可以_第8张图片

设置命中断点

在我们的日常调试中更多的时候是对源码进行断点,程序运行时命中断点,我们进行调试。使用 Source Link 后我们能否设置源代码断点呢?当然是可以的,上面的方法是需要哪个源码就下载哪个源码,其实是非常不方便的。我们可以一次性把所有源码下载下来,自己根据需求来打开源码文件进行断点设置,如果所示操作,解压缩所有源码。

逐步调试第三方组件包,用它就可以_第9张图片

设置解决方案显示其他项目。

逐步调试第三方组件包,用它就可以_第10张图片

Source Link 支持

  • Azure Repos / DevOps
  • GitLab
  • BitBucker
  • Github

总结

本文以 Bootstrap Blazor 组件库为例讲解了如何通过 Source Link 进行第三方包调试,其他已发布 snupkg 的第三方组件包同样可以调试,包括微软的 asp.net core 框架相关代码。

*Bootstrap Blazor:
*Source Link:
*Github:

微软最有价值专家是微软公司授予第三方技术专业人士的一个全球奖项。28年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和经验而获得此奖项。

MVP是经过严格挑选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的热情并乐于助人的专家。MVP致力于通过演讲、论坛问答、创建网站、撰写博客、分享视频、开源项目、组织会议等方式来帮助他人,并最大程度地帮助微软技术社区用户使用Microsoft技术。
更多详情请登录官方网站:
https://mvp.microsoft.com/zh-cn


扫码关注微软中国MSDN,获取更多微软一手技术信息和官方学习资料!
image.png

你可能感兴趣的:(microsoft)