@@ -1776,7 +1776,7 @@ backtrace_command_1 (char *count_exp, int show_locals, int no_filters,
QUIT;
pc = get_frame_address_in_block (fi);
- find_pc_sect_symtab_via_partial (pc, find_pc_mapped_section (pc));
+ expand_symtab_containing_pc (pc, find_pc_mapped_section (pc));
}
}
@@ -1050,8 +1050,10 @@ matching_obj_sections (struct obj_section *obj_first,
return 0;
}
-struct symtab *
-find_pc_sect_symtab_via_partial (CORE_ADDR pc, struct obj_section *section)
+/* See symtab.h. */
+
+void
+expand_symtab_containing_pc (CORE_ADDR pc, struct obj_section *section)
{
struct objfile *objfile;
struct bound_minimal_symbol msymbol;
@@ -1066,20 +1068,18 @@ find_pc_sect_symtab_via_partial (CORE_ADDR pc, struct obj_section *section)
|| MSYMBOL_TYPE (msymbol.minsym) == mst_abs
|| MSYMBOL_TYPE (msymbol.minsym) == mst_file_data
|| MSYMBOL_TYPE (msymbol.minsym) == mst_file_bss))
- return NULL;
+ return;
ALL_OBJFILES (objfile)
{
- struct symtab *result = NULL;
+ struct symtab *s = NULL;
if (objfile->sf)
- result = objfile->sf->qf->find_pc_sect_symtab (objfile, msymbol,
- pc, section, 0);
- if (result)
- return result;
+ s = objfile->sf->qf->find_pc_sect_symtab (objfile, msymbol,
+ pc, section, 0);
+ if (s != NULL)
+ return;
}
-
- return NULL;
}
/* Debug symbols usually don't have section information. We need to dig that
@@ -1163,10 +1163,9 @@ extern int find_pc_partial_function (CORE_ADDR, const char **, CORE_ADDR *,
extern void clear_pc_function_cache (void);
-/* lookup partial symbol table by address and section. */
+/* Expand symtab containing PC, SECTION if not already expanded. */
-extern struct symtab *find_pc_sect_symtab_via_partial (CORE_ADDR,
- struct obj_section *);
+extern void expand_symtab_containing_pc (CORE_ADDR, struct obj_section *);
/* lookup full symbol table by address. */