The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

2008-12-29 DavidAnderson <davea42@earthlink.net>
* libdwarf.h: Add support for .debug_ranges with
dwarf_get_ranges() and dwarf_ranges_dealloc().
* dwarf_init_finish.c: Add support for .debug_ranges.
* dwarf_base_types.h: Add support for .debug_ranges functions.
* dwarf_alloc.c, dwarf_alloc.h: Add support for .debug_ranges
alloc/dealloc.
* dwarf_opaque.h: Add support for .debug_ranges.
* libdwarf2.1.mm: Documented dwarf_get_ranges() and
dwarf_ranges_dealloc() (rev 1.72).
* libdwarf2.1.pdf: Regenerated.
2008-12-09 DavidAnderson <davea42@earthlink.net>
* dwarf_alloc.c: Remove useless comments and
tweak a few comments.
2008-12-08 DavidAnderson <davea42@earthlink.net>
* dwarf_opaque.h: Add di_abbrev_code field to record
a DIE abbreviation value so consumers can report it.
* libdwarf.h: Add dwarf_die_abbrev_code() interface.
* dwarf_query.c: Add dwarf_die_abbrev_code() interface.
* dwarf_die_deliv.c: Set di_abbrev_code for consumers.
* libdwarf2.1.mm: Documented dwarf_die_abbrev_code().
* libdwarf2.1.pdf: Regenerated.
* pro_util.h: Removed gratuitous tabs. Used a space instead.
2008-12-07 DavidAnderson <davea42@earthlink.net>
* dwarf.h: Entered DWARF4 defines known so far.
* dwarf_opaque.h: Updated dwarf 4 section-version comment
with the latest info.
2008-12-07 DavidAnderson <davea42@earthlink.net>
* dwarf_original_elf_init.c: Delete unused local variables.
* pro_forms.c: Delete unused local variables and initialize
local variables at definition.
* dwarf_pubtypes.c, dwarf_line.c: Delete accidental
duplicated /* comment-start.
* malloc_check.c: In the 'do nothing' case, create
an extern declaration to eliminate a compiler warning.
2008-11-19 DavidAnderson <davea42@earthlink.net>
* dwarf_die_deliv.c: Handle the case where DW_AT_sibling
uses DW_FORM_ref_addr.
* dwarf_util.c: Add a comment about DW_FORM_ref_addr.
* dwarf_opaque.h: Add a comment about CU fields,
comment out an unused CU header field.
* dwarf_query.c: Added dwarf_die_CU_offset_range()
so dwarfdump can check for additional errors.
* dwarf_form.c: Clarifying a comment.
* dwarf_print_lines.c: Add additional print detail on
line table headers (used by dwarfdump).
* libdwarf2.1.mm: Documenting the new function
dwarf_die_CU_offset_range().
* libdwarf2.1.pdf: Regenerated.
* libdwarf.h: Added dwarf_die_CU_offset_range() interface
declaration.
2008-10-13 DavidAnderson <davea42@earthlink.net>
* dwarf_frame2.c: Removed last use of DW_FRAME_LAST_REG_NUM:
use dbg->de_frame_reg_rules_entry_count instead.
2008-09-30 DavidAnderson <davea42@earthlink.net>
* dwarf_print_lines.c: Print corrected warning
about bogus prologue length.
* dwarf_line.c: Work around bogus prologue length
compiler bug.
* dwarf_line.h: Rename arguments.
2008-09-29 DavidAnderson <davea42@earthlink.net>
* libdwarf2.1.mm: Documented requirement that
dwarf_get_fde_n() dwarf_get_fde_at_pc() pass a
pointer to an fde table that contains at least 1 entry.
* libdwarf2.1.pdf: regenerated.
* dwarf_opaque.h: Add new fields for cie/fde specific
fields for eh.
* dwarf_frame2.c: Initialize the new Dwarf_debug and
Dwarf_Fde fields.
* dwarf_frame.c: Access the new Dwarf_Fde fields.
* dwarf_frame.h: Define a new Dwarf_Fde field so we
keep eh and non-eh distinct.
2008-09-29 DavidAnderson <davea42@earthlink.net>
* All .c files: Mechanically removed tab characters with
the expand tool.
2008-09-29 DavidAnderson <davea42@earthlink.net>
* libdwarf.h: DW_DLE_LINE_SET_ADDR_ERROR no longer used.
The tests which generated it were bogus.
* dwarf_print_lines.c: Print a warning if there are any
apparently wasted bytes after the line prologue and before
the line table instructions. Match the new prologue reading
function prototype.
* dwarf_sort_line.c: Match the new prologue reading function
prototype.
* dwarf_line.c: Modify the prologue reading function so
it correctly finds the beginning of instructions even
when there are 'wasted' bytes after the prologue.
Drop bogus tests for minimum-instruction-size
matching the ABI pointer size. Removing the tests removed
all uses of DW_DLE_LINE_SET_ADDR_ERROR.
* dwarf_line.h: Modify the prototype for the prologue reading
function so it is possible for a caller to know about the
possibly wasted bytes after a prologue.
2008-09-02 DavidAnderson <davea42@earthlink.net>
* dwarf_init_finish.c (_dwarf_setup): Delete unused local
variable 'section_error'.
2008-08-14 DavidAnderson <davea42@earthlink.net>
* libdwarf2p.1.mm: Make it clearer that dwarf_get_pubnames, dwarf_get_varnames,
etc return a result across all compilation units (an entire section),
not just for a single compilation unit. Document version 1.68.
* libdwarf2p.1.pdf: Regenerated.
2008-08-08 DavidAnderson <davea42@earthlink.net>
* libdwarf2p.1.mm: Removed some long time
spelling mistakes: no technical change in content.
Document version 1.67.
* libdwarf2p.1.pdf: Regenerated.
2008-08-05 DavidAnderson <davea42@earthlink.net>
* libdwarf.h, dwarf_error.c: DW_DLA_PUBTYPE_CONTEXT was a mistake,
DW_DLE_PUBTYPE_CONTEXT was intended and is now the spelling (neither
is used).
* dwarf_pubtypes.c dwarf_vars.c dwarf_funcs.c dwarf_global.c dwarf_weaks.c:
tabs removed and previous strange formatting generated by a tool
removed (4 space indent per level now present).
2008-08-05 DavidAnderson <davea42@earthlink.net>
* libdwarf2.1.mm: There were numerous places the apostrophe
was used incorrectly, thru is now spelled through,
and a few other small typographical errors were corrected.
The document revision id printed is now 1.67.
There is no technical change in content.
* libdwarf2.1.pdf: Regenerated.
2008-06-17 DavidAnderson <davea42@earthlink.net>
* libdwarf.h: Add DW_DLE_STRP_OFFSET_BAD error code.
* dwarf_form.c: Add runtime check for strp offset.
* dwarf_error.c: Add DW_DLE_STRP_OFFSET_BAD error code string.
* dwarf_init_finish.c, dwarf_opaque.h, dwarf_elf_access.h: Remove
CR characters that crept in.
2008-06-13 DavidAnderson <davea42@earthlink.net>
* libdwarf.h: Remove __SGI_FAST_LIBELF
dwarf_original_elf_init.c: Remove __SGI_FAST_LIBELF
and fix some indentation botches.
* dwarf_init_finish.c: Fix typo in variable name introduced
a few days ago.
* dwarf_elf_access.c: Remove __SGI_FAST_LIBELF
and fix some indentation botches.
2008-05-20 DavidAnderson <davea42@earthlink.net>
* dwarf_init_finish.c: Expand tabs to spaces.
2008-05-20 DavidAnderson <davea42@earthlink.net>
* dwarf_init_finish.c(dwarf_object_init): When there is no
DWARF information return DW_DLV_NO_ENTRY gracefully.
Thanks to Carlos Alberto Enciso for pointing out
the bug.
2008-04-12 DavidAnderson <davea42@earthlink.net>
* pro_section.c: Initialize local variables to zero.
Change leading tabs to spaces.
* pro_reloc_stream.c: Initialize local variables to zero.
Change leading tabs to spaces.
* pro_reloc.c: Initialize local variables to zero.
Change leading tabs to spaces.
2008-04-04 DavidAnderson <davea42@earthlink.net>
* dwarf_base_types.h: Removed unused macro definition.
* dwarf_util.c: Altered abbreviations hash table for a small
performance improvement and space saving.
* dwarf_util.h: Changed declaration for space saving in dwarf
abbreviations table.
2008-04-04 DavidAnderson <davea42@earthlink.net>
* libdwarf.h: A trivial change to make a declaration look better.
* dwarf_abbrev.h: We record tags in more than 16 bits now just in case
we encounter such a thing (increased ab_tag field size), though
we should not find such.
* dwarf_abbrev.c: Adding a comment about the dwarf TAG value.
* dwarf_util.c: Initialize local variables at declaration for safety.
Removed truncation of some values: internally record more bits.
Rewrote handling of the abbrev table as the old one did not scale
to large numbers of abbreviations (things got very slow).
* dwarf_util.h: Now has a larger field size in the argument to
_dwarf_get_abbrev_for_code (not quite necessary but not harmful).
* dwarf_die_deliv.c: Initializing local variables at declaration and
removing truncation of bits from some uleb values.
* dwarf_die_deliv.h: Increased size of ab_code field.
* dwarf_opaque.h: Added a comment about abbreviations.
* dwarf_base_types.h: Revised to match addition of new
allocation table entry.
* dwarf_alloc.h: Document macro definitions and increase one to
match new table size.
* dwarf_alloc.c: Arrange handling of new DW_DLA_HASH_TABLE_ENTRY
(most of the work done in dwarf_util.c).
2008-02-27 DavidAnderson <davea42@earthlink.net>
* libdwarf.h: Fixed minor typo in latest libdwarf.h that gcc did not
complain about. Noted by Josh Fuhs.
2008-02-26 DavidAnderson <davea42@earthlink.net>
* dwarf_alloc.h: Add comment giving placement of DWARF_SIMPLE_MALLOC.
* pro_opaque.h: Remove de_access field, it is never used.
* libdwarf.h: Add new data structures to allow reading of
non-Elf object files.
* dwarf_original_elf_init.c: dwarf_init(), dwarf_elf_init()
moved here from dwarf_init_finish.c.
* Makefile.in: Build new source files dwarf_original_elf_init.c
and dwarf_elf_access.c.
* dwarf_init_finish.c: All dependencies on libelf and elf
have been removed.
* dwarf_opaque.h: The elf related info is removed and Dwarf_Debug_s
now contains a new structure (from libdwarf.h) to hide object
information.
* dwarf_elf_access.c: All the Elf-using code is now in this
source file and elf details are kept in a struct defined and
used here. Non-libelf and non-elf object access code would
write a new source file with their own details using this
as an example.
* dwarf_elf_access.h: Prototypes for calling between
dwarf_original_elf_init.c and dwarf_elf_access.c.
2008-02-18 DavidAnderson <davea42@earthlink.net>
* libdwarf.h: Declare new object-access functions and structures.
* dwarf_original_elf_init.c: Traditional dwarf_init() and dwarf_elf_init()
are moved to this new source file.
* Makefile.in: Add new source files.
* dwarf_init_finish.c: Now uses the function pointers, not
libelf specific fields or ifdefs.
* pro_opaque.h: Remove de_access field, it is unused.
* dwarf_opaque.h: New fields for new object-access functions.
* dwarf_elf_access.c: New implementation details for elf access functions
moved here from dwarf_init_finish.c.
* dwarf_elf_access.h: New function interface so dwarf_elf_access.c
and dwarf_original_elf_init.c can communicate.
2008-02-08 DavidAnderson <davea42@earthlink.net>
* dwarf_print_lines.c: Added commentary to clarify that
dwarf_print_lines() and _dwarf_print_lines are intentionally
identical. Initialized local variables so they are alll
visibly set to some sensible value.
2008-02-07 DavidAnderson <davea42@earthlink.net>
* dwarf_frame.c (_dwarf_fde_section_offset): A typo
in the last release made this an infinite loop.
A one character change fixed it. Thanks to Carlos Alberto
Enciso for noticing the bug.
2008-02-04 DavidAnderson <davea42@earthlink.net>
* dwarf_incl.h, pro_incl.h: Moved #include of dwarf.h before libdwarf.h
* pro_forms.c: Some newer attributes are now handled.
* dwarf_print_lines.c: Removed unused #include.
* dwarf_sort_line.c: Removed alloca use in favor of
malloc and removed the alloca #include.
* dwarf_line.c: Removed unused #include.
* dwarf_line2.c: Removed unused #include.
2008-02-04 DavidAnderson <davea42@earthlink.net>
* libdwarf.h: Fix commentary mistakes.
2008-02-02 DavidAnderson <davea42@earthlink.net>
* libdwarf.h: Add DW_DLC_OFFSET_SIZE_64 for run-time
selection of DWARF3 64bit extension producer offset generation.
* libdwarf2p.1.mm: Document DW_DLC_OFFSET_SIZE_64.
* pro_init.c (dwarf_producer_init): Now standard DWARF3 is the default.
* configure.in: Add --enable-dwarf-format-sgi-irix for those
wanting IRIX offset-style DWARF2. Add --enable-dwarf-format-strict-32bit
for those wanting strictly 32bit offsets.
Otherwise default to generating 64bit offsets from the producer code,
but allow the DWARF3 extended 64bit offsets if the flag
DW_DLC_OFFSET_SIZE_64 is turned on in the call to dwarf_producer_init().
* config.h.in: Provide undefs for the offset macros.
2008-01-25 DavidAnderson <davea42@earthlink.net>
* pro_die.c: Changed leading tabs to spaces.
2008-01-23 DavidAnderson <davea42@earthlink.net>
* pro_die.c: Using di_last_child field dwarf_die_link
goes from O(N) to O(1) in adding a child.
Thanks to Daniel Gollub for the suggestion.
An omission in linking left/right children is fixed.
Changed some leading TABs to spaces.
* pro_opaque.h: Add di_last_child field.
2008-01-14 DavidAnderson <davea42@earthlink.net>
* libdwarf2p.1.mm: Added missing backslash to correct formatting
error. Thanks to Daniel Golub for pointing out the ommission.
* libdwarf2.p1.pdf: Regenerated.