mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-17 20:34:34 +00:00
14bc264f47
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
30 lines
1005 B
Plaintext
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
|