如何查看二进制文件和PDB的GUID?
使用VS自带的DUMPBIN工具可以查看二进制文件所期望的PDB的GUID。基本用法就是DUMPBIN /HEADER 文件,具体用可可参考MSDN(http://msdn.microsoft.com/zh-cn/library/c1h23y6c(v=vs.80).aspx)。
查看PDB的GUID可以用下面这个工具,直接将PDB拉进去即可。
http://www.codeproject.com/Articles/37456/How-To-Inspect-the-Content-of-a-Program-Database-P
PDB文件的查找策略
先上试验结果,可以再调试的时候从Visual Studio 的Module串口中查找到一个module的symbol的查找策略。从截图中我们可以看到结果如下:
1. 文件被执行或者被载入的地址
2. 就是硬编码在PE文件头中的那个地址。大家可以看到obj\<config>才是最原始生成的地址,只是之后被拷贝到了第一个地址中去了。
2.5 如果配置了符号服务器,第二步以后应该先去符号服务器的缓存目录下找,如果找不到再去符号服务器上去找。找到的话就会下载到缓存目录。
3. 第三部分是我VS中设置的一些符号查询的目录,因为我装过Reflector所以默认加了这几个目录在我的设置中。
4. Windows文件夹。
这里有一个比较有意思的现象就是,VS的查找策略都是会先找一个目录下的symbol\exe\project.pdb,然后exe\project.pdb,最后才找project.pdb。这个顺序有点出人意料。
PDB文件会影响性能么?
可能有些人会觉得PDB文件的生成会对最终的应用程序的性能产生一定的影响,所以觉得在发布版中不应该生成PDB文件。
错!对于.NET应用程序来说,生成PDB文件不会影响编译器的优化,所以也完全不会影响应用的性能。只会对于生成的程序集中的一个DebuggableAttribute的属性产生影响。有兴趣的人可以阅读Do PDB Files Affect Performance?
相关视频教程推荐:《ASP.NET教程》
以上就是pdb是什么文件?的详细内容!
相关阅读 >>
代码分析:在.net core中使用ref和span<t>提高程序性能
更多相关阅读请进入《pdb》频道 >>

C#高级编程(第11版) C# 7 & .NET Core 2.0(.NET开发经典名著)
作者:[美]克里斯琴·内格尔(Christian Nagel)著。出版时间:2019年3月。