符号服务器上传工具:symstore 与主机平台等价工具
January 15, 2026About 3 min
符号服务器上传工具:symstore 与主机平台等价工具
发布构建之后崩溃 dump 要能还原成可读调用栈,前提是 pdb/符号在出包时就归档进了符号服务器。Windows 侧用的是 symstore.exe(随 Windows SDK / WDK 附带),主机平台各自带一个 CLI,但参数模型几乎一模一样——理解 symstore 就等于理解了它们全部。
symstore.exe(Windows)
随 Windows Kits 附带,路径通常是:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\symstore.exe
事务的第一个参数是 add / query / del。最常用的是 add:
symstore add [/r] [/p [/l] [-:REL] [-:NOREFS]] /f File /s Store /t Product [/v Version] [/o] [/c Comment] [/d LogFile] [/compress]
symstore query [/r] /f File /s Store [/o] [/d LogFile]
symstore del /i ID /s Store [/o] [/d LogFile]
把一个构建的所有符号递归压缩归档进网络符号库:
symstore.exe add /s \\symserver\symbols /compress /r /f MyGame\Binaries\Win64\*.* /t MyGame
常用参数
| 参数 | 含义 |
|---|---|
/f File | 要归档的文件或目录(支持通配符) |
/s Store | 符号库根目录 |
/t Product | 产品名,用于在库里分类 |
/v Version | 产品版本 |
/r | 递归处理目录 |
/compress [CAB|ZIP] | 归档时压缩(默认 CAB);与 /p 互斥 |
/p | 只存指向原文件的指针,不存文件本身 |
/l | 配合 /p,允许指针指向本地路径而非网络路径 |
/x IndexFile | 不实际拷符号,只把索引信息写进 IndexFile,供之后 /y 读回 |
/a | 配合 /x,把索引追加到已有索引文件 |
/d LogFile | 把输出写到日志文件而非 stdout |
/o | 详细输出 |
/c Comment | 给本次事务加注释 |
/i ID | 事务 ID(del 用它指定要删的事务) |
/p 指针模式适合符号文件本体已经在别处(比如 build 产物归档),符号库只记一个引用,省空间;直接归档则用 /compress。
完整参数见 SymStore 命令行选项。
主机平台的等价工具
主机平台 SDK 各自带一个符号上传 CLI(出于 NDA 这里不点名具体二进制),但事务模型跟 symstore 高度一致——同样是 add 子命令 + 一组语义对应的开关:
| 通用语义 | symstore | 主机工具(典型) |
|---|---|---|
| 指定文件/目录 | /f | /f <path>(支持通配符、UNC、HTTP) |
| 指定符号库 | /s | /s <server>(本地或 UNC) |
| 递归 | /r | /r |
| 只存指针 | /p | /p(/l 允许本地路径指针) |
| 压缩 | /compress | /compress |
| 详细输出 | /o | /o |
| 日志重定向 | /d | /d <log> |
主机工具往往还多两个实用开关:
/force:符号库里已存在同名可执行文件时强制覆盖上传——重打同版本时常用。/tag <tag>:给符号库日志里的条目打标签,标明来源(哪条流水线、哪个版本),便于后续追溯。- 部分工具的
/f支持@responsefile形式,文件里每行一个待上传文件,适合批量。
典型用法,把一个可执行连同符号传到 UNC 符号库:
<symupload-tool> add /f MyGame.<ext> /s \\symserver\symbols
实战要点
- 出包流水线里同步归档符号,别等崩了再找 pdb——RETAIL/Shipping 包剥离了符号,事后没有匹配的 pdb 就只能看地址。
- 符号库放在团队可访问的 UNC 共享或专用符号服务器上,崩溃分析时调试器直接配这个路径。
- 重打同版本用
/force(主机工具)覆盖,避免「已存在」报错。 - 用
/t(symstore)或/tag(主机工具)把版本/流水线信息带进去,几个月后回头查 dump 才对得上是哪一版。