gecko-dev/build/.gdbinit.loader
Steve Fink 14bc264f47 Bug 1642121 - Remove directory dependence of GDB init files. r=nalexander
I wrote this patch to address two problems:

  1. if I do `mach run` from a directory other than $topsrcdir, $objdir, or
     $objdir/dist/bin, then .gdbinit will not be loaded.
  2. Debugging the firefox binary will never load the JS prettyprinters in any
     case.

I believe this patch fixes other problems as well, such as .gdbinit_python not being found, and the gdbpp pretty-printers not getting loaded in various situations.

The main changes of this patch are:

  1. Move .gdbinit into build/ (and $objdir/build/) to delay it from getting
     loaded until the search path is configured.
  2. Move libxul.so-gdb.py into the correct directory.
  3. Use either libxul.so-gdb.py or js-gdb.py to configure the correct
     search path then load .gdbinit, and have .gdbinit load all of the
     pretty-printers (Gecko and JS).
  4. Use a single preprocessed file to configure the source directory. Use
     relative paths within the objdir for everything else.

Differential Revision: https://phabricator.services.mozilla.com/D77589
2020-06-16 15:45:43 +00:00

30 lines
1005 B
Plaintext

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# loader for .gdbinit file
# This file provides a guard against multiple inclusion. GDB command syntax is
# rather limited in that you cannot have a `documentation` command inside of an
# `if`. So we use a separate loader file that sources `.gdbinit` within the
# `if`.
# You may need to put an 'add-auto-load-safe-path' command in your
# $HOME/.gdbinit file to get GDB to trust this file. If your builds are
# generally in $HOME/moz, then you can say:
#
# add-auto-load-safe-path ~/moz
# Multiple include guard
if $_moz_gdbinit_loaded
# already loaded
else
set $_moz_gdbinit_loaded=1
source -s build/.gdbinit
# This requires $objdir to have been added to gdb's source directory search
# path. Normally this will be done by libxul.so-gdb.py or js-gdb.py.
source -s build/.gdbinit.py
end