Blob Blame History Raw
2015-12-31  David Anderson
     * configure.in: Now allows --enable-shared and --disable-nonshared
     * configure: regenerated.
2015-12-30  David Anderson
     * dwarf_elf_access.c(dwarf_elf_object_access_load_section):
       now test for a NULL data pointer from libelf. Problem caused
       by DWARF related section being marked SHT_NOBITS.
2015-12-29  David Anderson
     * dwarf_loc2.c: ll_dbg was not set, two places.
       dwarf_loc_head_c_dealloc() was not iterating
       through the list of locdescs.  Fixed now.
2015-12-19  David Anderson
     * dwarf_macro5.c: specialcat() had a bug. Fixed 
       indent/trailing whitespace.
     * dwarf_macro5.n: Fixed indent/trailing whitespace.
     * dwarf_line.c: Fixed indent/trailing whitespace.
     * dwarf_opaque.h: Fixed indent/trailing whitespace.
2015-12-19  David Anderson
     * dwarf_line.c: Rename a function and make it callable
       from other files: _dwarf_file_name_is_full_path().
       Refactor creating _dwarf_internal_get_die_comp_dir().
     * dwarf_macro5.c: Use _dwarf_internal_get_die_comp_dir() and
       _dwarf_file_name_is_full_path() for DWARF4/5 macro file names.
     * dwarf_macro5.h: New fields in macro context for the base
       file name.
     * dwarf_opaque.h: New field of comp_dir name on CU Context.
     * dwarf_util.c: Implement _dwarf_internal_get_die_comp_dir().
     * dwarf_util.h: Declare _dwarf_internal_get_die_comp_dir().
2015-12-18  David Anderson
     * dwarf_query: One line had trailing whitespace. Fixed.
     * dwarf_macro5.c: Was not getting import offset right.
       Off by one error.
2015-12-16  David Anderson
     * dwarf_query.c(dwarf_die_offsets): Added commentary..
       Revised the code so it's a bit easier to read
       and reason about.
2015-12-15  David Anderson
     * dwarf_form.c: Refactored to simplify DWARF5 macro code.
     * dwarf_macro5.c,dwarf_macro5.h,dwarf_opaque.h,libdwarf.h.in:
       Now support for DWARF5 macros is nearly complete.

2015-12-13  David Anderson
     * dwarf_error.c: Add DW_DLE_MACRO_PAST_END 
     * libdwarf.h.in: Add DW_DLE_MACRO_PAST_END
       and dwarf_get_macro_ops_count() declaration.
     * dwarf_macro5.c: Implement dwarf_get_macro_ops_count()
       and refactor a little bit.
     * dwarf_macro5.h: New fields supporting dwarf_get_macro_ops_count().
2015-12-12  David Anderson
     * dwarf_error.c,libdwarf.h.in: Adding DW_DLE_MACRO_OP_UNHANDLED.
     * dwarf_macro5.c: Now validates form numbers when there
       is an extension operator. Fixed indents too.
2015-12-11  David Anderson
     * dwarf_alloc.c: Remove () around simple return value.
     * dwarf_error.c: Two new error codes for DWARF5 macro section.
     * dwarf5_macro.c,dwarf5_macro.h: Add functions 
       to let reader read/print
       .debug_macro section header.  Fixed _dwarf_macro_constructor
       declaration and implementation to return DW_DLV_OK.
     * libdwarf.h.in: Add functions to let reader read/print
       .debug_macro section header.
2015-12-08  David Anderson
     * dwarf.h,dwarf_frame.c: Add DW_CFA_METAWARE_info.
     * dwarf_frame.h: Add aug_metaware to enum.
     * dwarf_frame2.c: Add aug_metaware  handling.
     * dwarf_util.c: Delete unused local variable.
2015-12-08  David Anderson
     * dwarf_die_deliv.c,dwarf_query.c,dwarf_util.c,libdwarf.h.in:
       Fix indents, remove trailing whitespace. Remove some useless ()
       in return statements.
2015-12-08  David Anderson
     * dwarf_init_finish.c: Added a cast to strncmp() call to
       avoid warning.
     * dwarf_abbrev.c,dwarf_die_deliv.c,dwarf_error.c,dwarf_opaque.h,
       dwarf_query.c,dwarf_util.c,dwarf_util.h: Now check for
       valid forms when reading forms. Return error code
       as appropriate (now _dwarf_get_abbrev_for_code returns
       DW_DLV* as appropriate instead of a pointer).
       Left error placeholders for eventual merge with DWARF5 macro code.
     * libdwarf.h.in: New error code for FORM problems,DW_DLE_UNKNOWN_FORM.
2015-12-03  David Anderson
     * dwarf_macro5.c, dwarf_macro5.c: sentinal->sentinel.
2015-12-02  David Anderson
     * Makefile.in: Bug building .so. Change $dwfzlib to $(dwfzlib)
       to fix.
2015-11-30  David Anderson
     * dwarf_alloc.c,dwarf_macro5.c,dwarf_macro5.h,libdwarf.h.in: 
       Remove trailing whitespace.
