aboutsummaryrefslogtreecommitdiff
path: root/gdb/symtab.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2011-02-13 09:09:36 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2011-02-13 09:09:36 +0000
commit93b55aa198d29b69a6707bcb7bc320572629bd62 (patch)
tree85bf81d45ddfacbf9ff70303186eafec3b55f2a0 /gdb/symtab.c
parentf865a34fb95761ae713ffc7778a116f694d0cc27 (diff)
downloadgdb-93b55aa198d29b69a6707bcb7bc320572629bd62.zip
gdb-93b55aa198d29b69a6707bcb7bc320572629bd62.tar.gz
gdb-93b55aa198d29b69a6707bcb7bc320572629bd62.tar.bz2
gdb/
* symtab.c (find_pc_sect_line): New variable objfile, initialize it from S. Iterate S using ALL_OBJFILE_SYMTABS. Verify BV for each S. * symtab.h (struct symtab) <next>: Comment extension.
Diffstat (limited to 'gdb/symtab.c')
-rw-r--r--gdb/symtab.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 68666da..3105327 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -1904,6 +1904,7 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent)
struct blockvector *bv;
struct minimal_symbol *msymbol;
struct minimal_symbol *mfunsym;
+ struct objfile *objfile;
/* Info on best line seen so far, and where it starts, and its file. */
@@ -2031,13 +2032,17 @@ find_pc_sect_line (CORE_ADDR pc, struct obj_section *section, int notcurrent)
}
bv = BLOCKVECTOR (s);
+ objfile = s->objfile;
/* Look at all the symtabs that share this blockvector.
They all have the same apriori range, that we found was right;
but they have different line tables. */
- for (; s && BLOCKVECTOR (s) == bv; s = s->next)
+ ALL_OBJFILE_SYMTABS (objfile, s)
{
+ if (BLOCKVECTOR (s) != bv)
+ continue;
+
/* Find the best line in this symtab. */
l = LINETABLE (s);
if (!l)