Net Core教程

vs2022 如何让.net库文件参与程序调试【可以.net库文件的源代码中设置断点,单步跟踪】

本文主要是介绍vs2022 如何让.net库文件参与程序调试【可以.net库文件的源代码中设置断点,单步跟踪】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

由于.net core 是开源的。所以可以让.net库文件参与程序调试。具体vs2022配置如下

 

 1、设置VS2022 加载程序数据文件(.pdb俗称符号文件)

1)选择工具>选项>调试>符号,并确保已选中“ Microsoft符号服务器(.NET框架相关的库)和NuGet.org符号服务器”选项。为符号高速缓存指定目录是避免再次下载相同符号,提高源码查看效率。

2)在“工具” >“选项” >“调试” >“常规”中禁用【启用“仅我的代码”】

3)在“工具” >“环境” >“文档” >勾选【在解决方案的管理器中显示杂项】点击完成,再次运行调试的时候,编译器就会从https://raw.githubusercontent.com/下载Dll库的源代码(仅限.net core)

 

 

 

 

 

2、Visual Studio 提供两种 加载模式:

 

  • 自动加载所有模块的符号,除非排除:如标题所示,除非通过单击"指定排除的模块"将模块添加到排除列表中,否则 Visual Studio 将尝试为进程中的所有模块加载符号。如果您希望为进程中的几乎所有内容加载符号,或者由于内存或调试启动性能原因,您不希望加载少数非常大的符号,则通常需要此设置。
  • 仅指定模块:默认情况下,此设置将加载磁盘上二进制文件旁边的符号,但不会尝试加载任何其他模块的符号,除非您通过单击"指定模块"将它们添加到包含列表中。例如,如果您想使用手动加载,但始终加载名称中带有"Microsoft"的任何内容的符号,则可以输入"*Microsoft*"

 

 vs2022 默认是加载所有符号的,这大型项目中式很影响调试的。所以在大型项目中要设置成按需加载符号,如下操作:

 

 

 

 

 

 

 

 

 

 

符号未加载的一些常见原因包括:

 

 

  • 符号路径未指向正确的位置
  • 符号文件来自与进程中加载的模块版本不同的模块版本
    • Visual Studio 要求符号文件来自与模块完全相同的内部版本。它无法加载来自不同版本的符号,即使源代码相同
  • [仅限托管]"仅我的代码"设置阻止调试器加载符号文件

 

这篇关于vs2022 如何让.net库文件参与程序调试【可以.net库文件的源代码中设置断点,单步跟踪】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!