2015-11-30  David Anderson
     * Makefile.in: Add dwarf_macro5.o to build list.
     * dwarfdump.c: Add macro_flag flag to signal print
       of DWARF5 debug_macro data.
     * dwarf.h: Fix spelling of DWARF5 DW_MACRO fields.
     * dwarf_alloc.c: Add DW_DLA_MACRO_CONTEXT to alloc list.
     * dwarf_alloc.h: Add 1 to  ALLOC_AREA_INDEX_TABLE_MAX.
     * dwarf_init_finish.c: New function dwarf_get_section_max_offsets_c
       returns sizes of all sections, including DWARF5.
     * dwarf_macro5.c: New,for DWARF5 macro access.
       Implements dwarf_get_macro_context() etc.
     * dwarf_macro5.h: Declare new internal macro structs.
     * libdwarf.h.in: Declare new macro interfaces.
2015-11-28  David Anderson
     * dwarf_frame.c: Added dwarf_get_frame_section_name(),
       dwarf_get_frame_section_name_eh_gnu() for better section name
       reporting for clients that care about that.
     * libdwarf.h.in: Declared the new section name interfaces.
     * libdwarf2.1.mm: Documented the new functions. Version 2.36.
     * libdwarf2.1.pdf: Regenerated.
2015-11-27  David Anderson
     * dwarf_die_deliv.c: Added dwarf_get_die_section_name_b().
     * dwarf_line.c: Added dwarf_get_ranges_section_name()
       dwarf_get_aranges_section_name(), 
       dwarf_get_line_section_name_from_die(),
       dwarf_get_string_section_name.
     * libdwarf.h.in: Added new function names.
     * libdwarf2.1.mm: Version 2.35. Documented new functions.
     * libdwarf2.1.pdf: Regenerated.
2015-11-26  David Anderson
     * config.h.in, configure.in, Makefile.in: Deals with
       zlib when present.
     * configure: Generated.
     * libdwarf/dwarf_error.c: New error codes for zlib use.
     * dwarf_init_finish.c: Supports zlib and .zdebug sections.
     * dwarf_opaque.h: New fields for zlib support.
     * libdwarf.h.in: New error codes for zlib use.
2015-11-25 David Anderson
     * dwarf.h: Removed trailing space.
     * dwarf_elf_access.c: Small preparation for handling .zdebug.
     * dwarf_init_finish.c: Preparation for handling .zdebug zlib
       compressed dwarf .debug_ sections. Uses new function
       and new SET_UP_SECTION macro to shorten code and ensure
       no unwanted differences present.
     * dwarf_tied.c: Remove trailing whitespace.
     * dwarf_opaque.h: New fields in preparation for .zdebug
       handling.
2015-11-24 David Anderson
     * dwarf_tied.c: Code reading tied CU headers only worked by accident
       but is fixed. Reads only  as far as needed in tied for the signature
       being referenced.
2015-11-15 David Anderson
     * Makefile.in,configure.in: These now support building in separate clean directory.
     * configure: Regenerated.
2015-11-11 David Anderson
     * dwarf_opaque.h: Delete two useless blank lines.
2015-11-09 David Anderson
     * libdwarf.h.in: Removed unimplemented function 
       declarationfrom the file.
     * libdwarf2.1.mm: Updated with new interface functions
       for DWARF5 and split dwarf. Version2.33
     * libdwarf2.1.mm: Regenerated.
2015-11-08 David Anderson
     * dwarf_alloc.c: Fixed indents, trailing whitespace.  
     * dwarf_loc2.c: Fixed indents, trailing whitespace.  
     * dwarf_form.c: Made too-long line into 2 lines.
     * dwarf_loc.h: Removed duplicate Dwarf_Loc_c_s etc declarations.
     * dwarf_util.c(_dwarf_error_mv_s_to_t),dwarf_util.h: New 
       function to eliminate duplicative code.: 
     * dwarf_query.c): Fix bug in dwarf_get_offset_size().
       Use new _dwarf_error_mv_s_to_t() to get error on correct dbg.
       Fixed indents, trailing whitespace.
     * dwarf_ranges.c: Use new _dwarf_error_mv_s_to_t() 
       to get error on correct dbg.
       Fixed indents, trailing whitespace.
2015-11-07 David Anderson
     * dwarf_alloc.c: Added new checks so  user mixing up
       tied dbg with regular dbg won't lead to crashes
       when calling dwarf_dealloc or dwarf_finish().
       Zeroed out some fields to recognize space deallocated.
     * dwarf_die_deliv.c: Added support of split dwarf
       DW_AT_[GNU_]ranges_base
     * dwarf_form.c: Load string from tieddbg when appropriate.
     * dwarf_harmless.c: On free() zero out a field to show that was done.
     * dwarf_loc.c: Correct the handling of split dwarf loclist.
     * dwarf_opaque.h: Add cc_ranges_base_present for split dwarf.
       Add _dwarf_get_ranges_base_attr_from_tied() for split dwarf.
     * dwarf_query.c: Get and remember skeleton compilaton unit 
       DW_AT_[GNU_]ranges_base from tied objects for split dwarf.
     * dwarf_ranges.c: If a tied object present, look for ranges
       there, not in split dwarf object.
     * dwarf_util.c: Housekeeping zeros out fields to ensure not
       used after dealloc.
