Breakpad/Design/Symbol Server

From MozillaWiki
Jump to: navigation, search

« back to Breakpad design page

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.