* infrun.c (follow_fork): Initialize new step_* locals
[deliverable/binutils-gdb.git] / gdb / blockframe.c
index 289e20c216d9c25fecab9a3e9443064f2214b1ed..f6565e545ea9a160505db124e89c20ecbec71cf0 100644 (file)
@@ -2,7 +2,7 @@
    functions and pc values.
 
    Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
-   1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007, 2008
+   1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007, 2008, 2009
    Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -114,7 +114,7 @@ get_frame_function (struct frame_info *frame)
    Returns 0 if function is not known.  */
 
 struct symbol *
-find_pc_sect_function (CORE_ADDR pc, struct bfd_section *section)
+find_pc_sect_function (CORE_ADDR pc, struct obj_section *section)
 {
   struct block *b = block_for_pc_sect (pc, section);
   if (b == 0)
@@ -137,7 +137,7 @@ find_pc_function (CORE_ADDR pc)
 static CORE_ADDR cache_pc_function_low = 0;
 static CORE_ADDR cache_pc_function_high = 0;
 static char *cache_pc_function_name = 0;
-static struct bfd_section *cache_pc_function_section = NULL;
+static struct obj_section *cache_pc_function_section = NULL;
 
 /* Clear cache, e.g. when symbol table is discarded. */
 
@@ -167,12 +167,11 @@ int
 find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
                          CORE_ADDR *endaddr)
 {
-  struct bfd_section *section;
+  struct obj_section *section;
   struct partial_symtab *pst;
   struct symbol *f;
   struct minimal_symbol *msymbol;
   struct partial_symbol *psb;
-  struct obj_section *osect;
   int i;
   CORE_ADDR mapped_pc;
 
@@ -183,13 +182,7 @@ find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
      the normal section code (which almost always succeeds).  */
   section = find_pc_overlay (pc);
   if (section == NULL)
-    {
-      struct obj_section *obj_section = find_pc_section (pc);
-      if (obj_section == NULL)
-       section = NULL;
-      else
-       section = obj_section->the_bfd_section;
-    }
+    section = find_pc_section (pc);
 
   mapped_pc = overlay_mapped_address (pc, section);
 
@@ -223,7 +216,7 @@ find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
            {
              cache_pc_function_low = BLOCK_START (SYMBOL_BLOCK_VALUE (f));
              cache_pc_function_high = BLOCK_END (SYMBOL_BLOCK_VALUE (f));
-             cache_pc_function_name = DEPRECATED_SYMBOL_NAME (f);
+             cache_pc_function_name = SYMBOL_LINKAGE_NAME (f);
              cache_pc_function_section = section;
              goto return_cached_value;
            }
@@ -244,7 +237,7 @@ find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
              if (address)
                *address = SYMBOL_VALUE_ADDRESS (psb);
              if (name)
-               *name = DEPRECATED_SYMBOL_NAME (psb);
+               *name = SYMBOL_LINKAGE_NAME (psb);
              /* endaddr non-NULL can't happen here.  */
              return 1;
            }
@@ -256,9 +249,7 @@ find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
      of the text seg doesn't appear to be part of the last function in the
      text segment.  */
 
-  osect = find_pc_sect_section (mapped_pc, section);
-
-  if (!osect)
+  if (!section)
     msymbol = NULL;
 
   /* Must be in the minimal symbol table.  */
@@ -275,7 +266,7 @@ find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
     }
 
   cache_pc_function_low = SYMBOL_VALUE_ADDRESS (msymbol);
-  cache_pc_function_name = DEPRECATED_SYMBOL_NAME (msymbol);
+  cache_pc_function_name = SYMBOL_LINKAGE_NAME (msymbol);
   cache_pc_function_section = section;
 
   /* If the minimal symbol has a size, use it for the cache.
@@ -291,20 +282,20 @@ find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
         other sections, to find the next symbol in this section with
         a different address.  */
 
-      for (i = 1; DEPRECATED_SYMBOL_NAME (msymbol + i) != NULL; i++)
+      for (i = 1; SYMBOL_LINKAGE_NAME (msymbol + i) != NULL; i++)
        {
          if (SYMBOL_VALUE_ADDRESS (msymbol + i) != SYMBOL_VALUE_ADDRESS (msymbol)
-             && SYMBOL_BFD_SECTION (msymbol + i) == SYMBOL_BFD_SECTION (msymbol))
+             && SYMBOL_OBJ_SECTION (msymbol + i) == SYMBOL_OBJ_SECTION (msymbol))
            break;
        }
 
-      if (DEPRECATED_SYMBOL_NAME (msymbol + i) != NULL
-         && SYMBOL_VALUE_ADDRESS (msymbol + i) < osect->endaddr)
+      if (SYMBOL_LINKAGE_NAME (msymbol + i) != NULL
+         && SYMBOL_VALUE_ADDRESS (msymbol + i) < obj_section_endaddr (section))
        cache_pc_function_high = SYMBOL_VALUE_ADDRESS (msymbol + i);
       else
        /* We got the start address from the last msymbol in the objfile.
           So the end address is the end of the section.  */
-       cache_pc_function_high = osect->endaddr;
+       cache_pc_function_high = obj_section_endaddr (section);
     }
 
  return_cached_value:
This page took 0.025748 seconds and 4 git commands to generate.