2015-11-01 David Anderson
     * configure.in: Added -O0 to --enable-wall.
       So if a coredump while debugging gdb will work well.
     * configure: Regenerated.
2015-11-01 David Anderson
     * Makefile.in: Split out dwarf_loc2 to put the DWARF5
       expression code all in one place.
     * dwarf_alloc.c,dwarf_alloc.h: Three new opaque 
       structs for DWARF5 expression interfaces.
     * dwarf_error.c: New error codes for DWARF5 expression interfaces.
     * dwarf_frame.c: Altered internal interfaces to support
       DWARF5 expression reading.
     * dwarf_loc.c: Refactored to support DWARF5 and moved
       some code into dwarf_loc2.c to segregate the new
       interfaces for clarity.  
     * dwarf_loc.h: Definitions of new library-internal structs
       (opaque to callers).
     * dwarf_loc2.c: Contains the new DWARF5 location expression
       interface code. It is not separately compiled, it is
       #included by dwarf_loc.c.
     * dwarf_opaque.h: Commentary change.
     * dwarf_query.c: dwarf_get_offset_size() new.  
       Refactored to avoid duplicating code.
     * libdwarf.h.in: DWARF5 location expression interfaces
       refined and commentary improved.q
2015-10-28  David Anderson
     * dwarf_loc2.c: New file with the new code for DWARF5
       location expressions put here. Not separate compile,
       this is brought into dwarf_loc.c via a #include there
2015-10-26  David Anderson
     * Makefile.in: Handle the configure --enable-wall option.
     * configure.in: Add --enable-wall so we can easily get
       gcc's -Wall option for the build.
     * configure: Regenerated.
     * dwarf_error.c: Amplify the text for DW_DLE_LOCLIST_INTERFACE_ERROR.
     * dwarf_loc.c(_dwarf_read_loc_expr_op): Correct a sanity test
       recently introduced.  Ensure the location fields all set.
       #if 0 some code that will be fixed with the new location
       interface set.
     * dwarf_loc.h: Revised the prototypes and commentary for the new
       location list interfaces.
2015-10-25  David Anderson
     * checkexamples.c: Add commentary to example9.
     * dwarf_alloc.c: Add DW_DLA_LOC_BLOCK_C and DW_CLA_LOCDESC_C
       allocation descriptions to array.
     * dwarf_alloc.h: Increase ALLOC_AREA_INDEX_TABLE_MAX to match.
     * dwarf_base_types.h: Increase MAX_DW_DLA to match.
     * dwarf_die_deliv.c: Switch some returns from pointer to
       the standard int DW_DLV_OK etc and return pointer through
       an argument.  Identify which CUs are dwo by checking name
       for a .dwo ending. Fix whitespace endings.
     * dwarf_error.c: Add DW_DLE 309 to 311 errors to descriptions array.
     * dwarf_form.c: Remove trailing whitespace. Reformat one line
       so it is not so long.
     * dwarf_line.c: Add {} on if for clarity. 
       Fix whitespace endings.
     * dwarf_line_table_reader.c: Fix whitespace endings.
     * dwarf_loc.c: Refactor loc. expr. reader into a 
       routine that reads one expression, _darf_read_loc_expr_op()..
       Add DWARF5 operators.
       Add preliminary dwo expression support (which will change
       but this is a start).  Old expression interface now
       explicitly supports only DWARF 2,3,4. No DWARF5.
       Add preliminary loclist_c support (it will change).
       Add commentary about the old loclist interface.
     * dwarf_loc.h: First cut of new interfaces (functional, not
       public structs).
     * dwarf_opaque.h: Add cc_is_dwo flag to cu context struct.
     * libdwarf.h.in: Rework some loclist commentary.
       Add first try at new loclist interfaces for DWARF2,3,4,5.
       New error codes for new loclist/dwo code.
     * libdwarf2.1.mm: Rev 2.32. New wording on old loclist 
       interfaces.
2015-10-15  David Anderson
     * dwarf_util.c,dwarf_query.c: Added DW_FORM_strp_sup as
       same idea as DW_FORM_GNU_strp_alt.
2015-10-15  David Anderson
     * checkexamples.c: Fixed data type in the example code.
     * dwarf.h: Updated comment about DW_FORM_GNU_strp_alt 
     * dwarf_elf_access.c: Fixed trailing whitespace and
       removed debug printf that got left in.
     * dwarf_error.c: Add new TIED file errors.
       DW_DLE_NO_TIED_FILE_AVAILABLE, DW_DLE_NO_TIED_STRING_AVAILABLE.
     * dwarf_form.c: Added support for DW_FORM_GNU_strp_alt.
     * dwarf_init_finish.c: #if 0 routine all_sig8bits_zero(). 
     * dwarf_line.c: Now always notice windows-like c: etc
       as start of a full path. Ensure directories with \ are
       turned to / in line tables. (for full such transforms
       configure with --enable-windowspath ) Remove some debug #ifdef
       lines.
       Alter the linecontext interface to pass back table count,
       not linecount.
     * dwarf_line.h: Add commentary and lc_table_count field.
     * dwarf_line_table_reader_common.c: Fix indent/trailing whitespace.
       Now sets lc_table_count;
     * dwarf_opaque.h: Add _dwarf_get_string_from_tied() interface.
     * dwarf_print_lines.c: Remove trailing whitespace and some debug printf..
     * libdwarf.h.in: New error codes. Fix trailing whitespace. Expand
       commentary.
