Source code
Revision control
Copy as Markdown
Other Tools
# Building with Debug Symbols
```{eval-rst}
+--------------------------------------------------------------------+
| This page is an import from MDN and the contents might be outdated |
+--------------------------------------------------------------------+
```
By default, a release build of Firefox will not generate debug symbols
suitable for debugging or post-processing into the
{ref}`breakpad <crash-reporting>` symbol format. Use the
following {ref}`mozconfig <configuring-build-options>` settings
to do a build with symbols:
## Building Firefox with symbols
There is a single configure option to enable building with symbols on
all platforms. This is enabled by default so unless you have explicitly
disabled it your build you should include symbols.
```
ac_add_options --enable-debug-symbols
```
This can optionally take an argument for the type of symbols that need
to be produced (like "-g3"). By default it uses "-g" on Linux and MacOS.
This value takes precedence over the flags set in `MOZ_DEBUG_FLAGS`
Note that this will override the values provided for `CFLAGS` and
`CXXFLAGS`.
## Breakpad symbol files
After the build is complete, run the following command to generate an
archive of {ref}`Breakpad <crash-reporting>` symbol files:
```bash
mach buildsymbols
```
Treeherder uses an additional `uploadsymbols` target to upload
symbols to a socorro server. See
{searchfox}`toolkit/crashreporter/tools/upload_symbols.py`
for more information about the environment variables used by this
target.
## `make package`
If you use `make package` to package your build, symbols will be
stripped. If you want to keep the symbols in the patches, you need to
add this to your mozconfig:
```
ac_add_options --disable-install-strip
```