If you would like to use the built-in Gecko Profiler with a local build of Firefox for Windows, you will need to point the profiler to a local Snappy Symbolication Server instead of the official Mozilla symbolication server. The server will host the local Firefox symbols for the profiler and it will fetch any symbols not available locally from the official Mozilla symbolication server (e.g. symbols for Windows DLLs and plugin DLLs).
NOTE: You only need to run a local symbolication server if you're on Windows and you've built Firefox yourself. For any official release of Firefox (Nightly, Beta, etc), you do not need a local symbolication server.
How to deploy the Snappy Symbolication Server locally:
ac_add_options --enable-profilingto your Firefox .mozconfig file.
- Build Firefox with debug symbols: https://developer.mozilla.org/en/Building_Firefox_with_Debug_Symbols
- Generate the Breakpad symbol files: https://developer.mozilla.org/en/Building_Firefox_with_Debug_Symbols#Breakpad_symbol_files
- Get a copy of the Snappy Symbolication Server source code:
git clone git://github.com/vdjeric/Snappy-Symbolication-Server.git
- Edit the server's sample.ini configuration file:
- Set the
Firefoxsymbol path to the newly generated Breakpad symbol files, for example:
Firefox = C:\mozilla-central\objdir\dist\crashreporter-symbols\
- Third party symbols such as Windows DLLs are hosted on Mozilla's servers, so set osSymbolsPath to any empty directory. For example:
Windows = C:\Temp
You might want to do the same for the
- Uncomment the
remoteSymbolServerline by removing the semi-colon (the ; character)
- Set the
- Run the server as follows. You will need to have Python 2.7 installed (http://www.python.org/getit/windows/):
python symbolicationWebService.py sample.ini
- Point the Gecko Profiler extension to the local symbolication server by adding a new string property "
profiler.symbolicationUrl" to your browser's about:config page. Set the property value to
You should now be able to get full Windows and Firefox symbols in your profiler traces. If you run into issues with the server, you can make logging more verbose by changing the
enableTracing setting in the
sample.ini config file to
1 instead of