2015-10-13  David Anderson
     * dwarf_line.c: Refactored so we have only one
       piece of code creating file paths from line table data.
       deleted obsolete code that was #if 0.
     * libdwarf.h.in: Fleshed out linecontext
       versions of two-level table readng.
       Revised  a new interface (dwarf_srclines_b) to
       make it possible to do a read of just the line header.
     * libdwarf2.1.mm: Documented new functions.
       Fixed the example code so it is actually correct
2015-10-06  David Anderson
     * Makefile.in: Removed source files from the build that
       are only useful to IRIX and only in the context of building
       an IRIX runtime system.
     * dwarf_alloc.c: Added constructor/destructor code to
       Dwarf_Line_Context allocator.
     * dwarf_elf_access.c: Added additional #defines so we
       have the IA64 defines we need to compile certain 
       test cases on freebsd.
     * dwarf_error.c: Two new error codes for Dwarf_Line_Context
       checking.
     * dwarf_line_table_reader_common.c: New file. We can compile
       the line reading with and without detailed print lines
       for dwarfdump.  Now only one body of line reading code
       to maintain.
     * dwarf_line.c: Moved code out to dwarf_line_table_reader_common.c
       Refactored to support skeleton line tables (DWARF5) 
       Eliminated an internal struct, it is no longer needed.
       a little better.
       Supports experimental two-level line tables too.
     * dwarf_print_lines.c: Uses dwarf_line_table_reader_common.c
       to do much of its work now.
     * libdwarf.h.in: New interfaces for nicer access to 
       line table headers.
     * libdwarf2.1.mm: Partial documentation of the new
       libdwarf line table interfaces. 
2015-10-01  David Anderson
     * dwarf_global.h: Now the last __sgi related macro (else, endif)
       have /* __sgi */.
2015-09-30  David Anderson
     * 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.

2015-09-29  David Anderson
     * dwarf_die_deliv.c,dwarf_line.c,dwarf_print_lines.c: Now looks for
       and adds the extra offset from debug_fission: DW_SECT_LINE.
2015-09-29  David Anderson
     *  dwarf_line.c,dwarf_line.h,dwarf_line_table_reader_common.c,
        dwarf_print_lines.c: Moved the prefix reading subroutine
        into common so the prefix-printing can have 
        print code added (with ifdef so production does not
        have it). 
2015-09-29  David Anderson
     * dwarf_line.c,dwarf_line_table_reader_common.c,dwarf_print_lines.c,
       dwarf_line.h,dwarf_line2.c,libdwarf.h.in:
       Moved some code from dwarf_line_table_reader_common.c to dwarf_line.c.
       Fixed indent and trailing whitespace. Fixed the 'section offset'
       code by using the proper value from dss_ptr..
2015-09-28  David Anderson
     * dwarf_line_table_reader_common.c: New file is the line table reader
       extracted from dwarf_line.c. Now compiled into dwarf_line.c
       and dwarf_print_lines.c with correct two-level line table
       calculations. No more coding the table twice.
     * dwarf_line.c,dwarf_print_lines.c: Now #include
       dwarf_line_table_reader_common.c
     * Makefile.in: Reflects new source depedencies.
     * dwarf_line2.c: An internal function interface changed,
       so accomodated it here.
     * libdwarf.h.in, dwarf_error.c: New error code, DW_DLE_BAD_LINE_TABLE_OPERATION.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   Makefile.in
	modified:   dwarf_error.c
	modified:   dwarf_line.c
	modified:   dwarf_line2.c
	modified:   dwarf_line_table_reader_common.c
	modified:   dwarf_print_lines.c
	modified:   libdwarf.h.in

2015-09-28  David Anderson
    * dwarf_line.c,dwarf_line.h,dwarf_print_lines.c: made li_ and lr_
      line register structs agree on spelling of suffix of each name.
      Now dwarf_srclines (and two-level) use the
      line register struct instead of a list of local variables.
2015-09-26  David Anderson
     * dwarf_elf_access.c: Removed some trailing spaces.
     * dwarf_line.c: Update the li_is_actuals_table (new field)
       where a new line is emitted. For later safe dealloc.
       Fixed indents and removed trailing spaces.
       Fixed the dwarf_srclines_dealloc to work properly on
       all the line table variations.
     * dwarf_line.h: Removed trailing spaces.
       Added li_is_actuals_table so the dealloc can work properly.
     * dwarf_print_lines.c: Fixed the Logicals and Actuals table
       formatting, Now prints the subprograms table too.
     * libdwarf.h.in: Added dwarf_get_LNCT_name() to function list.
2015-09-25  David Anderson
     * dwarf_print_lines.c: A first cut at detailed line tables.
       Not yet computing state register values for all two-level
       line tables here.
