aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorAndrew Stubbs <andrew.stubbs@st.com>2006-01-23 16:28:37 +0000
committerAndrew Stubbs <andrew.stubbs@st.com>2006-01-23 16:28:37 +0000
commit4b505b12693cdcd0b4e88aa8beedca359b8827a7 (patch)
tree51f064b2f090b6ed51a97cd18c02e785b5387ca5 /gdb
parent721d14ba74f11a737711195f28de345a34073de2 (diff)
downloadgdb-4b505b12693cdcd0b4e88aa8beedca359b8827a7.zip
gdb-4b505b12693cdcd0b4e88aa8beedca359b8827a7.tar.gz
gdb-4b505b12693cdcd0b4e88aa8beedca359b8827a7.tar.bz2
2006-01-23 Andrew Stubbs <andrew.stubbs@st.com>
* cli/cli-cmds.c: Include fcntl.h. (source_command): Use the GDB search path to find script files. doc/ * gdb.texinfo (Choosing files): Mention that -directory is used for script files. (Specifying source directories): Likewise. (Command files): Explain how script files are found.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/cli/cli-cmds.c19
-rw-r--r--gdb/doc/ChangeLog7
-rw-r--r--gdb/doc/gdb.texinfo8
4 files changed, 36 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b8c504f..5f3106a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2006-01-23 Andrew Stubbs <andrew.stubbs@st.com>
+
+ * cli/cli-cmds.c: Include fcntl.h.
+ (source_command): Use the GDB search path to find script files.
+
2006-01-22 Daniel Jacobowitz <dan@codesourcery.com>
PR tdep/2029
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 0ecde68..88b4956 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -51,6 +51,8 @@
#include "tui/tui.h" /* For tui_active et.al. */
#endif
+#include <fcntl.h>
+
/* Prototypes for local command functions */
static void complete_command (char *, int);
@@ -427,6 +429,8 @@ source_command (char *args, int from_tty)
FILE *stream;
struct cleanup *old_cleanups;
char *file = args;
+ char *full_pathname = NULL;
+ int fd;
if (file == NULL)
{
@@ -436,8 +440,18 @@ source_command (char *args, int from_tty)
file = tilde_expand (file);
old_cleanups = make_cleanup (xfree, file);
- stream = fopen (file, FOPEN_RT);
- if (!stream)
+ /* Search for and open 'file' on the search path used for source
+ files. Put the full location in 'full_pathname'. */
+ fd = openp (source_path, OPF_TRY_CWD_FIRST,
+ file, O_RDONLY, 0, &full_pathname);
+
+ /* Use the full path name, if it is found. */
+ if (full_pathname != NULL && fd != -1)
+ {
+ file = full_pathname;
+ }
+
+ if (fd == -1)
{
if (from_tty)
perror_with_name (file);
@@ -445,6 +459,7 @@ source_command (char *args, int from_tty)
return;
}
+ stream = fdopen (fd, FOPEN_RT);
script_from_file (stream, file);
do_cleanups (old_cleanups);
diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog
index d9aac34..c040046 100644
--- a/gdb/doc/ChangeLog
+++ b/gdb/doc/ChangeLog
@@ -1,3 +1,10 @@
+2006-01-23 Andrew Stubbs <andrew.stubbs@st.com>
+
+ * gdb.texinfo (Choosing files): Mention that -directory is used
+ for script files.
+ (Specifying source directories): Likewise.
+ (Command files): Explain how script files are found.
+
2006-01-21 Eli Zaretskii <eliz@gnu.org>
* gdb.texinfo (Backtrace): Describe how to get backtrace of all
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index c17520a..fd1a7ed 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -950,7 +950,7 @@ also be interleaved with @samp{-command} as required.
@itemx -d @var{directory}
@cindex @code{--directory}
@cindex @code{-d}
-Add @var{directory} to the path to search for source files.
+Add @var{directory} to the path to search for source and script files.
@item -r
@itemx -readnow
@@ -5018,6 +5018,9 @@ When you start @value{GDBN}, its source path includes only @samp{cdir}
and @samp{cwd}, in that order.
To add other directories, use the @code{directory} command.
+The search path is used to find both program source files and @value{GDBN}
+script files (read using the @samp{-command} option and @samp{source} command).
+
@table @code
@item directory @var{dirname} @dots{}
@item dir @var{dirname} @dots{}
@@ -16210,6 +16213,9 @@ 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).
+
Commands that would ask for confirmation if used interactively proceed
without asking when used in a command file. Many @value{GDBN} commands that
normally print messages to say what they are doing omit the messages