Merge a pointless head that got away.
2007-12-09 DavidAnderson <davea42@earthlink.net>
* dwarf_sort_line.c dwarf_print_lines.c darf_frame.c: Forgot
to commit yesterday.
Today's commit includes renaming _dwarf_fde_section_offset
_dwarf_cie_section_offset, _dwarf_print_lines, _dwarf_ld_sort_lines
to dwarf_* name while retaining support for the now obsolete
_dwarf_* form.
2007-12-08 DavidAnderson <davea42@earthlink.net>
* config.h.in, configure.in: Latest linux libelf.h requires
_GNU_SOURCE to get off64_t defined so dwarfdump compiles.
Only define _GNU_SOURCE if libelf.h defines off64_t.
Regenerated configure.
* config.guess, config.sub: Updated to 2.61
* acconfig.h: Deleted, removing autoconf complaint.
2007-11-14 David Anderson <davea42@earthlink.net>
* dwarf_frame2.c (gnu_aug_encodings): Now allows 'S' augmentation
character in eh_frame.
2007-10-16 David Anderson <davea42@earthlink.net>
* dwarf_alloc.c: Reformat a comment.
* dwarf_die_deliv.c (dwarf_siblingof): When there is no trailing
null-DIE in the section, ensure we don't test the contents
of a byte past section end.
* dwarf_frame.c: Changed spelling of a local variable
so it is easier to grep for and to read.
* dwarf_macro.c (free_macro_stack): Was free()ing memory that
_dwarf_get_alloc() had supplied, which could lead to core dump.
Fixed potential memory leaks (said leaks only possible with an
error in the macro data, not with valid macro section
data).
2007-10-15 David Anderson <davea42@earthlink.net>
* dwarf_alloc.c: The code supporting the special build
flag DWARF_SIMPLE_MALLOC
was broken and could coredump libdwarf
(which did not affect normal use of libdwarf).
* dwarf_opaque.h: Remove the field de_simple_malloc_current
as it is no longer used.
2007-09-04 David Anderson <davea42@earthlink.net>
* pro_forms.c: Add commentary relating to the
recent DWARF4 DW_AT_high_pc change.
Correct FSF address.
* libdwarf2p.1.mm: Document dwarf_add_AT_dataref()
and dwarf_add_AT_ref_address().
* libdwarf2p.1.pdf: Regenerate.
* dwarf.h: Update FSF address.
* dwarf_opaque.h: Add DWARF4 entry (version stamp).
Update FSF address.
* dwarf_die_deliv.c: Add check for .debug_info version 4
(version stamp). Update FSF address.
* libdwarf.h pro_macinfo.h pro_line.h dwarf_incl.h
pro_alloc.h pro_section.h libdwarfdefs.h pro_util.h
dwarf_vars.h dwarf_funcs.h pro_error.h dwarf_alloc.h pro_arange.h
dwarf_arange.h pro_die.h dwarf_global.h pro_expr.h
pro_reloc_stream.h pro_incl.h pro_encode_nm.h
dwarf_line.h pro_frame.h pro_opaque.h dwarf_error.h
dwarf_base_types.h dwarf_abbrev.h pro_types.h pro_reloc_symbolic.h
dwarf_weaks.h dwarf_util.h dwarf_loc.h malloc_check.h
dwarf_die_deliv.h acconfig.h dwarf_frame.h dwarf_macro.h
pro_reloc.h dwarf_types.h
pro_funcs.c Makefile.in pro_forms.c pro_line.c
dwarf_print_lines.c pro_alloc.c pro_init.c dwarf_addr_finder.c
pro_section.c dwarf_form.c dwarf_query.c dwarf_vars.c
dwarf_pubtypes.c dwarf_frame3.c dwarf_funcs.c pro_error.c
pro_arange.c dwarf_alloc.c dwarf_arange.c pro_die.c
dwarf_sort_line.c dwarf_global.c dwarf_init_finish.c pro_weaks.c
pro_pubnames.c pro_expr.c pro_reloc_stream.c pro_finish.c
pro_encode_nm.c dwarf_line.c pro_frame.c dwarf_error.c
dwarf_abbrev.c pro_types.c dwarf_leb.c pro_reloc_symbolic.c
dwarf_string.c pro_vars.c dwarf_line2.c dwarf_weaks.c
dwarf_frame2.c dwarf_util.c dwarf_loc.c LIBDWARFCOPYRIGHT
malloc_check.c dwarf_die_deliv.c dwarf_frame.c dwarf_stubs.c
dwarf_macro.c pro_reloc.c dwarf_types.c pro_macinfo.c:
Update FSF address.
2007-07-26 David Anderson <davea42@earthlink.net>
* pro_frame.c: Added commentary about some missing DWARF3 support.
* dwarf_srclines_dealloc.c: File unused, now deleted.
2007-07-04 David Anderson <davea42@earthlink.net>
* libdwarf.h: dwarf_get_loclist_entry() is implemented,
removed the erroneous 'unimplemented' comment.
* libdwarf2.1.mm: Improved the dwarf_get_loclist_entry()
documentation.
* libdwarf2.1.pdf: regenerated
* dwarf_loclist_entry.c: Removed from distribution, the
source has nothing of interest.
2007-07-03 David Anderson <davea42@earthlink.net>
* libdwarf.h: Add declaration of dwarf_loclist_from_expr();
* dwarf_loc.c: Implement dwarf_loclist_from_expr() and add
sign-extension macro calls to case DW_OP_const4s numbers.
Removed unused local variables.
* dwarf_form.c: Removed unused local variables.
* libdwarf2.1.mm: Document dwarf_loclist_from_expr().
* libdwarf2.1.pdf: Regenerated.
2007-07-01 David Anderson <davea42@earthlink.net>
* dwarf_frame2.c: Add commentary.
* dwarf_frame.c: Add in block_len for DW_CFA_val_expression
so libdwarf does not get confused by this frame expression
operator. Thanks to Cristian Vlasceanu for providing
a test case.
2007-06-29 David Anderson <davea42@earthlink.net>
* README: added a note that a few warnings about conversions
from pointer to integer are normal at libdwarf compile time.
2007-05-25 David Anderson <davea42@earthlink.net>
* dwarf_frame2.c (_dwarf_get_fde_list_internal):
Correct cie-list-creation so it adds to the tail of the list.
gcc 4.1.2 generates cie-use in an order the code did
not properly handle.
2007-05-08 David Anderson <davea42@earthlink.net>
* Makefile.in: Now generates pdf files.
* mips_extensions.mm: The only changes were to eliminate
unsupported macro (.PM) and to try to get correct output
from groff. No technical content change intended.
The pdf/postscript output remains a little odd though.
* libdwarf2.1.mm: Remove troff comment line.
2007-04-18 Chris Quenelle <chris.quenelle@sun.com>
* dwarf_addr_finder.c: repaired comment
* dwarf_form.c: add support for DW_AT_SUN_func_offsets
* pro_alloc.c: add memory block tracking to find and fix
lingering allocations. This is more important for very large
and intensive compiles.
* pro_die.c: Implement "markers" which are a generic way to
do things like relocations. You can set a marker on any
die, and when dwarf is produced in binary form, you get back
a list of your markers with the offset of each one in the binary
output. This is used by the Sun compilers to implement die
references that span compile unit blocks. (I may remove this,
it might be unused code related to partial_units and comdat
support)
* pro_die.c: Also check for loops in the die relationships so
that if you add a child twice, or other errors, you won't get
an infinite loop or a crash. Also start passing a DBG structure
to all allocation calls to help with memory block tracking.
* pro_expr.c: Add a public function to "reset" an expr. This
allows the same expr object to be reused over and over to save
memory if you're creating many many expressions for a location list.
* pro_finish.c: Free any left over blocks when the user calls
dwarf_producer_finish.
* pro_forms.c: More support for compressed integer blocks. Modify
error diagnostics so that user-defined attributes can be any type.
Add support for dwarf_add_AT_ref_address which is just like
dwarf_add_AT_address, only it produces a DW_FORM_ref_addr instead
of DW_FORM_addr. This is needed for cross-CU die pointers.
* pro_incl.h: add macros to control the spelling of relocation types.
* pro_init.c: use new macros to control reloc types
* pro_line.h: correct minimum instruction length on x86
* pro_opaque.h: add support for markers (see above) and also ability
have libdwarf tell the caller where the string constants are so
that they can be recorded as strings in case the binary output of libdwarf
needs to be converted back into assembly. That's what
Dwarf_P_Per_Sect_String_Attrs is about.
Remove de_mem_list as it is never used.
* pro_reloc_stream.c: repair prototype and comment for
_dwarf_pro_reloc_name_stream64, and use relocation type macros.
* pro_section.c: support for markers (see above) and for tracking
inline string attributes. Add code to sort the attributes so that
abbreviation table entries will be reduced. Change treatment of
DW_FORM_ref_addr to be more correct. Some support for packing
in the middle of sections, this will probably be removed.
Also pass DBg structure to more allocations.
* pro_util.h: relocation type values can't be zero.
2007-04-10 David Anderson <davea42@earthlink.net
* dwarf_print_lines.c pro_section.c dwarf_query.c
dwarf_alloc.c dwarf_arange.c dwarf_sort_line.c
dwarf_global.c dwarf_line.c dwarf_abbrev.c
dwarf_frame2.c dwarf_util.c dwarf_loc.c dwarf_util.h
dwarf_die_deliv.c dwarf_frame.c dwarf_macro.c: Additions
to source for year 2007 now fit in with pre-existing
copyright wording. Effectively no change.
* dwarf_srclines_dealloc.c: Now has the (always-intended) SGI
LGPL copyright wording.
2007-04-09 David Anderson <davea42@earthlink.net
* dwarf_error.h: Add DW_DLE_LINK_LOOP error code (Sun).
* libdwarf.h: Add DW_DLE_LINK_LOOP error code (Sun).
* dwarf.h: Incorporate Sun extensions. Thanks to
Chris Quenelle at Sun Microsystems.
2007-04-06 David Anderson <davea42@earthlink.net
* dwarf_sort_line.c (_dwarf_update_line_sec): initialize
Dwarf_Debug_s struct. Thanks to Chris Quenelle of Sun Microsystems.
Also initialize other local variables.
2007-04-02 David Anderson <davea42@earthlink.net
* dwarf_form.c (dwarf_formsdata, dwarf_formudata): Use
Dwarf_sfixed in dwarf_formsdata, document need for casts,
Use Dwarf_Signed as type for READ_UNALIGNED macro use.
The only real correction here is for a 64bit long compiled
libdwarf reading 32bit dwarf_formsdata FORM_data4.
* dwarf_base_types.h: Now Dwarf_sfixed64 and Dwarf_ufixed64
are properly declared (so they are usable).
2007-03-11 David Anderson <davea42@earthlink.net
* Makefile.in: use groff to produce postscript.
* libdwarf2.1.mm libdwarf2.1.ps libdwarf2p.1.mm
libdwarf2p.1.ps: Clean up the introduction and history.
Add a non-restrictive copyright notice.
2007-02-23 David Anderson <davea42@earthlink.net
* dwarf_util.h: now the macros use do{} while(0)
* pro_forms.c dwarf_print_lines.c pro_section.c dwarf_query.c
dwarf_arange.c dwarf_sort_line.c dwarf_global.c dwarf_line.c
dwarf_abbrev.c dwarf_frame2.c dwarf_util.c dwarf_loc.c
dwarf_die_deliv.c dwarf_frame.c: Now have ;
after all dwarf_util.h macros. Also added local variable
initializations (compiler noticed).
* dwarf_macro.c: was missing include of <stdlib.h> for free()
declaration.
* dwarf_print_lines.c pro_section.c dwarf_query.c dwarf_alloc.c
dwarf_arange.c dwarf_sort_line.c dwarf_global.c dwarf_line.c
dwarf_abbrev.c dwarf_srclines_dealloc.c dwarf_frame2.c
dwarf_util.c dwarf_loc.c dwarf_die_deliv.c dwarf_frame.c
dwarf_macro.c: indent run with standard libdwarf options.
2007-02-20 David Anderson <davea42@earthlink.net
* dwarf_macro.c (dwarf_get_macro_details): Now call
dwarf_free_macro_stack() at every return so no data
is leaked and there is no longer any global data
(restoring thread safety).
2007-02-09 David Anderson <davea42@earthlink.net
* dwarf_line.c (dwarf_srclines): Added in calls
to dwarf_free_line_table_prefix() which were omitted
by accident. Thanks to Cristian Vlasceanu for noticing.