2015-09-25  David Anderson
     * dwarf_line.h: added a comment.
     * dwarf_print_lines.c: Now finds actuals and logicals
       tables and prints them. Incomplete but perhaps useful.
2015-09-24  David Anderson
     * dwarf_line.c: Renamed a local var for clarity. Added commentary
       for clarity.  Fixed a memory leak for skeleton lined tables.
       Added required free() calls on error to avoid memory leaks.
       Moved an 'overrun' check into a loop to check on every
       loop iteration.
     * dwarf_line.h: Added commentary.
2015-09-23  David Anderson
     * dwarf_abbref.c,dwarf_die_deliv.c,dwarf_init_finish.c,dwarf_query.c: Removed 
       unused local variables.
     * dwarf_line.c: Corrected bugs in the two-level line table
       support and improved error checking.
       Revamped the line table header reading code for clarity.
       See dw-linetableheader.txt .
     * dw-linetableheader.txt: The line table headers are a bit
       complicated (mostly by the experimental two-level 
       line table support) so this file shows the header fields
       in order by version.
     * dwarf_form.c: Fixed nested comment, removed unused local variables..
     * dwarf_loc.c: Cast return from _dwarf_get_alloc() to remove
       a compile warning.
     * dwarf_tied.c: Removed unused local variable.
     * dwarf_xu_index.c: Removed unused local variables.
2015-09-22  David Anderson
     * libdwarf/dwarf.h,dwarf_elf_access.c,dwarf_form.c,dwarf_line.h:
       Fixed indentation errors.
     * dwarf_line.c: Fixed indentation and corrected an error
       introduced a couple days ago.
2015-09-19  David Anderson
     * dwarf.h: Adding commentary. a DW_LNS for two-level line tables
       looks wrong..
     * dwarf_die_deliv.c: Adding commentary.
     * dwarf_line.c: An internal function now has a leading _
       and a context argument.. Added
       local names of popular pointers.
     * dwarf_print_lines.c,dwarf_sort_line.c: An internal 
       function now has a leading _ and a context argument..
     * dwarf_opaque.h: Added cc_segment_selector_size to contex structure.
     * libdwarf.h.in:  Added commentary on two-level line table functions etc.
2015-09-17  David Anderson
     * dwarf.h, dwarf_alloc.c,dwarf_base_types.h,dwarf_init_finish.c,
       dwarf_line.c,dwarf_line.h,dwarf_line2.c,dwarf_util.c,libdwarf.h.in:
       Adding support for experimental 2-level line table.
2015-09-15  David Anderson
     *  dwarf_form.c(_dwarf_extract_string_offset_via_str_offsets):
        Modified comment to reflect the current DWARF5 draft (we need not
        guess about correctness).
2015-09-15  David Anderson
     * dwarf_query.c, dwarf_form.c: We were failing 
       check for off-end-of debug_str_offsets section correctly
       and had a dwarf_dealloc where it was not wanted.
2015-09-15  David Anderson
     * dwarf_query.c(_dwarf_extract_address_from_debug_addr): At line 540
       we were deleting a dwarf_error that might not be there.
       Now conditional on DW_DLV_ERROR. This and around line 605
       are the very rare situation we can turn one error code off
       and possibly or definitely substitute another error. 
       Normally we just return the original error as the 
       'lowest level error.'
2015-09-15  David Anderson
     * dwarf_elf_access.c: Added conditional
       R_MIPS_64  and  R_MIPS_TLS_TPREL64 defines
       as the headers I have for freebsd 32bit VM
       do not define those and we need them for 
       testinga couple object files.
2015-09-15  Carlos Alberto Enciso
     * dwarf_elf_access.c: For Windows version, 
       some compilers generate
       EM_PPC64 elf type, but the generated code is 32 bits.
       Set the correct
       value for 'dbg->de_pointer_size'.
     * dwarf_init_finish.c: For Windows version, 
       remove the incorrect hard
       code value for 'dbg->de_pointer_size'.
     * dwgetopt.h: Add the guard 'extern "C"'.
2015-09-15  David Anderson and Carlos Alberto Enciso
     * dwarf_form.c (dwarf_formsig8_const): Was failing to
       return its return code.
     * dwarf_xu_index.c (_dwarf_search_fission_for_offset): Was 
       failing to return its return code.
2015-09-14  David Anderson
     * dwarf_form.c,dwarf_global.c,dwarf_line.c,dwarf_macro.c,dwarf_util.c:
       Fixed indents and removed trailing whitespace.
2015-09-14  David Anderson
     * libdwarf2.1.mm: Revision 2.30. Fixed awkward
       line in UTF-8 section.
     * libdwarf2.1.pdf: Regenerated
2015-09-14  David Anderson
     * libdwarf2.1.mm: Revision 2.29. Added text
       to Items Changed section. Added a top level
       UTF-8 strings section.
     * libdwarf2.1.pdf: Regenerated
2015-09-14  David Anderson
     * libdwarf2.1.mm: Revision 2.28. Now describes
       dwarf_set_tied_dbg().
     * libdwarf2.1.pdf: Regenerated
