diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/objfiles.c | 11 |
2 files changed, 12 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0df0ae0..ceb22c0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2010-02-09 Tristan Gingold <gingold@adacore.com> + + * objfiles.c (objfile_separate_debug_iterate): Do not iterate on + brothers of the parent. + 2010-02-08 Tom Tromey <tromey@redhat.com> PR c++/8017: diff --git a/gdb/objfiles.c b/gdb/objfiles.c index 0b07e37..489b812 100644 --- a/gdb/objfiles.c +++ b/gdb/objfiles.c @@ -392,18 +392,21 @@ objfile_separate_debug_iterate (const struct objfile *parent, { struct objfile *res; + /* If any, return the first child. */ res = objfile->separate_debug_objfile; if (res) return res; - res = objfile->separate_debug_objfile_link; - if (res) - return res; - /* Common case where there is no separate debug objfile. */ if (objfile == parent) return NULL; + /* Return the brother if any. Note that we don't iterate on brothers of + the parents. */ + res = objfile->separate_debug_objfile_link; + if (res) + return res; + for (res = objfile->separate_debug_objfile_backlink; res != parent; res = res->separate_debug_objfile_backlink) |