From d19a4010d98a14687bad88a98df237093e91fddf Mon Sep 17 00:00:00 2001 From: drow Date: Mon, 14 May 2007 14:10:33 +0000 Subject: [PATCH] * buildsym.c (start_subfile): Handle absolute pathnames while comparing subfile names. --- gdb/ChangeLog | 5 +++++ gdb/buildsym.c | 18 +++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f335419a32..af1cb80f7b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2007-05-14 Maxim Grigoriev + + * buildsym.c (start_subfile): Handle absolute pathnames + while comparing subfile names. + 2007-05-13 Ulrich Weigand * hppa-hpux-tdep.c: Include "regcache.h". diff --git a/gdb/buildsym.c b/gdb/buildsym.c index 94800bd76b..69d11e58ee 100644 --- a/gdb/buildsym.c +++ b/gdb/buildsym.c @@ -549,11 +549,27 @@ start_subfile (char *name, char *dirname) for (subfile = subfiles; subfile; subfile = subfile->next) { - if (FILENAME_CMP (subfile->name, name) == 0) + char *subfile_name; + + /* If NAME is an absolute path, and this subfile is not, then + attempt to create an absolute path to compare. */ + if (IS_ABSOLUTE_PATH (name) + && !IS_ABSOLUTE_PATH (subfile->name) + && subfile->dirname != NULL) + subfile_name = concat (subfile->dirname, SLASH_STRING, + subfile->name, NULL); + else + subfile_name = subfile->name; + + if (FILENAME_CMP (subfile_name, name) == 0) { current_subfile = subfile; + if (subfile_name != subfile->name) + xfree (subfile_name); return; } + if (subfile_name != subfile->name) + xfree (subfile_name); } /* This subfile is not known. Add an entry for it. Make an entry -- 2.11.0