建设部网站如何下载文件,翻墙国外网站做兼职,微信长图的免费模板网站,建设局网站买卖合同文章目录 vs - ms官方查看pdb文件内容的例子工程概述笔记END vs - ms官方查看pdb文件内容的例子工程
概述
不管哪个版本的VS#xff0c;生成debug版工程时#xff0c;除了工程自己的.pdb还会有vc*.pdb. e.g. vc.pdb, vc70.pdb, vc90.pdb, vc120.pdb, vc140.pdb, vc142.pdb,… 文章目录 vs - ms官方查看pdb文件内容的例子工程概述笔记END vs - ms官方查看pdb文件内容的例子工程
概述
不管哪个版本的VS生成debug版工程时除了工程自己的.pdb还会有vc*.pdb. e.g. vc.pdb, vc70.pdb, vc90.pdb, vc120.pdb, vc140.pdb, vc142.pdb, vc143.pdb. 因为这些vc*.pdb不是全局的pdb, 而是每个工程独有的。 就想看看这些同名的.pdb内容有啥不同。
先去找了一下是否有公版的工具。
最开始在github上看到了PDBExp都是从titilima的工程来的工程都编译不过。 原因是PDL库版本的问题和WTL版本的问题折腾了好久始终编译不过。 这些作者都没有将依赖的PDL库和WTL版本自包含在工程中也就他们自己用的爽。对于其他同学这个PDBExp工程就是垃圾。
后来在 https://www.viksoe.dk/code/pdbexplorer.htm, 看到 pdbexplorer.zip, pdbexplorer_src.zip, 自己编译工程也能编译过(和WTL版本没关系我用的WTL10)能运行。pdbexplorer.zip编译好的也可以运行。 不过这个版本查看的信息比较少。
看到github上MS家自己有个工程 microsoft-pdb 虽然也有工程但是初步看了一下少东西(缺头文件就不去编译了)。
看microsoft-pdb的工程说明受启发了。 以上3个渠道来的工程都是基于MS DIA SDK实现的都是调用的MS的 DIA SDK API. 去查MS官方 DIA SDK的例子(MSDN)说只要装了VS, 在平台SDK的目录有例子工程。
我开发机上已经装了VS2019, VS2017, VS2015, VS2013, VS2008. 那就去VS2019对应的SDK中去找找看真找到了工程了。 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\DIA SDK\Samples\DIA2Dump
将DIA2Dump拷贝到自己的实验目录能编译过能运行。 查看PDB的所有参数的命令行如下
Dia2Dump.exe -all Dia2Dump.pdb my_help.txt这样对2个同名的vc*.pdb, 就可以生成2个.txt, 用文本比对就知道区别了。
笔记 通过VS版本标记 可以看到VS2008, VS2013, VS2015, VS2019都自带DIA SDK的例子工程。
用IDA打开debug版的exe, 里面的符号地址可以和Dia2Dump.exe对.pdb的分析结果对上。说明Dia2Dump.exe分析的对。 只是IDA更专业数据展现的更好。
END