Breakpad/Design/Symbol Server: Difference between revisions

bit of a rewrite
(Copy information from the other symbol server page)
(bit of a rewrite)
 
Line 1: Line 1:
'''[[Breakpad/Design|« back to Breakpad design page]]'''
'''[[Breakpad/Design|« back to Breakpad design page]]'''


= Breakbag as a Symbol Server =
= Breakpad as a Symbol Server =


== Symbol Server ==
== Breakpad symbol store ==


Breakpad includes a [http://google-breakpad.googlecode.com/svn/trunk/src/processor/simple_symbol_supplier.h simple symbol supplier] that looks for symbols in an organized filesystem setup like Microsoft's Symbol Server.  The format is:
Breakpad includes a [http://google-breakpad.googlecode.com/svn/trunk/src/processor/simple_symbol_supplier.h simple symbol supplier] that looks for symbols in an organized filesystem setup like Microsoft's Symbol Server.  The format is:
<code>
<code>
file.pdb/GUID+AGE/file.sym
file.pdb/IDENTIFIER/file.sym
</code>
</code>
Where file.pdb is the name of the debug info file, and GUID and AGE are the GUID and AGE from the debug info fileI'm not sure how this will generalize to non-Windows systems, but there are OS X support patches in progress, so we'll see soon enough.
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 PDBThe .sym files are produced from binaries using the dump_syms tool, but there is [http://mxr.mozilla.org/mozilla/source/toolkit/airbag/tools/symbolstore.py 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 [http://mxr.mozilla.org/mozilla/source/toolkit/airbag/tools/upload_symbols.sh the upload symbols script] for more information on its workings.


The symbols from a 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.
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.


I've also written [http://mxr.mozilla.org/mozilla/source/toolkit/airbag/tools/make_symbol_store.pl a script to process pdb files into the proper directory structure for SimpleSymbolSupplier].
== Symbol Server ==


We can get Windows OS symbols here: [http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx Download Windows Symbol Packages] and run dump_syms or the previously mentioned script on them to make them useful to breakpadIn addition you can [http://support.microsoft.com/kb/311503 download symbols using symchk], which can get you the latest symbols from Microsoft.
The Breakpad symbol store can be served directly via HTTP to act as a Microsoft Symbol Server for debugging release builds.  [http://developer.mozilla.org/en/docs/Using_the_Mozilla_symbol_server We have set this up for Firefox builds].


== Source Server ==
== Source Server ==
Confirmed users
321

edits