2015-09-13  David Anderson
     * libdwarf.h.in,dwarf_error.c: New error code for 
       improved string checking.
     * dwarf_form.c,dwarf_string.c:Now call the string checker
       on all strings and do a more thorough check.
     * dwarf_util.c, dwarf_util.h: Revised the interfaces to the 
       string checker to make it more useful and accurate.
2015-09-12  David Anderson
     * dwarf_die_deliv.c,dwarf_form.c,dwarf_opaque.h,
       dwarf_original_elf_init.c,dwarf_query.c,dwarf_tied.c:
       Now we can find addresses in the base from the dwp.
2015-09-11  David Anderson
     * Makefile.in: clean now removes test executable ./dwarftied
     * dwarf.h: Adding DW_AT_GNU_macros attribute, 0x2119.
2015-09-11  David Anderson
     * dwarf.h: Adding DW_AT_GNU_discriminator attribute, 0x2136.
2015-09-11  David Anderson
     * Makefile.in,dwarf_alloc.c,dwarf_die_deliv.c,dwarf_error.c,dwarf_form.c,
       dwarf_opaque.h,dwarf_original_elf_init.c,dwarf_query.ckdwarf_tied.c,
       libdwarf.h.in: Added dwarf_tied.c and -x tied= options. So libdwarf
       can follow DW_FORM_addrx to get the address from another object.
2015-09-05  David Anderson
     * dwarf.h: Fixed indentation of two lines with the 0x
       values incorrectly indented.
2015-07-12  David Anderson
     * dwarf_init_finish.c: Added commentary about .rela
     * dwgetopt.c,dwgetopt.h,dwgetopttest.c: Use dwoptind dwoptarg etc, 
       not optind, optarg, optopt opeerror etc.
     * gennames.h: use dwoptarg dwoptind, not optarg, optind.
2015-05-08  David Anderson
     * dwarf_die_deliv.c, dwarf_frame2.c, dwarf_frame2.c,
       dwarf_frame.c: The debugging-only #if 0 now have comments
       so grep for 'if 0' is not alarming.
     * dwgetopt.c,pro_forms.c,pro_section.c: Removed unused code
       bracketed with '#if 0'.
2015-05-01  David Anderson
     * dwarf.h: Added  DW_DEFAULTED* and DW_IDX* DWARF5 macros.
     * dwarf_abbrev.c: Expanded comments about the interface
       used by dwarfdump -a.
       It is NOT guaranteed to work on all objects.
       It continues to work usefully on a plain .o .
     * dwarf_alloc.h: Added code to clean when there
       are fission package file sections .debug_cu_index or
       .debug_tu_index.
     * dwarf_die_deliv.c: Significant changes to internals to support
       DWARF5 debug fission dwp package objects.
       Added dwarf_die_from_hash_signature() which lets one
       find DWP DIE information from a hash signature.
     * dwarf_error.c: Fifteen new DW_DLE* error messages added related
       to new DWARF5 sections and to debug fission package files.
     * dwarf_form.c:  New commentary about offsets rrelated to
       DWP package files.  New interface dwarf_formsig8_const()
       to read the DW_FORM_data8  a DW_AT_dwo_id uses.
     * dwarf_global.c: Added commentary about an old interface
       and DWARF5 (the old interface does not support DWARF5,
       newer (but not new) interfaces do).
     * dwarf_incl.h: Add dwarf_xu_index.h include.
     * dwarf_init_finish.c: Removed a couple dwo-section
       readers (they were not real) Added new DWARF5
       section readers and the appropriate .dwo section readers.
     * dwarf_line.c,dwarf_loc.c: Added support for getting the correct  line
     * dwarf_macro.c: Added comment that .debug_macinfo 
       section not supported in DWP
       Package File (and .debug_macinfo is not in DWARF5).
       section offset in a DWP package file.
     * dwarf_opaque.h: Many New fields for the new sections
       and DWP Package File support.
       Various new functions (libdwarf internal) for the
       new sections.
     * dwarf_query.c: Added support for DWP Package File offsets.
     * dwarf_tsearch.h: Added ifndef DWARF_TSEARCH so #include
       more than once does not lead to difficulty.
     * dwarf_util.c:  Added support for DWP Package File data.
     * dwarf_xu_index.c: Added support for DWP Package File data
       so it can all be read properly.
     * dwarf_xu_index.h: Added ifndef DWARF_XU_INDEX_H so #include
       more than once does not lead to difficulty.
     * libdwarf.h.in: Added dwarf_get_IDX_name() and 
       dwarf_get_IDX_name(). Added fifteen new DW_DLE error codes.
       New function dwarf_die_from_hash_signature().
     * libdwarf2.1.mm: Rev 2.27. Documented interfaces 
       dwarf_next_cu_header_d(),dwarf_die_from_hash_signature(),
       dwarf_get_debugfission_for_die(),dwarf_get_debugfission_for_key().
     * libdwarf2.1.pdf: Regenerated.
