作为一名程序员,不管是在开发过程中,还是在学习过程,难免会要接触到一些开源项目。当我们碰到了一些奇怪问题或者想深入了解它的实现方式时,就需要去查看它的源码。
但是,看源码估计是绝大部分人噩梦!每个人的思维方式不同,这就需要我们去跟随作者的逻辑,并且代码之间可能需要不断的跳转,让人眼花缭乱!那有没有办法能让我们很方便的直接调试呢?

我想大概有两种方式:
- 下载开源项目的所有源码,加载到我们的项目中,将pack包引用改成项目应用
这种方式,可能会因为我们本身项目的其他nuget包版本不同导致编译错误,同时也会导致项目变大,拖慢编译速度。不是很理想。
- 使用visual studio的外部源代码(External Sources)
这个功能实在Visual Studio 2022 预览3开始增加的。
在开始调试项目时,解决方案里面新增一个外部源导航,里面会包括我们项目里面使用的所有nuget包。启用的话,调试外部开源项目代码就将和调试我们自己代码一样,超级方便。
visual studio作为宇宙第一IDE,实至名归。

下面我将介绍怎么开启这个功能。
- 在visual studio顶部导航栏依次选择工具->选项->调试
1.在常规一栏中,不勾选启用“仅我的代码”,并且勾选启用“源链接支持”;
2.选中“符号”,勾选NuGet.org服务器(这一步也可以不选,选了的话,调试的适合会重新帮我们下载所有引用的包,可能等待时间比较长);
3.最后点击确定


- 在项目解决方案中找到Ocelot.dll,右键,选中"将源反编译为符号文件",然后,我们就可以在外部源里面看到所有源码。


注意,弄完这一步,我们需要停止调试,再次开始调试,才能进入到断点!
我们找到类RequestMapper,然后在类里面打上断点,等请求发送过来时,就可以命中断点了。需要注意的是,这个有些代码是打不上断点,也有可能查看的变量信息无法在监视里面显示出来。这些都只是小部分,应该不影响我们查找问题或者理解源码。

学会这个技能,在查看源码时,能一步步的跟踪,应该会大幅度的提升我们的效率,至少头不会那么晕,哈哈。
这次的分享就到这里,希望给你的能力提升之路能有帮助。如果觉得我写的不错,请帮我点个关注,感谢!
2691

被折叠的 条评论
为什么被折叠?



