This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] -nx-except-gdbtkinit option
- From: Andrew STUBBS <andrew dot stubbs at st dot com>
- To: Eli Zaretskii <eliz at gnu dot org>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Thu, 17 Nov 2005 16:31:05 +0000
- Subject: Re: [PATCH] -nx-except-gdbtkinit option
- References: <437B5ED3.70805@st.com> <u64qs73r5.fsf@gnu.org>
Eli Zaretskii wrote:
First, you didn't send a documentation patch.
Apologies, I missed this. I have now added one.
Second, please tell more about the situations when this option could
be useful.
The specific case I use it for is in a wrapper utility which calls gdb
as follows (roughly):
gdb -nx-except-gdbtkinit -d scriptdir -x globalscript \
-x ~/.gdbinit -x ./.gdbinit .....
The purpose is (among other things) to set up transparently (to the
user) a selection of user-defined commands (for connecting and
configuring target boards) which are available to users in the .gdbinit
files.
If -nx is used it has undesirable side effects when using Insight.
I'm sure others can think of other purposes for it.
Andrew Stubbs
2005-11-17 Andrew Stubbs <andrew.stubbs@st.com>
* main.c (captured_main): Add option -nx-except-gdbtkinit
and adjust -nx to support it.
(print_gdb_help): Add --nx-except-gdbtkinit.
* top.c (inhibit_gdbtkinit): New variable.
* top.h (inhibit_gdbtkinit): New variable.
doc/
* gdb.texinfo (Choosing modes): Add -nx-except-gdbtkinit option.
gdbtk/
* generic/gdbtk.c (gdbtk_init): Change inhibit_gdbinit to
inhibit_gdbtkinit.
Index: src/gdb/main.c
===================================================================
--- src.orig/gdb/main.c 2005-11-17 15:20:03.000000000 +0000
+++ src/gdb/main.c 2005-11-17 15:22:12.000000000 +0000
@@ -267,8 +267,8 @@ captured_main (void *data)
{"quiet", no_argument, &quiet, 1},
{"q", no_argument, &quiet, 1},
{"silent", no_argument, &quiet, 1},
- {"nx", no_argument, &inhibit_gdbinit, 1},
- {"n", no_argument, &inhibit_gdbinit, 1},
+ {"nx", no_argument, 0, 'n'},
+ {"n", no_argument, 0, 'n'},
{"batch-silent", no_argument, 0, 'B'},
{"batch", no_argument, &batch, 1},
{"epoch", no_argument, &epoch_interface, 1},
@@ -296,6 +296,7 @@ captured_main (void *data)
{"x", required_argument, 0, 'x'},
{"ex", required_argument, 0, 'X'},
#ifdef GDBTK
+ {"nx-except-gdbtkinit", no_argument, &inhibit_gdbinit, 1},
{"tclcommand", required_argument, 0, 'z'},
{"enable-external-editor", no_argument, 0, 'y'},
{"editor-command", required_argument, 0, 'w'},
@@ -418,6 +419,10 @@ captured_main (void *data)
batch = batch_silent = 1;
gdb_stdout = ui_file_new();
break;
+ case 'n':
+ inhibit_gdbinit = 1;
+ inhibit_gdbtkinit = 1;
+ break;
#ifdef GDBTK
case 'z':
{
@@ -896,6 +901,8 @@ Options:\n\n\
--nx Do not read "), stream);
fputs_unfiltered (gdbinit, stream);
fputs_unfiltered (_(" file.\n\
+ --nx-except-gdbtkinit\n\
+ As for --nx, but do read gdbtkinit for insight.\n\
--quiet Do not print version number on startup.\n\
--readnow Fully read symbol files on first access.\n\
"), stream);
Index: src/gdb/top.c
===================================================================
--- src.orig/gdb/top.c 2005-11-17 15:20:03.000000000 +0000
+++ src/gdb/top.c 2005-11-17 16:15:44.000000000 +0000
@@ -86,6 +86,7 @@
char gdbinit[PATH_MAX + 1] = GDBINIT_FILENAME;
int inhibit_gdbinit = 0;
+int inhibit_gdbtkinit = 0;
/* If nonzero, and GDB has been configured to be able to use windows,
attempt to open them upon startup. */
Index: src/gdb/top.h
===================================================================
--- src.orig/gdb/top.h 2005-11-17 15:20:03.000000000 +0000
+++ src/gdb/top.h 2005-11-17 15:22:12.000000000 +0000
@@ -29,6 +29,7 @@ extern int linesize;
extern FILE *instream;
extern char gdb_dirbuf[1024];
extern int inhibit_gdbinit;
+extern int inhibit_gdbtkinit;
extern int epoch_interface;
extern char gdbinit[];
Index: src/gdb/gdbtk/generic/gdbtk.c
===================================================================
--- src.orig/gdb/gdbtk/generic/gdbtk.c 2005-11-17 15:20:03.000000000 +0000
+++ src/gdb/gdbtk/generic/gdbtk.c 2005-11-17 15:22:12.000000000 +0000
@@ -483,7 +483,7 @@ gdbtk_init (void)
/* Set up some globals used by gdb to pass info to gdbtk
for start up options and the like */
- xasprintf (&s, "%d", inhibit_gdbinit);
+ xasprintf (&s, "%d", inhibit_gdbtkinit);
Tcl_SetVar2 (gdbtk_interp, "GDBStartup", "inhibit_prefs", s, TCL_GLOBAL_ONLY);
free(s);
Index: src/gdb/doc/gdb.texinfo
===================================================================
--- src.orig/gdb/doc/gdb.texinfo 2005-11-17 16:15:44.000000000 +0000
+++ src/gdb/doc/gdb.texinfo 2005-11-17 16:22:24.000000000 +0000
@@ -978,6 +978,12 @@ Do not execute commands found in any ini
options and arguments have been processed. @xref{Command Files,,Command
files}.
+@item -nx-except-gdbtkinit
+@kindex -nx-except-gdbtkinit
+The same as @samp{-nx} with the difference that it does not prevent
+Insight from loading the settings file @code{.gdbtkinit}. If you are not
+using Insight then this option is exactly the same as @samp{-nx}.
+
@item -quiet
@itemx -silent
@itemx -q