From: Eli Zaretskii <eliz@gnu.org>
To: gdb-patches@sourceware.org
Subject: GDB 7.5: Problems with the auto-load safe-path feature
Date: Sat, 18 Aug 2012 12:32:00 -0000 [thread overview]
Message-ID: <83d32ogz3g.fsf@gnu.org> (raw)
This new feature in GDB 7.5 looks like a nuisance in my (short)
experience.
First, on MS-Windows the file gdb/gdb-gdb.gdb is not loaded, because
GDB wants it to be named gdb.exe-gdb.gdb. I think the .exe suffix
should be ignored in this case, so I suggest the patch below. OK to
commit?
Next, I have trouble understanding how we are supposed to deal with
this in, e.g., the Emacs distribution, which comes with a heavily
customized .gdbinit file. There seems to be no way of telling GDB
that this .gdbinit is safe, except (a) through command-line arguments,
or (b) by adding settings to global or user-private init files. How
can other projects allow seamless loading of their GDB init files, in
a way that is compatible with previous GDB versions, and without
requiring each user to hack their global/private GDB init files? (If
there is such a way, it should be prominently described in the GDB
manual.)
Another problem is that the error message displayed when GDB rejects
to auto-load a file, viz.:
warning: File "D:\gnu\bzr\emacs\trunk\src\.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
leaves it to the user to find out where are those safe directories.
Is there an easy way of displaying $datadir and $debugdir? Trying the
obvious, I get:
(gdb) p $datadir
$1 = void
Is that a bug? For $datadir, I can do this:
(gdb) show data-directory
GDB's data directory is "d:\usr\share\gdb".
But for $debugdir, there's no "show debug-directory"; instead I need
to do this:
(gdb) show debug-file-directory
The directory where separate debug symbols are searched for is "d:\usr\lib\debug".
and the description does not make me sure this is the right directory,
since it does not mention anything about scripts. At the very least,
we should fix the description to mention the scripts.
Finally, "apropos director" reveals another problem:
(gdb) apropos director
[...]
info auto-load local-gdbinit -- Print whether current directory
[...]
set auto-load local-gdbinit -- Enable or disable auto-loading of
[...]
show auto-load local-gdbinit -- Show whether auto-loading
These truncated descriptions are caused by using ".gdbinit" in the
first line of the doc string. To fix this, we should either use "GDB
init" instead of .gdbinit, or remove the code that stops on the first
period or comma altogether.
Here's the patch I suggest for the first problem described above:
2012-08-18 Eli Zaretskii <eliz@gnu.org>
* auto-load.c (auto_load_objfile_script): If OBJFILE specifies a
DOS/Windows-style .exe executable program, remove the .exe suffix
when generating the script file name.
--- gdb/auto-load.c~ 2012-07-02 13:57:33.000000000 +0300
+++ gdb/auto-load.c 2012-08-18 13:54:33.578125000 +0300
@@ -708,6 +708,20 @@ auto_load_objfile_script (struct objfile
realname = gdb_realpath (objfile->name);
len = strlen (realname);
+#if defined (__MSDOS__) || defined(__MINGW32__)
+ /* For Windows/DOS .exe executables, strip the .exe suffix, so that
+ FOO-gdb.gdb could be used for FOO.exe. */
+ {
+ const size_t lexe = sizeof (".exe") - 1;
+
+ if (len > lexe
+ && strcasecmp (realname + len - lexe, ".exe") == 0)
+ {
+ len -= lexe;
+ realname[len] = '\0';
+ }
+ }
+#endif
filename = xmalloc (len + strlen (language->suffix) + 1);
memcpy (filename, realname, len);
strcpy (filename + len, language->suffix);
next reply other threads:[~2012-08-18 12:32 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-18 12:32 Eli Zaretskii [this message]
2012-08-18 13:21 ` Jan Kratochvil
2012-08-18 15:01 ` Eli Zaretskii
2012-08-18 16:19 ` Joel Brobecker
2012-08-18 17:11 ` Eli Zaretskii
2012-08-20 14:54 ` Tom Tromey
2012-08-27 16:48 ` [commit+7.5] apropos fix for auto-load texts [Re: GDB 7.5: Problems with the auto-load safe-path feature] Jan Kratochvil
2012-08-18 16:11 ` GDB 7.5: Problems with the auto-load safe-path feature Joel Brobecker
2012-08-18 17:07 ` Eli Zaretskii
2012-08-20 15:08 ` Jan Kratochvil
2012-08-20 16:36 ` Eli Zaretskii
2012-08-27 16:53 ` [commit+7.5] auto-load for .exe files [Re: GDB 7.5: Problems with the auto-load safe-path feature] Jan Kratochvil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83d32ogz3g.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox