New option -nh: inhibit loading of ~/.gdbinit.

* NEWS: Mention -nh.
	* main.c (captured_main): Recognize and process -nh.
	(print_gdb_help): Mention -nh.
	* gdb.1: Mention -nh.  Remove erroneous docs on -nx behavior.

	doc/
	* gdb.texinfo (Mode Options): Document -nh.
	Elaborate on docs for -nx.
This commit is contained in:
Doug Evans 2012-10-15 21:45:04 +00:00
parent eab09350a3
commit 07540c156d
6 changed files with 62 additions and 9 deletions

View File

@ -1,3 +1,11 @@
2012-10-15 Doug Evans <dje@google.com>
New option -nh: inhibit loading of ~/.gdbinit.
* NEWS: Mention -nh.
* main.c (captured_main): Recognize and process -nh.
(print_gdb_help): Mention -nh.
* gdb.1: Mention -nh. Remove erroneous docs on -nx behavior.
2012-10-15 H.J. Lu <hongjiu.lu@intel.com>
PR backtrace/14646

View File

@ -3,6 +3,11 @@
*** Changes since GDB 7.5
* New command line options:
-nh Disables auto-loading of ~/.gdbinit, but still executes all the
other initialization files, unlike -nx which disables all of them.
* Python scripting
** Vectors can be created with gdb.Type.vector.

View File

@ -1,3 +1,8 @@
2012-10-15 Doug Evans <dje@google.com>
* gdb.texinfo (Mode Options): Document -nh.
Elaborate on docs for -nx.
2012-09-26 Siddhesh Poyarekar <siddhesh@redhat.com>
* observer.texi (memory_changed): Expand parameter LEN to ssize_t.

View File

@ -1043,10 +1043,37 @@ batch mode or quiet mode.
@itemx -n
@cindex @code{--nx}
@cindex @code{-n}
Do not execute commands found in any initialization files. Normally,
@value{GDBN} executes the commands in these files after all the command
options and arguments have been processed. @xref{Command Files,,Command
Files}.
Do not execute commands found in any initialization file.
There are three init files, loaded in the following order:
@table @code
@item @file{system.gdbinit}
This is the system-wide init file.
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{~/.gdbinit}
This is the init file in your home directory.
It is loaded next, after @file{system.gdbinit}, and before
command options have been processed.
@item @file{./.gdbinit}
This is the init file in the current directory.
It is loaded last, after command line options other than @code{-x} and
@code{-ex} have been processed. Command line options @code{-x} and
@code{-ex} are processed last, after @file{./.gdbinit} has been loaded.
@end table
For further documentation on startup processing, @xref{Startup}.
For documentation on how to write command files,
@xref{Command Files,,Command Files}.
@anchor{-nh}
@item -nh
@cindex @code{--nh}
Do not execute commands found in @file{~/.gdbinit}, the init file
in your home directory.
@xref{Startup}.
@item -quiet
@itemx -silent

View File

@ -9,6 +9,7 @@ gdb \- The GNU Debugger
.TP
.B gdb
.RB "[\|" \-help "\|]"
.RB "[\|" \-nh "\|]"
.RB "[\|" \-nx "\|]"
.RB "[\|" \-q "\|]"
.RB "[\|" \-batch "\|]"
@ -282,6 +283,10 @@ Add \c
\& to the path to search for source files.
.PP
.TP
.B \-nh
Do not execute commands from ~/.gdbinit.
.TP
.B \-nx
.TP
@ -289,8 +294,6 @@ Add \c
Do not execute commands from any `\|\c
.B .gdbinit\c
\&\|' initialization files.
Normally, the commands in these files are executed after all the
command options and arguments have been processed.
.TP

View File

@ -273,6 +273,7 @@ captured_main (void *data)
char **argv = context->argv;
static int quiet = 0;
static int set_args = 0;
static int inhibit_home_gdbinit = 0;
/* Pointers to various arguments from command line. */
char *symarg = NULL;
@ -415,6 +416,7 @@ captured_main (void *data)
{"quiet", no_argument, &quiet, 1},
{"q", no_argument, &quiet, 1},
{"silent", no_argument, &quiet, 1},
{"nh", no_argument, &inhibit_home_gdbinit, 1},
{"nx", no_argument, &inhibit_gdbinit, 1},
{"n", no_argument, &inhibit_gdbinit, 1},
{"batch-silent", no_argument, 0, 'B'},
@ -845,7 +847,7 @@ captured_main (void *data)
global parameters, which are independent of what file you are
debugging or what directory you are in. */
if (home_gdbinit && !inhibit_gdbinit)
if (home_gdbinit && !inhibit_gdbinit && !inhibit_home_gdbinit)
catch_command_errors (source_script, home_gdbinit, 0, RETURN_MASK_ALL);
/* Process '-ix' and '-iex' options early. */
@ -1066,9 +1068,12 @@ Options:\n\n\
fputs_unfiltered (_("\
-l TIMEOUT Set timeout in seconds for remote debugging.\n\
--nw Do not use a window interface.\n\
--nx Do not read "), stream);
--nx Do not read any "), stream);
fputs_unfiltered (gdbinit, stream);
fputs_unfiltered (_(" file.\n\
fputs_unfiltered (_(" files.\n\
--nh Do not read "), stream);
fputs_unfiltered (gdbinit, stream);
fputs_unfiltered (_(" file from home directory.\n\
--quiet Do not print version number on startup.\n\
--readnow Fully read symbol files on first access.\n\
"), stream);