2015-04-23  David Anderson
     * dwarf.h: Delete spurious blank lines.
     * dwarf_base_types.h:  New defines. 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,
       DW_TU_INDEX_VERSION5, making version comparisons
       more precise and including DWARF5.
     * dwarf_arange.c: CURRENT_VERSION_STAMP -> DW_ARANGES_VERSION2 
     * dwarf_die_deliv.c,dwarf_global.c,dwarf_line.c, : Use the new 
       DW_*_VERSION* version names.
     * dwarf_init_finish.c: Added to 3 comments.
     * dwarf_loc.c: Use the new DW_*_VERSION* version names.
       Use a local variable to simpify some comparisons
       for readability.
     * dwarf_opaque.h: Update the comments about version numbers.
       Added new comments foreshadowing changes for DebugFission
       and DWP. REMOVE CURRENT_VERSION_STAMP* macros as they
       are no longer used.
2015-03-10  David Anderson
     * dwgetopt.c: Was mishandling options
       missing their required argument.
2015-03-09  David Anderson
    * dwgetopt.c: Fixed a bug in handling options.
      See dwarfdump build for testing code 
      and test runs for dwgetopt.c
2015-02-22  David Anderson
    * dwgetopt.h, dwgetopt.c: Copied from dwarfdump so
      libdwarf can compile without dwarfdump source present.
    * Makefile.in: Builds dwgetopt.o
    * gennames.c: Now uses dwgetopt.o
2015-02-12  David Anderson
    * dwarf_original_elf_init.c(dwarf_elf_init_file_ownership):
      When dwarf_elf_object_access_init() returns DW_DLV_ERROR
      the Dwarf_Error was not getting set. Now it is set.
2015-02-04  David Anderson
    * dwarf.h: Added new TAGs etc from DWARF5. Since DWARF5 is
      not a completed standard these new things could change.
    * dwarf_die_deliv.c: Refactored calculation of end_of CU
      to ensure uniformity.  Added checks to catch attempts
      to read past end and coredump (can happen when the DWARF is 
      erroneous). Notice when bogus attribute wraps memory
      so the next DIE would be at an earlier address in memory
      than the current die (DW_DLE_NEXT_DIE_LOW_ERROR).
    * dwarf_error.c: DW_DLE_NEXT_DIE_LOW_ERROR error code added.
    * dwarf_form.c: Added check to ensure we do not run off the
      end of the string section (.debug_str).
    * dwarf_opaque.h: Declare new internal
      function  _dwarf_calculate_section_end_ptr().
    * dwarf_query.c(dwarf_attrlist): 
      A little bit of refactoring/reordering done to catch
      errors.
      Created new function _dwarf_calculate_section_end_ptr().
    * dwarf_xu_index.c: Removed trailing space, one line..
    * libdwarf.h.in: Added define of DW_DLE_NEXT_DIE_LOW_ERROR.
2015-01-31  David Anderson
    * Makefile.in,common.c,common.h,dwarf_abbrev.c,dwarf_abbrev.h,
      dwarf_addr_finder.c,dwarf_alloc.c,dwarf_alloc.h,dwarf_arange.c,
      dwarf_arange.h,dwarf_base_types.h,dwarf_die_deliv.c,dwarf_die_deliv.h,
      dwarf_elf_access.c,dwarf_elf_access.h,dwarf_error.h,dwarf_form.c,
      dwarf_frame.c,dwarf_frame.h,dwarf_frame2.c,dwarf_frame3.c,dwarf_funcs.c,
      dwarf_funcs.h,dwarf_gdbindex.c,dwarf_global.c,dwarf_global.h,
      dwarf_incl.h,dwarf_leb.c,dwarf_line.c,dwarf_line.h,dwarf_line2.c,
      dwarf_loc.c,dwarf_loc.h,dwarf_macro.c,dwarf_macro.h,
      dwarf_opaque.h,dwarf_original_elf_init.c,dwarf_print_lines.c,
      dwarf_pubtypes.c,dwarf_query.c,dwarf_ranges.c,dwarf_reloc_arm.h:
      Removed obsolete postal address and oss.sgi.com address
      from copyright.

2015-01-30  David Anderson
     * dwarf_init_finish.c: Now uses Dwarf_Sig8 for .debug_cu_index.
     * dwarf_opaque.h: Use Dwarf_Sig8 for the dfp_hash field.
     * libdwarf.h.in: dwarf_get_xu_hash_entry() uses Dwarf_Sig8 now.
2015-01-30  David Anderson
     * dwarf.h: Adding some DWARF5 defines. 
       Use with caution: DWARF5 is not yet final.
     * gennames.c: Local array needed to be bigger
       due to a longer attribute list.
2015-01-28  David Anderson
     * libdwarf2.1.mm: Fixed .H 2 to .H 3 on
       dwarf_get_TAG_name etc.
       Removed duplication of 3 lines of 
       Global Namespace operations.
       Added doc of dwarf_dwarf_get_debug_str_index()
       and fixed a level 2 header (starting the quoted
       string with a period caused trouble in the
       output).
     * libdwarf2.1.pdf. Regenerated. Version 2.25.
2015-01-25  David Anderson
     * dwarf_form.c(dwarf_convert_to_global_offset): Removed
       yesterday's change. The cu_context offset value
       already has debugfission offset built in.
