gdb/
[deliverable/binutils-gdb.git] / gdb / blockframe.c
index 38973667cd2aab43d8671ce25fe66bc188f72e21..ba755a1a7091915c6af8f483e17ca343bf85fdda 100644 (file)
@@ -159,7 +159,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 const char *cache_pc_function_name = 0;
 static struct obj_section *cache_pc_function_section = NULL;
 static int cache_pc_function_is_gnu_ifunc = 0;
 
@@ -190,7 +190,7 @@ clear_pc_function_cache (void)
 /* Backward compatibility, no section argument.  */
 
 int
-find_pc_partial_function_gnu_ifunc (CORE_ADDR pc, char **name,
+find_pc_partial_function_gnu_ifunc (CORE_ADDR pc, const char **name,
                                    CORE_ADDR *address, CORE_ADDR *endaddr,
                                    int *is_gnu_ifunc_p)
 {
@@ -346,14 +346,15 @@ find_pc_partial_function_gnu_ifunc (CORE_ADDR pc, char **name,
    is omitted here for backward API compatibility.  */
 
 int
-find_pc_partial_function (CORE_ADDR pc, char **name, CORE_ADDR *address,
+find_pc_partial_function (CORE_ADDR pc, const char **name, CORE_ADDR *address,
                          CORE_ADDR *endaddr)
 {
   return find_pc_partial_function_gnu_ifunc (pc, name, address, endaddr, NULL);
 }
 
-/* Return the innermost stack frame executing inside of BLOCK, or NULL
-   if there is no such frame.  If BLOCK is NULL, just return NULL.  */
+/* Return the innermost stack frame that is executing inside of BLOCK and is
+   at least as old as the selected frame. Return NULL if there is no
+   such frame.  If BLOCK is NULL, just return NULL.  */
 
 struct frame_info *
 block_innermost_frame (const struct block *block)
@@ -368,7 +369,9 @@ block_innermost_frame (const struct block *block)
   start = BLOCK_START (block);
   end = BLOCK_END (block);
 
-  frame = get_current_frame ();
+  frame = get_selected_frame_if_set ();
+  if (frame == NULL)
+    frame = get_current_frame ();
   while (frame != NULL)
     {
       struct block *frame_block = get_frame_block (frame, NULL);
This page took 0.024629 seconds and 4 git commands to generate.