配置PDB符号文件服务

配置PDB符号文件服务器的想法

刚入职的小木,前不久刚刚解决了一次crash问题《Windbg分析程序崩溃实践
。 小木没有松懈,继续进行项目代码和Debug技术的学习,同时也思考了一个问题: "产品每隔一段时间就会发布新的版本,当出现Crash问题的时候得手动去拷贝对应版本的pdb文件到本机进行调试,有没有什么方式可以实现自动化呢?"嗯,小木是一个合格的程序员,程序员就是致力于让重复的工作自动化。

小木继续想,如果能把产品每次发布的pdb文件存储到一个服务器,就像微软的symbol server一样就好了http://msdl.microsoft.com/download/symbols。这样在调试机器上的Windbg,配置产品的pdb文件服务器就好了。 带着这样的问题,小木进行网络搜索,发现了这两篇文章《PDB符号文件详解》《Reporting Crashes in IMVU: Creating Your Very Own Symbol Server》,正好可以解决自己的问题。

配置PDB符号文件服务器

  1. 准备一台PDB的Server,假设这个是一台windows,将一个目录以可读写的权限共享给局域网的其他人。比如symbols目录,这样局域网其他机器可以通过\\<Symbol_Machine Hostname/IP>\symbols进行访问。
  2. 编辑自己的编译脚本,让其在编译完程序后,运行如下命令: <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了。

大功告成,小木心想: 自动化的过程,不仅让未来节省手动操作时间,同时也让自己学到了新的知识。


最后是个人微信公众号,文章CSDN和微信公众号都会发,欢迎一起讨论。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CJF_iceKing/article/details/109905322
pdb
今日推荐