Moved a couple functions between source files
and made them static. A couple commentary changes.
print_frames.c, though, needed hardening against
corrupt frame data.
dwarfdump/globals.h
dwarfdump/print_aranges.c
dwarfdump/print_die.c
dwarfdump/print_frames.c
dwarfdump/print_sections.c
All data reads from an object ensure the
read is actually in a section.
It is always possible something was overlooked, but
all the reading macros and functions now do checks.
libdwarf/dwarf_arange.c
libdwarf/dwarf_die_deliv.c
libdwarf/dwarf_errmsg_list.c
libdwarf/dwarf_form.c
libdwarf/dwarf_frame.c
libdwarf/dwarf_frame2.c
libdwarf/dwarf_global.c
libdwarf/dwarf_line.c
libdwarf/dwarf_line_table_reader_common.c
libdwarf/dwarf_loc.c
libdwarf/dwarf_loc2.c
libdwarf/dwarf_macro5.c
libdwarf/dwarf_opaque.h
libdwarf/dwarf_print_lines.c
libdwarf/dwarf_query.c
libdwarf/dwarf_ranges.c
libdwarf/dwarf_util.c
libdwarf/dwarf_util.h
libdwarf/dwarf_xu_index.c
libdwarf/libdwarf.h.in
if the gcc '__attribute__ ((name))' compiles ok.
* config.h.in, configure: Regenerated.
* libdwarfdefs.h: Test HAVE_UNUSED_ATTRIBUTE and define
UNUSEDARG appropriately.
* dwarf_alloc.c,dwarf_elf_access.c,dwarf_form.c,dwarf_frame2.c,
dwarf_gdbindex.c,dwarf_global.c,dwarf_init_finish.c,dwarf_line.c,
dwarf_line_table_reader_common.c,dwarf_macro5.c,
dwarf_original_elf_init.c,dwarf_print_lines.c,dwarf_ranges.c,
dwarf_tsearchhash.c,dwarf_util.c,dwarf_xu_index.c,
pro_alloc.c,pro_frame.c,pro_init.c,pro_reloc.c,
pro_reloc_stream.c,pro_section.c: Use UNUSEDARG to suppress
meaningless unused-parameter warnings from gcc.
dwarf_global.c,dwarf_line.c,dwarf_line.h,dwarf_line2.c,
dwarf_line_table_reader_common.c,dwarf_sort_line.c,libdwarf.h.in:
The SGI IRIX only fields in dwarf_line.h ifdef __sgi now.
And all code referencing them that way too. Balancing
#endif has /* __sgi */ now for searchability.
Functions only usable on SGI IRIX only compiled in if __sgi
macro defined.
libdwarf2.1.mm: Added a comment related to experimental
two-level line tables.
are caught so we avoid some coredumps.
Such strings in DWARF are created by 'fuzzing' or
by a bug in a compiler or linker.
libdwarf/dwarf_error.c
libdwarf/dwarf_form.c
libdwarf/dwarf_frame.c
libdwarf/dwarf_frame.h
libdwarf/dwarf_frame2.c
libdwarf/dwarf_global.c
libdwarf/dwarf_line.c
libdwarf/dwarf_macro.c
libdwarf/dwarf_string.c
libdwarf/dwarf_util.c
libdwarf/dwarf_util.h
libdwarf/libdwarf.h.in
DW_CIE_VERSION* DW_CU_VERSION**
DW_ARANGES_VERSION* DW_LINE_VERSION* DW_LOC_VERSION*
DW_LINE_STR_VERSION5, DW_MACRO_VERSION5,
DW_LINE_LOC, DW_NAMES_VERSION5, DW_PUBNAMES_VERSION*,
DW_PUBTYPES_VERSION*, DW_STR_OFFSETS_VERSION5,
DW_SUP_VERSION*, DW_CU_INDEX_VERSION5
exclusively. Deleting the CURRENT_VERSION_STAMP* macros.
The intent is to improve readability given we now have
4 versions of DWARF to deal with.
dwarf_arange.c(dwarf_get_aranges_list): Remove the length variable
as its calculated value is unused. rename length to area_length
for clarity. Calculate arange_ptr_past_end early and
correctly. Ensure that the test for version 4 is a >=
to reflect normal standards upgrades.
dwarf_die_deliv.c(dwarf_find_offdie_CU_Context): Add commentary
about offsets and lengths for clarity.
Rename fields for clarity about local vs global offset.
Use the newly named fields for precise tests of section overflow of
a type unit.
Other changes in libdwarf were additions and modifications of commentary.
* dwarf_arange.c,dwarf_elf_access.c, dwarf_frame3.c,
dwarf_funcs.c,dwarf_global.c,dwarf_init_finish.c,
dwarf_line.c,dwarf_loc.c,dwarf_macro.c,dwarf_print_lines.c,
dwarf_pubtypes.c,dwarf_query.c,dwarf_ranges.c,dwarf_string.c,
dwarf_types.c,dwarf_vars.c, dwarf_weaks.c: Everything loading
a section now checks the result for 'empty' and returns
DW_DLV_NO_ENTRY explicitly. This makes it easier to
do nothing safely when there is no data.
indentation. No interfaces changed. One new and
not very significant (to most people) interface added which
returns a count of abbreviations in an abbreviation section.
Copyrights updated for 2011.