刚入职的小木,前不久刚刚解决了一次crash问题《Windbg分析程序崩溃实践》。小木没有松懈,继续进行项目代码和Debug技术的学习,同时也思考了一个问题“产品每隔一段时间就会发布新的版本,当出现Crash问题的时候得手动去拷贝响应版本的pdb文件到本机进行调试,有没有什么方式可以实现自动化呢?” 嗯,小木是一个合格的程序员,程序员就是致力于让重复的工作自动化。
小木继续想,如果能把产品每次发布的pdb文件存储到一个服务器,就像微软的symbol server一样就好了http://msdl.microsoft.com/download/symbols
。这样在调试机器上的Windbg,配置产品的pdb文件服务器就好了。带着这样的问题,小木进行网络搜索,找到了问题的答案。
symbols
目录,这样局域网其他机器可以通过\\<Symbol_Machine Hostname/IP>\symbols
进行访问。<windbg_installation_path>\symstore.exe add /s \\<Symbol_Machine Hostname/IP>\symbols /compress /r /f <product_build_PDB_Path>\*.pdb /t blogserver
a. symstore.exe
可以在你的windbg安装目录中找到
b. 产品名字blogserver
c. /compress
对pdb进行压缩存储
d. 将symbols从<product_build_PDB_Path>\*.pdb
读取,并且添加到服务器的\\<Symbol_Machine Hostname/IP>\symbols
3. 上述symbols可以做到,在产品每次发布后将symbols保存到指定的server地址。这个时候在windbg中只要设置好pdb的server即可。可以在Windbg打开后打开菜单File
->Symbol File Path ...
中配置srv*<your local path to cache>*\\<Symbol_Machine Hostname/IP>\symbols
。然后保存当前workspace,这样就可以在以后每次打开windbg,进行分析的时候,自动从配置的symbol服务器下载匹配的symbols了。
大功告成,小木心想: 自动化的过程,不仅让未来节省手动操作时间,同时也让自己学到了新的知识。