summaryrefslogtreecommitdiff
path: root/gdb/source.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2001-12-21 22:32:37 +0000
committerTom Tromey <tromey@redhat.com>2001-12-21 22:32:37 +0000
commit068c3a92563f4cd3928f7466603cb6dd656b8aba (patch)
tree6cb2f85a81f1a23036b7d65c602cabe812ef7aeb /gdb/source.c
parentb4bff1351397a169d7b7c47a1afea2e49cb9983c (diff)
downloadgdb-068c3a92563f4cd3928f7466603cb6dd656b8aba.tar.gz
* configure, config.in: Rebuilt.
* configure.in: Check for realpath. * defs.h (gdb_realpath): Declare. * symtab.h (partial_symtab): Added fullname field. * source.c (openp): Use gdb_realpath. (forget_cached_source_info): Clear full name of each partial symtab. * utils.c (gdb_realpath): New function. * symtab.c (lookup_symtab): Removed. (lookup_symtab_1): Renamed to lookup_symtab. (lookup_symtab): Look for real path. (lookup_partial_symtab): Likewise.
Diffstat (limited to 'gdb/source.c')
-rw-r--r--gdb/source.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/gdb/source.c b/gdb/source.c
index d04f886df83..dab794fb731 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -234,6 +234,7 @@ forget_cached_source_info (void)
{
register struct symtab *s;
register struct objfile *objfile;
+ struct partial_symtab *pst;
for (objfile = object_files; objfile != NULL; objfile = objfile->next)
{
@@ -250,6 +251,15 @@ forget_cached_source_info (void)
s->fullname = NULL;
}
}
+
+ ALL_OBJFILE_PSYMTABS (objfile, pst)
+ {
+ if (pst->fullname != NULL)
+ {
+ xfree (pst->fullname);
+ pst->fullname = NULL;
+ }
+ }
}
}
@@ -603,15 +613,17 @@ done:
if (fd < 0)
*filename_opened = NULL;
else if (IS_ABSOLUTE_PATH (filename))
- *filename_opened = savestring (filename, strlen (filename));
+ *filename_opened = gdb_realpath (filename);
else
{
/* Beware the // my son, the Emacs barfs, the botch that catch... */
- *filename_opened = concat (current_directory,
+ char *f = concat (current_directory,
IS_DIR_SEPARATOR (current_directory[strlen (current_directory) - 1])
? "" : SLASH_STRING,
filename, NULL);
+ *filename_opened = gdb_realpath (f);
+ xfree (f);
}
}
/* OBSOLETE #ifdef MPW */