Profiling local talos runs
If you would like to use the Gecko Profiler with a local talos run of a local build of Firefox for Windows, you will need to point talos to a zipfile containing breakpad-style symbols for your build. Follow the steps below:
NOTE: You only need to do this if you're on Windows and you've built Firefox yourself. For any official release of Firefox (Nightly, Beta, etc), you do not need to use these steps.
- Make sure you don't have
ac_add_options --disable-crashreporterin your Firefox .mozconfig file.
- If you're building a Beta or Release channel version, and you want proper C++ callstacks in your profiles, add
ac_add_options --enable-profilingto your Firefox .mozconfig file. You don't need to do this if you're building Nightly, because
--enable-profilingis the default on Nightly.
- Build Firefox as usual, e.g. using
- Generate the Breakpad symbol files by running
./mach buildsymbols: https://developer.mozilla.org/en/Building_Firefox_with_Debug_Symbols#Breakpad_symbol_files
- This will have created symbols under
$OBJDIR/dist/, named after the binary name, architecture and version, so something like
Point talos to this zipfile by passing its path to the
Profiling local builds (without using talos)
The instructions are almost the same as above: All you need to do is run
./mach buildsymbols after you've compiled Firefox (and every time you rebuild). The Gecko profiler add-on from https://perf-html.io/ will automatically consult the generated symbol files for profile symbolication. (And make sure you don't have
--disable-crashreporter in your .mozconfig, because that setting makes
./mach buildsymbols inoperative.)
In the past, you had to run a symbolication server locally. This is no longer necessary; the implementation of the geckoProfiler WebExtension API knows how to locate the generated symbol files in your object directory and how to parse them.