diff options
author | Christian Biesinger <cbiesinger@google.com> | 2019-10-13 07:12:34 -0500 |
---|---|---|
committer | Christian Biesinger <cbiesinger@google.com> | 2019-10-29 13:43:04 -0500 |
commit | ed2a222951020d1117c5e1d4f37e82fd26761267 (patch) | |
tree | dfdcc500b315f3d576b8b8e0fa1a9ced2104da32 /gdb/doc | |
parent | 70cf683455e1a3429d517a2e25a36c438474cfde (diff) | |
download | gdb-ed2a222951020d1117c5e1d4f37e82fd26761267.zip gdb-ed2a222951020d1117c5e1d4f37e82fd26761267.tar.gz gdb-ed2a222951020d1117c5e1d4f37e82fd26761267.tar.bz2 |
Load system gdbinit files from a directory
Adds a configure option --with-system-gdbinit-dir to specify a directory
in which to look for gdbinit files. All files in this directory are
loaded on startup (subject to -n/-nx as usual) as long as the extension
matches a known and enabled scripting language (.gdb/.py/.scm).
This also changes get_ext_lang_of_file to support ".gdb" files, similar
to get_ext_lang_defn's handling of EXT_LANG_GDB.
gdb/ChangeLog:
2019-10-29 Christian Biesinger <cbiesinger@google.com>
* NEWS: Mention new --with-system-gdbinit-dir option.
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac: Add new option --with-system-gdbinit-dir.
* extension.c (get_ext_lang_of_file): Return extension_language_gdb
for a ".gdb" suffix.
* main.c (get_init_files): Change system_gdbinit argument to
a vector and return the files in SYSTEM_GDBINIT_DIR in
addition to SYSTEM_GDBINIT.
(captured_main_1): Update.
(print_gdb_help): Update.
* top.c (print_gdb_configuration): Also print the value of
SYSTEM_GDBINIT_DIR.
gdb/doc/ChangeLog:
2019-10-29 Christian Biesinger <cbiesinger@google.com>
* Makefile.in: Also set SYSTEM_GDBINIT_DIR for the info manual
generation.
* gdb.texinfo (many sections): Document new --with-system-gdbinit-dir
option.
Change-Id: If233859ecc21bc6421d589b37cd658a3c7d030f2
Diffstat (limited to 'gdb/doc')
-rw-r--r-- | gdb/doc/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/doc/Makefile.in | 4 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 74 |
3 files changed, 77 insertions, 8 deletions
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 0d0d905..c1538be 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,10 @@ +2019-10-29 Christian Biesinger <cbiesinger@google.com> + + * Makefile.in: Also set SYSTEM_GDBINIT_DIR for the info manual + generation. + * gdb.texinfo (many sections): Document new --with-system-gdbinit-dir + option. + 2019-10-23 Tom Tromey <tom@tromey.com> * Makefile.in (READLINE_DIR): Update. diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in index 2673499..6588a0c 100644 --- a/gdb/doc/Makefile.in +++ b/gdb/doc/Makefile.in @@ -41,6 +41,7 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ SYSTEM_GDBINIT = @SYSTEM_GDBINIT@ +SYSTEM_GDBINIT_DIR = @SYSTEM_GDBINIT_DIR@ mkinstalldirs = $(SHELL) $(srcdir)/../../mkinstalldirs @@ -425,6 +426,9 @@ GDBvn.texi : version.subst if [ -n "$(SYSTEM_GDBINIT)" ]; then \ echo "@set SYSTEM_GDBINIT $(SYSTEM_GDBINIT)" >> ./GDBvn.new; \ fi + if [ -n "$(SYSTEM_GDBINIT_DIR)" ]; then \ + echo "@set SYSTEM_GDBINIT_DIR $(SYSTEM_GDBINIT_DIR)" >> ./GDBvn.new; \ + fi mv GDBvn.new GDBvn.texi version.subst: $(gdbdir)/version.in $(gdbdir)/../bfd/version.h diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 1208e4f..db3d15b 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -1083,6 +1083,16 @@ Its location is specified with the @code{--with-system-gdbinit} configure option (@pxref{System-wide configuration}). It is loaded first when @value{GDBN} starts, before command line options have been processed. +@item @file{system.gdbinit.d} +This is the system-wide init directory. +Its location is specified with the @code{--with-system-gdbinit-dir} +configure option (@pxref{System-wide configuration}). +Files in this directory are loaded in alphabetical order immediately after +system.gdbinit (if enabled) when @value{GDBN} starts, before command line +options have been processed. Files need to have a recognized scripting +language extension (@file{.py}/@file{.scm}) or be named with a @file{.gdb} +extension to be interpreted as regular @value{GDBN} commands. @value{GDBN} +will not recurse into any subdirectories of this directory. @item @file{~/.gdbinit} This is the init file in your home directory. It is loaded next, after @file{system.gdbinit}, and before @@ -1315,8 +1325,11 @@ Sets up the command interpreter as specified by the command line @cindex init file Reads the system-wide @dfn{init file} (if @option{--with-system-gdbinit} was used when building @value{GDBN}; @pxref{System-wide configuration, - ,System-wide configuration and settings}) and executes all the commands in -that file. + ,System-wide configuration and settings}) and the files in the system-wide +gdbinit directory (if @option{--with-system-gdbinit-dir} was used) and executes +all the commands in those files. The files need to be named with a @file{.gdb} +extension to be interpreted as @value{GDBN} commands, or they can be written +in a supported scripting language with an appropriate file extension. @anchor{Home Directory Init File} @item @@ -26283,6 +26296,13 @@ Display the current value of the @code{script-extension} option. @end table +@ifset SYSTEM_GDBINIT_DIR +This setting is not used for files in the system-wide gdbinit directory. +Files in that directory must have an extension matching their language, +or have a @file{.gdb} extension to be interpreted as regular @value{GDBN} +commands. @xref{Startup}. +@end ifset + @node Sequences @section Canned Sequences of Commands @@ -37054,6 +37074,14 @@ directory under the configured prefix, and @value{GDBN} is moved to another location after being built, the location of the system-wide init file will be adjusted accordingly. +@item --with-system-gdbinit-dir=@var{directory} +Configure @value{GDBN} to automatically load init files from a +system-wide directory. @var{directory} should be an absolute directory +name. If @var{directory} is in a directory under the configured +prefix, and @value{GDBN} is moved to another location after being +built, the location of the system-wide init directory will be +adjusted accordingly. + @item --enable-build-warnings When building the @value{GDBN} sources, ask the compiler to warn about any code which looks even vaguely suspicious. It passes many @@ -37079,24 +37107,28 @@ was first introduced in GCC 4.9. @section System-wide configuration and settings @cindex system-wide init file -@value{GDBN} can be configured to have a system-wide init file; -this file will be read and executed at startup (@pxref{Startup, , What -@value{GDBN} does during startup}). +@value{GDBN} can be configured to have a system-wide init file and a +system-wide init file directory; this file and files in that directory +(if they have a recognized file extension) will be read and executed at +startup (@pxref{Startup, , What @value{GDBN} does during startup}). -Here is the corresponding configure option: +Here are the corresponding configure options: @table @code @item --with-system-gdbinit=@var{file} Specify that the default location of the system-wide init file is @var{file}. +@item --with-system-gdbinit-dir=@var{directory} +Specify that the default location of the system-wide init file directory +is @var{directory}. @end table If @value{GDBN} has been configured with the option @option{--prefix=$prefix}, -it may be subject to relocation. Two possible cases: +they may be subject to relocation. Two possible cases: @itemize @bullet @item -If the default location of this init file contains @file{$prefix}, +If the default location of this init file/directory contains @file{$prefix}, it will be subject to relocation. Suppose that the configure options are @option{--prefix=$prefix --with-system-gdbinit=$prefix/etc/gdbinit}; if @value{GDBN} is moved from @file{$prefix} to @file{$install}, the system @@ -37122,6 +37154,14 @@ initialization. If the data-directory is changed after @value{GDBN} has started with the @code{set data-directory} command, the file will not be reread. +This applies similarly to the system-wide directory specified in +@option{--with-system-gdbinit-dir}. + +Any supported scripting language can be used for these init files, as long +as the file extension matches the scripting language. To be interpreted +as regular @value{GDBN} commands, the files needs to have a @file{.gdb} +extension. + @menu * System-wide Configuration Scripts:: Installed System-wide Configuration Scripts @end menu @@ -45611,6 +45651,10 @@ Richard M. Stallman and Roland H. Pesch, July 1991. @value{SYSTEM_GDBINIT} @end ifset +@ifset SYSTEM_GDBINIT_DIR +@value{SYSTEM_GDBINIT_DIR}/* +@end ifset + ~/.gdbinit ./.gdbinit @@ -45652,6 +45696,20 @@ See more in the @value{GDBN} manual in node @code{System-wide configuration} -- shell command @code{info -f gdb -n 'System-wide configuration'}. @end ifset +@ifset SYSTEM_GDBINIT_DIR +@item @value{SYSTEM_GDBINIT_DIR} +@end ifset +@ifclear SYSTEM_GDBINIT_DIR +@item (not enabled with @code{--with-system-gdbinit-dir} during compilation) +@end ifclear +System-wide initialization directory. All files in this directory are +executed on startup unless user specified @value{GDBN} option @code{-nx} or +@code{-n}, as long as they have a recognized file extension. +See more in +@ifset man +the @value{GDBN} manual in node @code{System-wide configuration} +-- shell command @code{info -f gdb -n 'System-wide configuration'}. +@end ifset @ifclear man @ref{System-wide configuration}. @end ifclear |