diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2013-12-02 22:24:32 +0100 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2013-12-02 22:24:32 +0100 |
commit | 04affae3ef7aa124b6ac0ce4f3a54063b7b4784f (patch) | |
tree | e7b3b2a4e5c71cce09d6ea41c6bba22e7c0322ba /gdb/source.c | |
parent | aee4bf85057de1905f5bfaad2a4be0295905d7fb (diff) | |
download | binutils-gdb-04affae3ef7aa124b6ac0ce4f3a54063b7b4784f.tar.gz |
Record objfile->original_name as an absolute path
gdb/
2013-12-02 Doug Evans <dje@google.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
* objfiles.c (allocate_objfile): Save original_name as an absolute
path.
* objfiles.h (struct objfile): Expand comment on original_name.
* source.c (openp): Call gdb_abspath.
* utils.c (gdb_abspath): New function.
* utils.h (gdb_abspath): Declare.
gdb/testsuite/
2013-12-02 Doug Evans <dje@google.com>
* gdb.dwarf/dwp-symlink.c: Fake out gdb to not load debug info
at start.
* gdb.dwarf/dwp-symlink.exp: Test trying to load dwp when the binary
has been specified with a relative path and we have chdir'd before
accessing the debug info.
Diffstat (limited to 'gdb/source.c')
-rw-r--r-- | gdb/source.c | 24 |
1 files changed, 3 insertions, 21 deletions
diff --git a/gdb/source.c b/gdb/source.c index 09595850029..6234bfc3954 100644 --- a/gdb/source.c +++ b/gdb/source.c @@ -853,28 +853,10 @@ done: /* If a file was opened, canonicalize its filename. */ if (fd < 0) *filename_opened = NULL; + else if ((opts & OPF_RETURN_REALPATH) != 0) + *filename_opened = gdb_realpath (filename); else - { - char *(*realpath_fptr) (const char *); - - realpath_fptr = ((opts & OPF_RETURN_REALPATH) != 0 - ? gdb_realpath : xstrdup); - - if (IS_ABSOLUTE_PATH (filename)) - *filename_opened = realpath_fptr (filename); - else - { - /* Beware the // my son, the Emacs barfs, the botch that catch... */ - - char *f = concat (current_directory, - IS_DIR_SEPARATOR (current_directory[strlen (current_directory) - 1]) - ? "" : SLASH_STRING, - filename, (char *)NULL); - - *filename_opened = realpath_fptr (f); - xfree (f); - } - } + *filename_opened = gdb_abspath (filename); } return fd; |