创建自己的PDB Server

本文介绍了如何使用Debugging Tools for Windows中的symstore.exe工具创建一个自定义的PDB服务器,以方便在敏捷开发和CI流程中快速定位问题。通过symstore.exe的使用方法和示例,详细解释了如何将PDB与DLL进行关联,并讨论了Windbg在调试过程中验证签名和age的过程。参考链接提供了更多关于建立和使用符号服务器的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新来组里半年,今天在发版验证的时候出现崩溃,在崩溃dump的时候寻找PDB,发现目前组里已经建立了一套自动获取PDB和dll/EXE等的符号服务器,具体来说就是可以像微软的符号服务器一样自动搜索加载。

在面对目前敏捷开发与CI流程自动比较普遍的环境下,如果搭建一套工程的符号服务器,那么无疑给我们定位问题方便许多。

废话说多了,那么具体怎么来做:

下载 Debugging Tools for Windows,使用symstore.exe帮助搭建

用法如下:

symstore.exe add /r /f source_dir_where_your_pdbs_are /s root_of_yor_symstore /t product_name /v version_id /compress

示例如下:

symstore add /r /p /f //BuildServer/DailyBuild/2.3.5beta/symbols/*.*
   /s //sampledir/symsrv /t "Windows 2000" /v "Build 235 x86 free"
   /c "Sample add"

稍微解释一下是如何关联PDB和DLL的,在使用Windbg进行调试的时候,首先会验证dump文件里面和DLL里面的Code View signature和age,然后PDB里面也有保存Signature,symstore这个工具就是在每个pdb目录下面根据signature和age建立目录。比如,ntdll.pdb目录下面会有很多子目录,子目录里面才对应各个版本的实际PDB。

可以参考:

https://msdn.microsoft.com/en-us/library/ms680693(v=vs.85).aspx

http://aegisknight.org/2009/03/reporting-crashes-in-imvu-creating-your-very-own-symbol-server/



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值