pdb文件与dll/exe文件的关联。

 

基本知识:

 

在build  dll/exe文件和pdb文件的时候,会有一个GUID被写入dll/exe文件和pdb文件中去,调试器根据这个GUID来判断二者是否匹配。

每次重新build的时候,GUID都会不同,即使源代码没有变化。

 

 

对于一个dll或者exe文件,调试器是如何寻找对应的pdb文件的呢? 他并不是寻找具有相同文件名的pdb文件,而是在PE头里面寻找。每一个dll/exe文件都有一个PE头,其中有一项是规定了pdb文件的名称的。最简单的方法是用一个二进制编辑器打开dll/exe文件,搜索pdb即可。

 

当然也有专业的工具专门检查,比如windbg自带的一个工具叫做symchk.exe。运行:

symchk.exe  a.dll -v -s 。

就可以在当前目录下搜索a.dll的pdb文件了。

 

 

另外还有一个工具叫做chkmath.exe,他不仅可以检查dll文件和pdb文件是否匹配,而且如果不匹配的话,可以强行匹配,当然这么做是有风险的。下载网站是 http://www.debuginfo.com/tools.html

 

参考link : http://blog.csdn.net/superleolx/archive/2011/01/12/6131972.aspx

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值