目的
Visual Studio 在编译后,能帮助我们生成符号文件(.pdb),无论是查看 dump,还是做性能分析时加载,都是必不可少的。
但编译出的程序版本一多,维护和使用符号文件就成了个十分头痛的问题。这时,我们需要搭建自己的符号服务器来解决这个问题。
搭建
安装必备工具
Debugging Tools for Windows 官方下载地址
安装后,把安装目录添加到环境变量PATH里,保证命令提示符(cmd.exe)上输入symstore命令可以正常执行。
准备符号服务器
一个空的 windows 共享文件夹即可。空文件夹上点击右键->选"属性"->选"共享"页签进行设置即可。
比如,我的地址是 \\192.168.1.100\SymStore
。
上传符号到符号符号服务器
保存 drop_bin_dir_to_me.zip 到本地并解压缩
配置其中 drop_bin_dir_to_me.bat 的选项变量 SYMSTOREPATH 为你的符号服务器地址
把包含符号的文件夹拖到 drop_bin_dir_to_me.bat 上,完事
注意:bat脚本会自动清理过期的符号(目前暂定过期时间为2个月)
使用
按照下面方式配置好 Visual Studio 后,再后续查看 dump 堆栈、或者做性能分析加载符号,就不用四处找pdb。
以 Visual Studio 2017 为例做说明:
vs2017->工具->选项->调试->符号
添加自定义符号服务器"\\192.168.1.100\SymStore"
注意:如果你本地已有符号,会从本地而不会从符号服务器中查找。不会影响你的日常开发。
参考文档
https://docs.microsoft.com/en-us/windows/win32/debug/using-symstore
symstore /?