diff options
author | Tom Tromey <tromey@redhat.com> | 2001-12-21 22:32:37 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2001-12-21 22:32:37 +0000 |
commit | 068c3a92563f4cd3928f7466603cb6dd656b8aba (patch) | |
tree | 6cb2f85a81f1a23036b7d65c602cabe812ef7aeb /gdb/source.c | |
parent | b4bff1351397a169d7b7c47a1afea2e49cb9983c (diff) | |
download | gdb-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.c | 16 |
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 */ |