aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2007-05-14 14:10:35 +0000
committerDaniel Jacobowitz <drow@false.org>2007-05-14 14:10:35 +0000
commit84ba0adf42e55d24e3656fc0b0dbcff5eb1e0bbc (patch)
tree298102eebcc8ed4a5adc4498cda4c8c476602605
parent24471d420951f088fe188f7e7db8941d26f39c51 (diff)
downloadgdb-84ba0adf42e55d24e3656fc0b0dbcff5eb1e0bbc.zip
gdb-84ba0adf42e55d24e3656fc0b0dbcff5eb1e0bbc.tar.gz
gdb-84ba0adf42e55d24e3656fc0b0dbcff5eb1e0bbc.tar.bz2
* buildsym.c (start_subfile): Handle absolute pathnames
while comparing subfile names.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/buildsym.c18
2 files changed, 22 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f335419..af1cb80 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-14 Maxim Grigoriev <maxim2405@gmail.com>
+
+ * buildsym.c (start_subfile): Handle absolute pathnames
+ while comparing subfile names.
+
2007-05-13 Ulrich Weigand <uweigand@de.ibm.com>
* hppa-hpux-tdep.c: Include "regcache.h".
diff --git a/gdb/buildsym.c b/gdb/buildsym.c
index 94800bd..69d11e5 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