diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-02-13 09:09:36 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2011-02-13 09:09:36 +0000 |
commit | 93b55aa198d29b69a6707bcb7bc320572629bd62 (patch) | |
tree | 85bf81d45ddfacbf9ff70303186eafec3b55f2a0 /gdb/symtab.c | |
parent | f865a34fb95761ae713ffc7778a116f694d0cc27 (diff) | |
download | gdb-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.c | 7 |
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) |