]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
PR c++/1267
authorDaniel Jacobowitz <drow@false.org>
Mon, 4 Aug 2003 03:07:01 +0000 (03:07 +0000)
committerDaniel Jacobowitz <drow@false.org>
Mon, 4 Aug 2003 03:07:01 +0000 (03:07 +0000)
* minsyms.c (lookup_minimal_symbol_by_pc_section): If SECTION is
NULL, default to the section containing PC.

gdb/ChangeLog
gdb/minsyms.c

index 684b9efdd82c11d4048f0f9a32b3987d06a0e161..f614c86634cf97860a4540089891304b6c7d282f 100644 (file)
@@ -1,3 +1,9 @@
+2003-08-03  Daniel Jacobowitz  <drow@mvista.com>
+
+       PR c++/1267
+       * minsyms.c (lookup_minimal_symbol_by_pc_section): If SECTION is
+       NULL, default to the section containing PC.
+
 2003-08-02  Andrew Cagney  <cagney@redhat.com>
 
        * config/djgpp/fnchange.lst: Fix up testsuite/gdb.c++/annota3.cc,
index fa7209d2bc633d9756a62ca0753a365461668c19..319865f6faf52a6689c69345627c9a3beadc3775 100644 (file)
@@ -403,13 +403,23 @@ lookup_minimal_symbol_by_pc_section (CORE_ADDR pc, asection *section)
   struct objfile *objfile;
   struct minimal_symbol *msymbol;
   struct minimal_symbol *best_symbol = NULL;
+  struct obj_section *pc_section;
 
   /* pc has to be in a known section. This ensures that anything beyond
      the end of the last segment doesn't appear to be part of the last
      function in the last segment.  */
-  if (find_pc_section (pc) == NULL)
+  pc_section = find_pc_section (pc);
+  if (pc_section == NULL)
     return NULL;
 
+  /* If no section was specified, then just make sure that the PC is in
+     the same section as the minimal symbol we find.  */
+  if (section == NULL)
+    section = pc_section->the_bfd_section;
+
+  /* FIXME drow/2003-07-19: Should we also check that PC is in SECTION
+     if we were passed a non-NULL SECTION argument?  */
+
   for (objfile = object_files;
        objfile != NULL;
        objfile = objfile->next)