背景
目前使用jenkins进行每日编译、部署,但是一旦程序出现异常后,查找正确的pdb文件也是件麻烦的事情,所以希望能有微软符号服务器一样的功能。
步骤
通过google 查找一些资料,自己尝试了下,还是比较简单的.
安装windbg
环境变量path 中设置windbg路径。
准备一块大硬盘
会保存很多历史版本的pdb,所以有必要准备一块大硬盘
测试
管理员方式运行cmd
1 | symstore add /r /f d:\public_game\*.pdb /s e:\symstore /t "gamechannel" |
搭建http服务
我们需要提供对外访问符号文件的途径,最简便的方式就是使用IIS创建一个HTTP服务并对外开放。使用搭SII建HTTP服务器的教程网上很多,这里简述以下:
- 打开IIS,选择网站->右键“添加网站”
- 输入网站名称,如Symbols,选择刚创建的符号文件存储目录为物理路径,端口为6776 ,其他保持默认,点击确定。
- 在网站主页中打开MIME类型,右侧添加,文件扩展名输入PDB,MIME类型输入application/octet-stream。这一步是为了允许从该站点访问读取PDB类型的文件。
- 设置权限。我们创建的网站默认情况下是不允许匿名用户访问的,为了允许调试器下载符号,我们需要添加一定的权限。点击右键我们的网站->编辑权限->选择安全选项卡->添加IIS_IUSRS用户或everyone用户并赋予Read & execute,List folder contents和Read三项权限。
- 左侧右键刚创建的网站->管理网站->重新启动。
jenkins 设置
在jenkins 原本保存exe、pdb 的命令下 增加 以上命令即可
windbg 设置
1 | SRV*e:\mylocalsymbols*http://msdl.microsoft.com/download/symbols |
好了,pdb 就可以自动获取了