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 c80eddb..cd63152 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 68666da..3105327 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 e4ec4bf..e946c65 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;