原文:http://blog.youkuaiyun.com/oeichenwei/archive/2009/06/04/4243463.aspx
使用Windbg或者VS2008根据dump文件(如何创建c++ Minidump)来调试程序的话,需要PDB文件。
但是,每天都在build,就有很多版本的PDB,文件,怎么进行管理呢?微软的系统DLL的符号服务器,我想大家都用过,这个很好!如何搭建自己的符号服务器呢?
首先下载 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/BuildShare/2195free/symbols/*.*
/s //sampledir/symsrv /t "Windows 2000" /v "Build 2195 x86 free"
/c "Sample add"
稍微解释一下是如何关联PDB和DLL的,在使用Windbg进行调试的时候,首先会验证dump文件里面和DLL里面的Code View signature和age,然后PDB里面也有保存Signature,symstore这个工具就是在每个pdb目录下面根据signature和age建立目录。比如,ntdll.pdb目录下面会有很多子目录,子目录里面才对应各个版本的实际PDB。
可以参考此文:http://aegisknight.org/2009/03/reporting-crashes-in-imvu-creating-your-very-own-symbol-server/
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/oeichenwei/archive/2009/06/04/4243463.aspx