gdb/
authorJan Kratochvil <jan.kratochvil@redhat.com>
Sun, 13 Feb 2011 09:09:36 +0000 (09:09 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Sun, 13 Feb 2011 09:09:36 +0000 (09:09 +0000)
* 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.

gdb/ChangeLog
gdb/symtab.c
gdb/symtab.h

index c80eddb1bbe6cd2d0d0fdcbe781f91b1b504a30f..cd63152e68f7bc47228b56e952b901243f59da1c 100644 (file)
@@ -1,3 +1,9 @@
+2011-02-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * 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.
+
 2011-02-12  Yao Qi  <yao@codesourcery.com>
 
        * Makefile.in (CLEANDIRS): Remove duplicated common dir.
index 68666da680feb29aecaf8d0ed7eeb94d393bf003..3105327bba7063ef719e2e51ca177e26f791a188 100644 (file)
@@ -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)
index e4ec4bfd9737036ba355bc070b0090ab6f15997d..e946c65fea3ecd147c87105cf864eda74c2295bc 100644 (file)
@@ -738,8 +738,7 @@ struct section_offsets
 
 struct symtab
 {
-
-  /* Chain of all existing symtabs.  */
+  /* Unordered chain of all existing symtabs of this objfile.  */
 
   struct symtab *next;