aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2010-04-08 21:08:40 +0000
committerDoug Evans <dje@google.com>2010-04-08 21:08:40 +0000
commit080017175b5248f1e5b0d48a55a06634244db459 (patch)
tree8d15bc0ee57732cc1e00075e1acd5550dc7d992a /gdb
parent938d2b7434405c3e8cf1ceeb9496ff0bac01e84c (diff)
downloadgdb-080017175b5248f1e5b0d48a55a06634244db459.zip
gdb-080017175b5248f1e5b0d48a55a06634244db459.tar.gz
gdb-080017175b5248f1e5b0d48a55a06634244db459.tar.bz2
* source.c (openp): Skip $cdir in PATH.
doc/ * gdb.texinfo (Command Files): Document that gdb skips $cdir in search path, and document that gdb only scans the search path if the script's path doesn't specify a directory.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/doc/ChangeLog6
-rw-r--r--gdb/doc/gdb.texinfo8
-rw-r--r--gdb/source.c10
4 files changed, 26 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 05cfec6..0bed4e4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2010-04-08 Doug Evans <dje@google.com>
+
+ * source.c (openp): Skip $cdir in PATH.
+
2010-04-08 Phil Muldoon <pmuldoon@redhat.com>
PR python/11417
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index a85e56a..16264af 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,9 @@
+2010-04-08 Doug Evans <dje@google.com>
+
+ * gdb.texinfo (Command Files): Document that gdb skips $cdir in
+ search path, and document that gdb only scans the search path if
+ the script's path doesn't specify a directory.
+
2010-04-05 Doug Evans <dje@google.com>
* gdb.texinfo (maint show python auto-load): Fix typo.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index fd8b0bc..039287d 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -19383,8 +19383,12 @@ unless the order of execution is changed by one of the
printed as they are executed. An error in any command terminates
execution of the command file and control is returned to the console.
-@value{GDBN} searches for @var{filename} in the current directory and then
-on the search path (specified with the @samp{directory} command).
+@value{GDBN} first searches for @var{filename} in the current directory.
+If the file is not found there, and @var{filename} does not specify a
+directory, then @value{GDBN} also looks for the file on the source search path
+(specified with the @samp{directory} command);
+except that @file{$cdir} is not searched because the compilation directory
+is not relevant to scripts.
If @code{-v}, for verbose mode, is given then @value{GDBN} displays
each command as it is executed. The option must be given before
diff --git a/gdb/source.c b/gdb/source.c
index dda5d1b..e9893ba 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -764,6 +764,16 @@ openp (const char *path, int opts, const char *string,
/* Normal file name in path -- just use it. */
strncpy (filename, p, len);
filename[len] = 0;
+
+ /* Don't search $cdir. It's also a magic path like $cwd, but we
+ don't have enough information to expand it. The user *could*
+ have an actual directory named '$cdir' but handling that would
+ be confusing, it would mean different things in different
+ contexts. If the user really has '$cdir' one can use './$cdir'.
+ We can get $cdir when loading scripts. When loading source files
+ $cdir must have already been expanded to the correct value. */
+ if (strcmp (filename, "$cdir") == 0)
+ continue;
}
/* Remove trailing slashes */