* symfile.h (enum dwarf2_section_enum): New type.
(dwarf2_get_section_info): New prototype.
* dwarf2read.c (dwarf2_get_section_info): Replace parameter
section_name by sect. Use a switch to select the info.
* dwarf2-frame.c (warf2_get_section_info): Remove prototype.
(dwarf2_build_frame_info): Adjust calls to dwarf2_get_section_info.
+2011-05-24 Tristan Gingold <gingold@adacore.com>
+
+ * symfile.h (enum dwarf2_section_enum): New type.
+ (dwarf2_get_section_info): New prototype.
+ * dwarf2read.c (dwarf2_get_section_info): Replace parameter
+ section_name by sect. Use a switch to select the info.
+ * dwarf2-frame.c (warf2_get_section_info): Remove prototype.
+ (dwarf2_build_frame_info): Adjust calls to dwarf2_get_section_info.
+
2011-05-24 Pedro Alves <pedro@codesourcery.com>
* solib-svr4.c (svr4_solib_create_inferior_hook): Skip setting
return ret;
}
\f
-
-/* Imported from dwarf2read.c. */
-extern void dwarf2_get_section_info (struct objfile *, const char *,
- asection **, gdb_byte **,
- bfd_size_type *);
-
static int
qsort_fde_cmp (const void *a, const void *b)
{
unit->dbase = 0;
unit->tbase = 0;
- dwarf2_get_section_info (objfile, ".eh_frame",
+ dwarf2_get_section_info (objfile, DWARF2_EH_FRAME,
&unit->dwarf_frame_section,
&unit->dwarf_frame_buffer,
&unit->dwarf_frame_size);
}
}
- dwarf2_get_section_info (objfile, ".debug_frame",
+ dwarf2_get_section_info (objfile, DWARF2_DEBUG_FRAME,
&unit->dwarf_frame_section,
&unit->dwarf_frame_buffer,
&unit->dwarf_frame_size);
SECTION_NAME. */
void
-dwarf2_get_section_info (struct objfile *objfile, const char *section_name,
+dwarf2_get_section_info (struct objfile *objfile,
+ enum dwarf2_section_enum sect,
asection **sectp, gdb_byte **bufp,
bfd_size_type *sizep)
{
*sizep = 0;
return;
}
- if (section_is_p (section_name, EH_FRAME_SECTION))
- info = &data->eh_frame;
- else if (section_is_p (section_name, FRAME_SECTION))
- info = &data->frame;
- else
- gdb_assert_not_reached ("unexpected section");
+ switch (sect)
+ {
+ case DWARF2_DEBUG_FRAME:
+ info = &data->frame;
+ break;
+ case DWARF2_EH_FRAME:
+ info = &data->eh_frame;
+ break;
+ default:
+ gdb_assert_not_reached ("unexpected section");
+ }
dwarf2_read_section (objfile, info);
extern int dwarf2_has_info (struct objfile *);
+/* Dwarf2 sections that can be accessed by dwarf2_get_section_info. */
+enum dwarf2_section_enum {
+ DWARF2_DEBUG_FRAME,
+ DWARF2_EH_FRAME
+};
+
+extern void dwarf2_get_section_info (struct objfile *,
+ enum dwarf2_section_enum,
+ asection **, gdb_byte **,
+ bfd_size_type *);
+
extern int dwarf2_initialize_objfile (struct objfile *);
extern void dwarf2_build_psymtabs (struct objfile *);
extern void dwarf2_build_frame_info (struct objfile *);