关于VS调试时的加载符号

时间:2024-03-30 17:25:25

   
   
   
      前两天安装了VS2017,随便写了几行代码测试下,发现调试时要有一大堆的加载符号,像【已加载“D:\SogouInput\Components\PicFace\1.1.0.1781\PicFace.dll”。无法查找或打开 PDB 文件。】,个人比较小白,不懂这些加载符号是什么意思有什么用,于是上网查了下。网上给出的信息比较杂,经过一番总结归纳,得出下面的结论(也许是错的,望大神指教):符号,也叫作PDB文件(符号文件),里面包含的都是我们的源代码信息,比如变量名、函数名等等。这些符号文件的主要作用,是在我们写的源代码文件和编译后的二进制可执行指令间,生成爸爸配儿子的对应关系,是为了调试用的。比如我们在源代码文件中的某一行设置了一个断点,那么编译器会根据这种对应关系,在二进制可执行指令堆中找到这个断点对应的正确位置并设置好。

      那么我为什么会心血来潮搜索符号呢?这是因为我以前用VS2015时,调试代码时按下F5能很快进行,但试用17时却发现这个加载符号似乎占用了不少时间,这让我不爽。于是查查加载符号有什么用是否可以关闭。网上给出的建议是可以关闭但不建议。我先说怎样关闭吧:点击【工具】》【选项】,在弹出的框中再点击【调试】》【符号】,再把【Microsoft符号服务器】前面的√去掉,最后点击【确定】即可,如下图所示:

关于VS调试时的加载符号


      当我这样做以后,我发现我依然可以给程序设置断点,依然可以进入反汇编。这我就有点不懂了,也许是因为主要的符号模块是默认必须加载的,也许是别的原因;如果有大神知道,还望大神费神科普,非常感谢。