Breakpad/Design/Symbol Server
« back to Breakpad design page
Contents
Breakpad as a Symbol Server
Breakpad symbol store
Breakpad includes a simple symbol supplier that looks for symbols in an organized filesystem setup like Microsoft's Symbol Server. The format is:
file.pdb/IDENTIFIER/file.sym
Where file.pdb is the name of the debug info file, and IDENTIFIER can either be a hash of the binary contents or a GUID from a PDB. The .sym files are produced from binaries using the dump_syms tool, but there is a script in the Mozilla source tree that will run dump_syms and generate the proper directory structure at the same time. In the Mozilla build system, running the |make buildsymbols| target in the top level Makefile will run this script against your current tree and produce a symbol store. There is also an |uploadsymbols| target in that same Makefile that can transfer the symbols to a remote server and unpack them. See the upload symbols script for more information on its workings.
The symbols from a Win32 nightly build of Firefox are approximately 60-70Mb in size including only the .sym files, and 140-160Mb in size including the .pdb files as well.
Symbol Server
The Breakpad symbol store can be served directly via HTTP to act as a Microsoft Symbol Server for debugging release builds. We have set this up for Firefox builds.
Source Server
It may also be possible (though not currently planned) to use a similar system as a Source Server. This involves identifying CVS revisions of particular sources and saving the information in the PDB files.