2015-01-24  David Anderson
     * dwarf_form.c: dwarf_convert_to_global_offset() was not
       accounting for debugfission data (dwp).
     * dwarf_die_deliv.c(dwarf_offdie_b): Was not adding
       cc_extension_size into cu header offset (cc_extension_size
       is rarely non-zero, but its omission was a bug here).
     * dwarf_util.h: Improved a line of commentary.
2015-01-21  David Anderson
     * Makefile.in: Now with separate dwarf_names.h and dwarf_names.c
       rules so parallel make works properly.
     * dwarf.h: Improved the comment on DW_SECT_TYPES as that
       is not actually part of DWARF5 but is reserved.
     * dwarf_die_deliv.c: Added dwarf_get_debugfission_for_die().
       Now dwarfdump and other clients can access
       and print fission data for a specific CU easily.
     * dwarf_init_finish.c(load_debugfission_tables): Deleted 
       unused local variable.
     * dwarf_opaque.h: Now uses libdwarf.h DW_FISSION_SECT_COUNT
       for clarity (libdwarf-only name).
     * libdwarf.h.in: Add DW_DLE_FISSION_VERSION_ERROR as part
       of error checking. Add prototype for 
       dwarf_get_debugfission_for_die() and declare its struct argument.
2015-01-18  David Anderson
     * dwarf_abbrev.c: Added comment, debugfission not supported
       in the non-cu-specific interface.
     * dwarf_alloc.c, dwarf_base_types.h: Add DW_DLA_FISSION_PERCU support.
     * dwarf_die_deliv.c: Added _dwarf_get_fission_addition_die()
       and  _dwarf_get_fission_addition() for debugfission support.
     * dwarf_error.c: Add DW_DLE_FISSION_INDEX_WRONG error string.
     * dwarf_form.c: Add debugfission support for str_offsets.
     * dwarf_init_finish.c: Load debugfission tables if such exist
       in an object.
     * dwarf_line.c: Add debugfission support for .debug_line.dwo
     * dwarf_loc.c: Add debugfission support for .debug_loc.dwo
     * dwarf_macro.c: Add comment that debugfission not supported
       in the non-CU-specific interface.
     * dwarf_opaque.h: Add structures for debugfission:
       Dwarf_Fission_Offsets_s,Dwarf_Fission_Per_CU_s,
       Dwarf_Fission_Section_Offset_s.
       declare the new functions in dwarf_die_deliv.c
     * dwarf_util.c: Remove a few lines of traling whitespace.
     * dwarf_uxu_index.c: Correct bogus formatting.
     * libdwarf.h.in: Add DW_DLE_FISSION_INDEX_WRONG .
2015-01-12  David Anderson
     * dwarf_init_finish.c(_dwarf_setup): Move freeresult
       declaration before statements.
     * dwarf_util.c: Add comments about va_end().
2015-01-11  David Anderson
     * dwarf_init_finish.c(_dwarf_setup): For all returns 
       in _dwarf_setup() free the sections malloc space.
2015-01-08  David Anderson
     * cmplrs/dwarf_addr_finder.h: Fix a comment and remove a trailing
       whitespace.
     * dwarf.h: Blank line added accidentally.
     * dwarf_alloc.c: Removed trailing whitespace.
     * dwarf_init_finish.c: Remove trailing whitespace. Fix indent.
     * dwarf_leb.c: Remove trailing whitespace. Fix indent.
     * dwarf_line.h: Fix macro backslash location, lining things up.
     * dwarf_util.c: Remove trailing whitespace.
2015-01-06  David Anderson
     * 	dwarf_alloc.c, dwarf_base_types.h, dwarf_elf_access.c,
        dwarf_error.c,dwarf_error.h,dwarf_form.c,dwarf_init_finish.c,
        dwarf_leb.c,dwarf_query.c,pro_section.c: Fixed indents and
        removed trailing whitespace.
2015-01-06  David Anderson
     * dwarf_frame.c( _dwarf_get_fde_info_for_a_pc_row): Cast
       the pointer returned from _dwarf_get_alloc(), somehow
       this cast was omitted.
     * dwarf_alloc.c(dwarf_dealloc): Ensure a NULL
       'space' pointer input is not touched before checking
       if it is set.
     * dwarf_init_finish.c(_dwarf_setup): For badly formed Elf
       ensure we do not use stale pointers.
2015-01-05  David Anderson
     * dwarf_original_elf_init.c(dwarf_finish): If the Dwarf_Debug is
       not initialized do not use it.
2015-01-03  David Anderson
     * libdwarf2p.1.mm: Somehow dwarf_transform_to_disk_form()
       was not documented. Now it is.
     * libdwarf2p.1.pdf: Regenerated, version 1.38.
2015-01-03  David Anderson
     * dwarf_allo.c: Comment the allocation table base
       more carefully.
     * dwarf_base_types.h: Making DW_DLA defines more
       readable, more consistent with other instances.
     * libdwarf.h.in: Adding producer error codes.
       The producer library has some places error values
       are misidentified. Main effect: documentation.
     * dwarf_error.c:  Add the strings for the new error codes.
2015-01-01  David Anderson
     *	A new year begins.