调试 .NET Framework 源代码、.DotNetCore源码

调试 .NET Framework 源代码、.DotNetCore源码

条件

  • 加载符号文件:调试之前要加载符号文件,F11步入才有可能触发源码加载或下载
  • 加载源码(不会自动加载源码的情况):加载符号文件之后,调试器会根据符号文件记录的源码位置查找并打开源码。我们要做的就是触发加载源码的弹窗,手动选择上面下载的源码。

提前断点

  • 选择源码文件之后,即可开始调试。此时打开的源码可以在里面其它地方断点,运行到的时候就会命中断点,但前提是要加载它对应的符号文件
  • 如果需要在运行前断点,并在运行到断点行时命中,需要先加载符号文件:在调试-调试堆栈窗口选择需要断点的模块,单击右键选择始终加载,那么下次运行就会自动加载符号了。也可以在调试堆栈转到模块列表,然后设置加载。或者在工具-调试-符号-始终加载指定模块,填写dll名包括dll

调试DotNetCore

  • DotNetCore是开源的,源码位于github,所有通过Nuget分发的包都会附带构建时的源码,源码版本跟运行的dll版本一一对应,就不会像调试DotNetFramework源码一样差异过大
  • 在运行程序时自动从github下载病并加载加载pdb符号文件。如果加载全部符号启动将变得异常缓慢,所以仅选择需要调试的dll即可

加载符号

  • 首先找到需要调试代码所在的dll名称,在需要调试的方法上点击鼠标右键-转到定义。

1057748-20180910234736792-1638492379.png

  • 此时可能会从服务器上下载源码,需要等一会。下载完之后自动切换标签页,接下来要做的有两步,断个点,然后复制一下类名或者命名空间到.Net API浏览器搜索。

1057748-20180910235518435-105220052.png1057748-20180911000449872-1457731347.png

  • 点击搜索结果,跳转到类详情页,复制dll全称。1057748-20180911000745928-1333852240.png

  • 在VS依次操作:工具-选项-调试-符号-指定包含的模块-右上角加号-粘贴-确定。1057748-20180911001439925-336201563.png

  • 完成符号准备工作,程序运行时将自动从符号服务器下载pdb符号文件并加载进程序。
  • 注意:如果是发布的第三方包,请把pdb删掉,不要一起发布,因为该pdb文件包含的源码地址时打包者电脑地址,其他人加载了改文件将找不到源码。而通过dotnet pack --include-symbols命令打包生成的pdb不好含本地源码地址。这样就不限于打包者本人直接调试通过nuget发布的dll,其他人也将可以通过本文所述方式进行调试,无需自己拉去源码编译dll。相关参考链接

调试

  • 一切顺利的话,运行程序,加载完符号,断点是红色实心,否则就要检查符号是否正常加载。接下来开始愉快的调试之旅

1057748-20180911003345305-244368451.png

运行时加载符号调试

  • 此方法两个框架都适合,在调试自己的代码时,通过调用堆栈切换,触发加载符号的对话框,加载符号即可进行调试,但是下次还要调试时的话要重复此操作

打开调用堆栈

  • 首先在调试时打开调用堆栈。

1057748-20180911004920583-1340863377.png
1057748-20180911004849457-754291621.png

调试中加载符号

  • 未加载符号的堆栈时灰色,双击它,自动出现加载符号页1057748-20180911005129316-1707176975.png点击加载,将自动加载符号并跳转到源码页,在需要调试的地方断点即可开始调试
  • 类似的,调试DotNetFramework源码,可加载本地下载好的符号文件。调试时如果找不到源码文件会自动弹出选择源码的对话框,这时候再选择下载好的源码也可开始调试

注意

  • 下载的DotNetFramework源码可能跟引用的版本不是完全对应,这是需要注意的

转载于:https://www.cnblogs.com/xxred/p/9625073.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: .NET Framework是由微软开发的一个面向对象的编程平台,可以在Windows操作系统上运行多种应用程序。其中的v4.0.30319是.NET Framework的一个重要版本,它在向前兼容的同时,添加了一些新的功能和改进。 要下载.NET Framework v4.0.30319,可以通过访问CSDN网站,即中国软件开发者社区。CSDN是一个以软件开发为主题的网站,提供了很多开发者所需的资源和工具。在CSDN网站上,你可以找到.NET Framework的下载链接,点击下载按钮后,根据指引选择适合你操作系统和需求的版本进行下载。 下载完成后,你可以运行安装程序,按照向导进行安装。安装过程中会进行文件的复制以及相关环境的配置,需要一些时间,请耐心等待。安装完成后,你就可以开始使用.NET Framework v4.0.30319了。 .NET Framework v4.0.30319提供了许多重要的功能,包括对LINQ(语言集成查询)的支持、动态语言运行时(DLR)、并行编程的支持、COM互操作性和多应用程序域等。通过使用.NET Framework,开发人员可以更轻松地创建、部署和运行各种类型的应用程序,无论是Windows桌面应用程序、Web应用程序还是移动应用程序。 总之,如果你需要下载.NET Framework v4.0.30319,可以访问CSDN网站,并按照指引完成下载和安装过程。.NET Framework将为你提供丰富的功能和便利的开发环境,帮助你更加高效地进行软件开发。 ### 回答2: 要下载.NET Framework v4.0.30319,你可以访问CSDN网站并按照以下步骤进行操作: 1. 打开你的浏览器,然后输入CSDN的网址(www.csdn.net)。 2. 在CSDN网站的搜索栏中输入“.NET Framework v4.0.30319”并点击搜索按钮。 3. 在搜索结果中,你可能会看到许多相关的文章、教程和资源。浏览这些资源以找到合适的下载链接。 4. 点击那个下载链接,你将被重定向到一个新的页面或窗口。在这个页面上,你可以找到.NET Framework v4.0.30319的下载按钮或链接。 5. 点击下载按钮或链接开始下载.NET Framework v4.0.30319的安装程序。 6. 一旦下载完成,你可以将安装程序保存到你的计算机上的任何位置,然后双击运行它。 7. 安装程序将指导你完成安装过程。按照屏幕上的指示操作,直到安装完成。 8. 一旦安装完成,你就可以开始使用.NET Framework v4.0.30319进行编程和开发。 请注意,下载.NET Framework v4.0.30319或任何其他软件时,确保从可信任的来源下载,以避免安全问题。此外,根据你的操作系统和需求,可能有其他下载和安装选项可用。建议定期检查微软官方网站和CSDN等资源,以获取最新的软件版本和更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值