Building Firefox with Debug Symbols
Building firefox with debug symbols has been a rather tricky endeavor for me for quite some time. The documentation on how to do this seems to indicate that adding these lines to your mozconfig file should be sufficient:
export MOZ_DEBUG_SYMBOLS=1 ac_add_options --enable-debugger-info-modules=yes
should do the trick. However, I have (for months now) been running into this make error: no rule to make nspr4.pdb needed by export whenever I try to build with debug symbols. Bug 338224 has a pending patch for this issue. In the mean time, the following trick seems to solve the problem for me: force the -Zi compiler option into the compiler flags variable. For the nspr files, the PDB file will be generated as desired. For the other files, the -Zi option will be redundant but this fix gets you up and running ASAP. Here’s the associated patch file:
diff --git a/nsprpub/configure.in b/nsprpub/configure.in --- a/nsprpub/configure.in +++ b/nsprpub/configure.in @@ -2827,18 +2827,18 @@ if test -n "$_SAVE_DEBUG_FLAGS"; then fi if test -n "$MOZ_OPTIMIZE"; then CFLAGS="$CFLAGS $_OPTIMIZE_FLAGS" CXXFLAGS="$CXXFLAGS $_OPTIMIZE_FLAGS" fi if test -n "$MOZ_DEBUG_SYMBOLS"; then - CFLAGS="$CFLAGS $_DEBUG_FLAGS" - CXXFLAGS="$CXXFLAGS $_DEBUG_FLAGS" + CFLAGS="$CFLAGS $_DEBUG_FLAGS -Zi" + CXXFLAGS="$CXXFLAGS $_DEBUG_FLAGS -Zi" fi if test -n "$MOZ_OPTIMIZE"; then OBJDIR_TAG=_OPT else OBJDIR_TAG=_DBG fi
Here is the mozconfig file I used with this patch:
. $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj ac_add_options --disable-xpconnect-idispatch ac_add_options --disable-activex ac_add_options --disable-activex-scripting ac_add_options --disable-accessibility ac_add_options --enable-optimize=no ac_add_options --enable-debug-symbols=yes
Leave a Reply