2018-12-21  David Anderson
     * pdfbld.sh: Now more flexible for creating one or
       both pdfs.
     * libdwarf2.1.pdf: Regenerated rev 2.70 per
       yesterday's .mm changes.
2018-12-20  David Anderson
     * dwarf_elf_access.c,memcpy_swap.h,pro_alloc.h,pro_dnames.h:
       Removing trailing whitespace, trailing blank lines.
2018-12-20  David Anderson
     * dwarf_dnames.c,pro_dnames.h,pro_die.h: Remove some
       uses of Dwarf_ufixed.
     * pro_section.c: Remove some uses of Dwarf_ufixed
       and instead of 2,4,8 use DWARF_HALF_SIZE,
       DWARF_23BIT_SIZE or DWARF_64BIT_SIZE as appropriate.
2018-12-20  David Anderson
     * Makefile.am: Adding new header memcpy_swap.h
       to the headers list.
     * dwarf_gdbindex.c,dwarf_init_finish.c,dwarf_machoread.c,
       dwarf_object_detector.c, dwarf_peread.c:
       Include memcpy_swap.h.
       Use the new _dwarf_memcpy_noswap_bytes instead
       of memcpy directly.
     * pro_init.c: Include memcpy_swap.h.
       Use the new _dwarf_memcpy_noswap_bytes instead
       of memcpy directly. Delete local declaration
       now memcpy_swap.h used here.
     * dwarf_machoread.h,dwarf_peread.h:
       mo_copy_word declaration adjustment
       to match  the new _dwarf_memcpy_noswap_bytes
     * dwarf_incl.h: Put <stddef.h> before "dwarf.h" and
       "libdwarf.h" includes (and don't use <> on dwarf.h
       or libdwarf.h as they may only be locally defined)
     * dwarf_opaque.h: void return on de_copy_word now.
       Delete ugly redeclaration of _dwarf_memcpy_swap_bytes.
     * dwarf_util.c: Implement dwarf_get_endian_copy_function
       so dwarfdump can swap bytes where it needs to (as in
       printing frame instruction bytes).
       And implement _dwarf_memcpy_noswap_bytes with
       a void return. _dwarf_memcpy_swap_bytes now
       also with void return.
     * libdwarf.h.in: Declare the new function
       dwarf_get_endian_copy_function().
     * pro_alloc.h: Add idempotency and ifdef __cplusplus.
     * pro_incl.h: Delete pointless blank lines in the macro
       definition area.
     * pro_opaque.h: delete <stddef.h> include.
       No longer needed as de_copy_word no longer uses
       size_t.
2018-12-19  David Anderson
     * dwarf_elf_access.c(dwarf_get_elf): Now uses the new
       format per-object-type to quickly figure out if there is
       an Elf * open.
2018-12-19  David Anderson
     * dwarf_errmsg_list.h: Added DW_DLE_IMAGE_FILE_UNKNOWN_TYPE.
     * dwarf_error.c: Added dwarf_errmsg_by_number()
       so one can get more complete messages when all we have
       is an error   number.
     * dwarf_object_detector.c: For PE objects the correct
       machine id for 64bit is 0x8664, not 0x8886.
     * libdwarf.h.in: Added dwarf_errmsg_by_number()
       and DW_DLE_IMAGE_FILE_UNKNOWN_TYPE.
       Fixed a couple trailing white-space instances.
     * pro_section.c: Removed the blank last line of the file.
2018-12-07  David Anderson
     * pro_die.c pro_finish.c pro_forms.c pro_line.c:
       Some lines were too long and one test for error
       (from the last set of changes)
       was written in a usable but non-standard way so
       that's now done in the standard way.
2018-12-05  David Anderson
     * dwarf_query.c: Removed useless blank lines.
     * libdwarf.h.in: Many new producer functions so
       the better return values of DW_DLV_OK/DW_DLV_ERROR
       are available for every producer call.
       The older functions are present and continue to work.

     * libdwarf2p.1.mm: Document the old (a couple
       got left out earlier) and new producer
       functions.
     * libdwarf2p.1.pdf: Regenerated. Version 1.48.
     * pro_arange.c, pro_die.c, pro_expr.c, pro_forms.c,
       pro_frame.c,pro_funcs.c,pro_line.c,pro_opaque.h,
       pro_pubnames.c,pro_reloc.c,pro_section.c,pro_types.c,
       pro_vars.c,pro_weaks.c: New functions provided
       so caller code is easier to read. The new
       interfaces are more type-safe than before.
2018-11-29  David Anderson
     * dwarf_abbrev.c: Now deals with DW_FORM_implicit_const
       properly.
     * dwarf_arange.c: Remove trailing whitespace.
     * dwarf_die_deliv.c: Now deals with DW_FORM_implicit_const
       properly.
     * dwarf_machoread.c,dwarf_object_detector.c,
       dwarf_peread.c: Remove
       trailing whitespace and fix indentation.
     * dwarf_opaque.h: Add ar_implicit_const to
       Dwarf_Attribute_s to deal with the implicit const
       FORM.
     * dwarf_query.c: Now deals with DW_FORM_implicit_const
       properly.
     * dwarf_util.c: Remove trailing whitespace and
       fix indentation.  Now deals with DW_FORM_implicit_const
       properly.
     * libdwarf.h.in: Declare new function
       dwarf_add_AT_implicit_const().
     * libdwarf_version.h: Updated version string.
     * pro_die.h: Add abb_implicits to
       Dwarf_P_Abbrev_s deal with the implicit const FORM.
     * pro_forms.c: Implement dwarf_add_AT_implicit_const().
     * pro_opaque.h: Add Dwarf_Signed dsa_implicitvalue
       to Dwarf_Sort_Abbrev_s for implicit value(s).
     * pro_section.c: Now deals with DW_FORM_implicit_const
       properly.
     * pro_section.h: Now SECTION_TYPE defaults to 1
       as the suggested section type,
       which is SHT_PROGBITS in Elf. See the comments
       there.  Used to depend on a #ifdef and sometimes
       was defined SHT_MIPS_DWARF.
     * libdwarf2p.1.mm: Document the new implicit
       const function.
     * libdwarf2p.1.pdf: Regenerate. Version 1.47.
2018-11-28  David Anderson
     * CMakeLists.txt: The previous change failed to
       deal with the new pe .h files properly. Fixed.
       And, the SOURCES and HEADERS lists are now
       on shorter lines so they fit in 70 characters.
2018-11-26  David Anderson
     * Makefile.am: Added new files
     * dwarf_pe_descr.h,dwarf_peread.c,dwarf_peread.h:
       New files implementing reading DWARF from PE
       object files.
     * dwarf_arange.c: Notice some zero length
       things in .debug_aranges and ignore them.
       Only ever seen in a PE dll with DWARF .
       Odd. Needs further checking.
     * dwarf_die_deliv.c: Here too, check for zero length
       CU and just move along. Same dll.
       Odd. Needs further checking.
     * dwarf_generic_init.c: Call the pe setup code.
     * dwarf_init_finish.c: Delete useless blank line.
     * dwarf_machoread.c: Add checks to catch
       corrupted object files.
     * dwarf_opaque.h: Add _dwarf_pe_setup().
     * dwarf_util.h: Some macro lines were too long.
       Shortened so they are easier to read/verify.
     * libdwarf_version.h: Updated version string.
     * CMakeLists.txt: Added new pe files.
2018-11-24  David Anderson
     * dwarf_object_detector.c: The same ASNAR bug
       fixed here now.
     * libdwarf_version.h: Updated date string.
2018-11-22  David Anderson
     * dwarf_machoread.c: A bug in the ASNAR macro
       for big-endian hosts lead to coredump reading
       mach-o objects (of any endianness) on such hosts.
2018-11-20  David Anderson
     * Makefile.am: The setup for cross-builds
       was incomplete for errmsg_check. Fixed.
     * dwarf_base_types.h: Removed a
       nested include of libdwarfdefs.h.
     * dwarf_incl.h: Moved the include of libdwarfdefs.h
       to here.
     * dwarf_errmsg_list.h: Added new (as yet
       unused) error messages.
     * dwarf_machoread.c: Added overview commentary.
     * dwarf_test_errmsg_list.c: Improved error messages
       in a few cases so errors detected are more
       self-explanatory.
     * libdwarf.h.in: Added new (as yet unused) error
       message defines.
2018-11-06  David Anderson
     * dwarf_machoread.c(_dwarf_macho_object_access_init):
       Following a malloc the null
       check referenced the wrong variable!
2018-11-05  David Anderson
     * dwarf_machoread.c: Added a sanity check on mo_command_count
       before adding it to anything.
       Now malloc a Dwarf_Obj_Access_Interface_s so we
       use a local function consistently.
       We were freeing on an address of a local variable...
       But only if a mach-o object was seriously corrupted.
     * dwarf_object_detector.c: We now know we misinterpreted
       a comment in the macho-loader header. DW_ENDIAN_SAME
       (and _OPPOSITE) were inappropriate.
       Endianness detection for PE and mach-o objects are fixed.
     * libdwarf.h.in,dwarf_object_detector.h: Dropping
       DW_ENDIAN_SAME and DW_ENDIAN_OPPOSITE as we
       no longer use them.
     * dwarf_macho_loader.h: Added commentary about
       the MH_MAGIC etc values.
     * libdwarf_version.h: Updated date string.
2018-11-01  David Anderson
     * libdwarf_version.h: Updated date string.
     * dwarf_machoread.c(dwarf_macho_load_dwarf_section_details64):
       Had an off-by-one error (which was already corrected
       in the *details32 function). If the last section
       was DWARF related this bug caused a DWARF section to
       appear unavailable.
2018-10-30  David Anderson
     * libdwarf_version.h: Updated date string.
2018-10-24  David Anderson
     * libdwarf2.1.mm: Added documentation on
       new functions dwarf_object_detector_fd(),
       dwarf_object_detector_path(), and dwarf_init_path().
       Fixed indentation many places (many still to fix).
     * libdwarf2.1.pdf: Regenerated Reg 2.68.
     * dwarf_macho_loader.h: Renamed from macho-loader.h
     * Makefile.am: reflects name change.
     * dwarf_machoread.c: Uses renamed macho structs.
     * dwarf_machoread.h: Renames a couple macho structs.
       Aligns fieldnames with the similar item in libdwarf.h.
     * dwarf_object_detector.c: A build on 32bit machine
       noticed a function-prototype inconsistency
       in declaring dwarf_object_detector_path(). Fixed.
       Now allows outpath, outlen
       of the dwarf_object_detector_path() call to be zero,
       suppressing macho dSYM subdirectory checks.
2018-10-23  David Anderson
     * dw_elfstructs.h: Adding this for use with object readers.
     * dwarf_init_finish.c: Fixed placement of blank line to
       match standard source formatting.
     * macho-loader.h: Now avoids direct use of integral
       types. Uses macro to setup each member.
     * dwarf_machoread.c: New macro ASNAR handles endianness
       and uses the new struct member format in macho-loader.h
     * dwarf_object_detector.c
     * dwarf_reading.h: Simplified as a result of the new ASNAR
       macro and the structs it helps with.
     * libdwarf_version.h: New version string.
2018-10-20  David Anderson
     * dwarf_machoread.c,dwarf_machoread.h: Moved macros from the .h
       to the .c.
     * dwarf_object_detector: Removed the need to know the correct
       type of fields in object-defined headers. We know the lengths
       and layouts and that suffices because we copy everything
       anyway to deal with endianness. No more need to define t16
       or t32 as the 'right' type.
2018-10-19  David Anderson
     * dwarf_version.h: Updated date string.
     * dwarf_errmsg_list.h: New errors DW_DLE_ELF_CLASS_BAD(420),
       DW_DLE_ELF_ENDIAN_BAD(421), DW_DLE_ELF_VERSION_BAD(422),
       DW_DLE_FILE_TOO_SMALL(423),DW_DLE_PATH_SIZE_TOO_SMALL(424),
       DW_DLE_BAD_TYPE_SIZE(425) for new checks for object
       correctness.  Of more than one object type.
     * dwarf_generic_init.c: The new function
       dwarf_init_path has a new type for the call to
       dwarf_object_detector.
     * dwarf_object_detector.c: Now works in the libdwarf context.
       Contains checks for Elf, Mach-o and PE object files as well
       as recognizing archives ( such as <filename>.a).
     * dwarf_object_detector.h: Tweaked into final form.
     * dwarf_opaque.h:  Added de_filesize field as we usually
       now know the file size for checking offsets.
     * libdwarf.h.in: Added the DW_DLE named above.
       declared  dwarf_object_detector_path() and
       dwarf_object_detector_fd() as public functions.
     * pro_alloc.c: #ifdefd the include of malloc.h.
2018-10-17  David Anderson
     * macho-loader.h: A header for reading mach-o dsym objects.
     * dwarf_generic_init.c,dwarf_init_finish.c: Now modified to
       support reading mach-o.
     * dwarf_machoread.c,dwarf_machoread.h: Contains
       the mach-o specific details.
     * dwarf_object_read_common.c: New, has a
     * dwarf_opaque.h
     * dwarf_original_elf_init.c: now allows elf or mach-o objects
       and calls the appropriate setup code.
     * dwarf_reading.h: new common header for reading without libelf.
     * pro_section.c: Fix trailing whitespace.
2018-10-15  David Anderson
     * dwarf_version.h: Updated date string.
     * dwarf_die_deliv.c: Now a sibling-offset error
       returns an error of DW_DLE_SIBLING_OFFSET_WRONG.
       Now the code avoids adding a corrupt value
       to a pointer (thus properly detecting
       DW_DLE_SIBLING_OFFSET_WRONG).
     * libdwarf.h.in: Added DW_DLE_SIBLING_OFFSET_WRONG.
     * dwarf_errmsg_list.h: Added DW_DLE_SIBLING_OFFSET_WRONG
       to the errmsg strings list.
2018-10-14  David Anderson
     * dwarf_version.h: Updated date string.
     * pro_section.c: An extra 0-byte was being added
       in generated DWARF
       at the end of section as if the top level
       was a sibling chain, and GNU readelf
       noticed the wasted byte. No longer added.
2018-10-02  David Anderson
     * dwarf_generic_init.c,dwarf_original_elf_init.c:
       Fixed remaining indent issues.
2018-10-02  David Anderson
     * Makefile.am: Tweaks for the object detector files.
     * dwarf_errmsg_list.h,libdwarf.h.in: New error codes.
     * dwarf_generic_init.c,dwarf_original_elf_init.c:
     * Removed a function that just caused confusion,
       it was doing two jobs. Now each job called where
       needed.
     * dwarf_object_detector.c,dwarf_object_detector.h:
       tweeks for better error codes and trailing
       spaces and indent issues.
     * dwarf_opaque.h: Removed deleted function.
2018-10-02  David Anderson
     * dwarf_object_detector.h,dwarf_object_detector.c:
       To be used soon.
2018-09-29  David Anderson
     * gennames.c:  Fixed an indent issue in a comment.
2018-09-28  Carlos Alberto Enciso
     * dwgetopt: Use size_t to remove conversion warning
       on Windows platform.
     * getnames.c: Generate '#ifdef __cplusplus/#endif'
       include guards to
       allow the inclusion of header files by C++ code.
2018-09-21  David Anderson
    * CMakeLists.txt: Add dwarf_generic_init.c into
      sources list.
    * Makefile.am: Ensure all cmake files get into
      releases.
2018-09-18  David Anderson
    * dwarf_generic_init.c: Moved dwarf_finish() here
      from dwarf_original_elf_init.c.
    * dwarf_original_elf.c: Moved dwarf_finish() out of
      this file.
    * dwarf_init_finish.c: Corrected a comment. frmo->from
2018-09-18  David Anderson
    * dwarf_generic_init.c: Moved dwarf_init() and dwarf_init_b()
      to this new file. From dwarf_original_elf_init.c.
      These functions will allow handling non-elf object DWARF
      in the future.
    * dwarf_original_elf_init.c: Functions moved to
      dwarf_generic_init.c and _dwarf_elf_init_file_ownership
      no longer static so
      it can be called from dwarf_generic_init.c.
    * Makefile.am: Add the new source file to the sources list.
2018-09-12  David Anderson
    * dwarf_version.h: Updated date string.
    * libdwarf.h.in: Corrected the use of
      HAVE_NONSTANDARD_PRINTF_64_FORMAT.
2018-09-11  David Anderson
    * libdwarf.h.in: Restored use of
      HAVE_NONSTANDARD_PRINTF_64_FORMAT
      for those needing that feature.
2018-09-02 David Anderson
    * Makefile.am: Changed the way to build gennames
      executable to the automake way, eliminating make warnings
      when building.
    * Makefile.in: regenerated.
2018-08-23 David Anderson
    * CMakeLists.txt: Adjusted to fit new/changed file names.
2018-08-21 David Anderson
    * Makefile.am: Now honors --enable-wall.
    * dwarf_die_deliv.c,pro_section.c: Removed unused local variables.
2018-08-14 David Anderson
    * libdwarf.h.in: DW_HARMLESS_ERROR_MSG_STRING_SIZE now
      300, c compiler noted 200 was too small for a
      harmless-error sprintf string in dwarf_frame2.c (line 192).
    * Makefile.am.  Added CPPFLAGS_FOR_BUILD where it was
      accidentally omitted.
    * libdwarf_version.h: Updated the version date string.
2018-08-09 David Anderson
    * Makefile.am: Added AM_TESTS_ENVIRONMENT enabling
      make check from any build directory.
      Also,add dwarf_test_errmsg_list.c to the files
      in a release so make check can work
    * runtests.sh: Handle the environment variable
      AM_TESTS_ENVIRONMENT sets: DWTOPSRCDIR
2018-08-07 David Anderson
    * libdwarf2.1.mm: Revised the argument list of
      dwarf_get_real_section_name() to add compression
      size information.
    * libdwarf2.1.pdf: Regenerated version 2.67.
    * dwarf_die_deliv.c: Added compression-size arguments
      to call to
      dwarf_get_real_section_name() and updated the string
      additions to match.
    * dwarf_init_finish.c: Update compression before/after
      sizes in new fields dss_compressed_length
      dss_uncompressed_length..
    * dwarf_opaque.h: Add the new dss_ fields.
    * libdwarf.h.in: Revised prototype of
      dwarf_get_real_section_name()
2018-08-06 David Anderson
    * libdwarf2.1.mm: Revised the argument list of
      dwarf_get_real_section_name()
      so it works properly.
    * libdwarf2.1.pdf: Regenerated version 2.66.
    * dwarf_die_deliv.c: Added third argument to call to
      dwarf_get_real_section_name() and updated the string
    * dwarf_opaque.h: Added flag dss_ZLIB_compressed so we can report
      compression more accurately.
2018-08-05 David Anderson
    * dwarf_die_deliv.c: Was failing to report SHF_COMPRESSED in dwarfdump
      do to mistake here (statement with no side effect!).
2018-08-05 David Anderson
    * libdwarf_version.h: Updated version string.
    * dwarf_errmsg_list.h: Support the new error code.
    * dwarf_opaque.h: Fields to support dwarf_get_real_section_name().
    * dwarf_die_deliv.c: Implements dwarf_get_real_section_name().
    * dwarf_init_finish.c: Changes to support dwarf_get_real_section_name().
    * libdwarf.h.in: Declare dwarf_get_real_section_name(). Add
      a new error code.
    * libdwarf2.1.mm: Document dwarf_get_real_section_name().
    * libdwarf2.1.pdf: Regenerate. Version 2.65.
2018-08-04 David Anderson
    * dwarf_util.h: Remove trailing whitespace.
    * pro_dnames.h: Preliminary structs for writing .debug_names
    * pro_section.c: Corrected a comment. Removed some debug
      code. Fixed indent mistakes.
    * pro_opaque.h: Fixed indent error.
    * pro_init.c: Extracted Bernstein hash into its own function.
      Fixed indent errors.
2018-08-02 David Anderson
    * libdwarf_version.h: Updated version date.
    * pro_section.c: #if 0 or comment out
      some debug code.
    * dwarf_util.c:Replaced accidental loss of 'do'.
    * Makefile.am: Removed unused variables and references
      to them.
2018-07-31 David Anderson
    * Makefile.am: Move all but libdwarf*pdf out of the
      /usr/local/share install set, keep them all in the
      distribution set.
2018-07-31 David Anderson
    * Makefile.am: add pro_dnames.h pro_dnames.c for
      .debug_names support..
    * dwarf_errmsg_list.h: Add DW_DLE_DUP_ATTR_ON_DIE error
      code.
    * dwarf_frame2.c:  Move qsort_compare up to top of
      file to avoid a forward declaration.
    * dwarf_init_finish.c: Additional comments.
    * dwarf_util.c:  Corrected comment. Moved local
      variable declarations down to where needed.
    * libdwarf.h.in: Declare new function
      dwarf_force_debug_names() used for testing.
    * pro_die.h: Add comment.
    * pro_dnames.c: Remove junk whitespace.
    * pro_forms.c(_dwarf_pro_add_at_to_die):
      Add DW_AT_data_member_location, DW_AT_trampoline
      to the allowed set.
    * pro_opaque.h: Add de_dnames_sect to Dwarf_P_Debug_s.
    * pro_section.c: Now sorts abbreviations by attribute
      number.  Refactors header generation to make
      it easier to read the code. Refactors
      _dwarf_pro_getabbrev() for clarity (using newly-sorted
      abbreviation list).
2018-07-30 David Anderson
    * pro_dnames.c, pro_dnames.h: New, these just placeholders
      for the moment. To write out .debug_names.
2018-08-02 David Anderson
    * Makefile.am: Removed unused variables and references
      to them.

2018-07-24 David Anderson
    * libdwarf_version.h: Updated version string.
    * dwarf_line_table_reader_common.h:Removed trailing whitespace
      and fixed indentations.
    * pro_line.c: Removed trailing whitespace.
    * pro_reloc.c,pro_reloc.h: Defines
      _dwarf_pro_pre_alloc_specific_reloc_slots().
      Deletes _dwarf_pro_pre_alloc_n_reloc_slots()
    * pro_reloc_symbolic.c: Now uses
      _dwarf_pro_pre_alloc_specific_reloc_slots()  so
      static analysis can understand what the code does.
      Fixes Coverity CID 186978.
    * pro_arange.c: Now uses
      _dwarf_pro_pre_alloc_specific_reloc_slots
      instead of
      _dwarf_pro_pre_alloc_n_reloc_slots.
2018-07-24 David Anderson
    * dwarf_init_finish.c(set_up_section): A simple
      revision eliminates any copying and simplifies
      the logic. And eliminates the use of safe_strcpy().
    * dwarf_util.h, dwarf_util.c: Remove safe_strcpy().
2018-07-23 David Anderson
    * Makefile.am: Make it impossible for Make to build the
      libdwarf pdf files. We do not want users to be required
      to have the pdf tools.
    * pdfbld.sh: A script to build the libdwarf pdf files
      when required (the .mm files rarely change).
2018-07-23 David Anderson
    * libdwarf_version.h: Updated version string.
    * pro_line.c: Added comments on the oddness
      of some return values (signed vs unsigned and
      error returns).
    * dwarf_die_deliv.c: Removed a statement that
      had no effect (A leftover of recent changes).
    * gennames.c: Signed vs unsigned compare was accidental
      in the code this generates.
      Changed the local var to unsigned.
2018-07-22 David Anderson
    * dwarf_init_finish.c: Now calls _dwarf_safe_strcpy()
       so we are sure there is no string overrun.
    * dwarf_util.c: Implements _dwarf_safe_strcpy().
    * dwarf_util.h: Declares _dwarf_safe_strcpy().
2018-07-22 David Anderson
    * pro_reloc_symbolic.c(_dwarf_symbolic_relocs_to_disk):
      Coverity CID 186884. A much cleaner and more
      readable fix.
2018-07-21 David Anderson
    * libdwarf_version.h: Updated version string.
    * dwarf_init_finish.c: Coverity CID 186884.
      Revised the logic for clarity and added comments
      too.
    * libdwarf_version.h: Update version string.
    * dwarf_dnames.c: Coverity CID 186887.
      Encapsulating
      DECODE_LEB128_UWORD_CK in a function
      so we can catch an error
      and free appropriate resources.
      Fixed cases of error where DW_DLV_OK returned.
    * dwarf_abbrev.c,dwarf_arange.c,dwarf_die_deliv.c,
      dwarf_ranges.c,dwarf_tsearchhash.c:
      Removed trailing whitespace.
    * dwarf_xu_index.c: Coverity CID 186894.
      We know the string length (2) so we just assign the
      bytes directly avoiding any possibility of overrun.
    * pro_reloc_symbolic.c(_dwarf_symbolic_relocs_to_disk):
      Coverity CID 186978.
      Was dereferencing a pointer after zeroing the
      pointer, now fixed and the obfuscating single-call
      function code moved to where used, deleted function.
    * dwarf_macro.c: Coverity CID 186980.
      Removed code testing for zero count as it is impossible
      to get to that spot with count==0.
    * pro_forms.c: The new return of error is now
      return ((Dwarf_P_Attribute) DW_DLV_BADADDR);
      to at least avoid a warning about this
      necessary uglyness of pointer/integer confusion.
      The dwarf reader (consumer) interfaces have none
      of this.
2018-07-20 David Anderson
    * dwarf_line_table_reader_common.h: Encapsulating
      DECODE_LEB128_UWORD_CK in a function
      so we can catch an error
      and free appropriate resources.
2018-07-20 David Anderson
    * dwarf_frame.c: Coverity CID 186901.
      Removed duplicate check for dbg null.
    * dwarf_macro5.c: Coverity CID 186890.
      Was testing wrong status value. resattr -> lres
2018-07-20 David Anderson
    * dwarf_arange.c(dwarf_get_aranges_list): Coverity CID 186976.
      This function has a serious problem, it reads agranges
      without knowing the CU version number so anything
      with segment_selector != 0 could be read wrong.
      Unless the compiler authors did in early versions
      what DWARF4 called for in aranges: a segment selector
      value.
    * dwarf_elf_access.c(update_entry): Coverity CID 187700.
      If we do not have
      ELF64 symbol type available avoid letting us fall through
      to dereference a null pointer.
    * dwarf_print_lines.c(dwarf_print_lines): Coverity CID 186985.
      Coverity CID 186973
      Remove if(){} as it is not needed.
    * dwarf_macro.c(dwarf_get_macro_details): Coverity CID 186980.
      Removed dead code for count==0 as count will be at least 1.
    * pro_arange.c: Coverity CID 186974.
      Delete redundant check for null.
    * pro_section.c(dwarf_pro_getabbrev): Coverity CID 186983.
      Avoid dereferencing forms/attrs if they are null.
    * pro_forms.c(dwarf_add_AT_location_expr): Coverity CID 186984.
      Was potentially reading more from input than could
      possibly exist in the fixed-maximum-length input.
      Coverity CID 186975. Make block_size Dwarf_Unsigned
      to (possibly) avoid this warning.
    * pro_expr.c(dwarf_add_expr_gen): Coverity CID 186987.
      Add break; to the last case in the switch.
    * pro_macinfo.c(dwarf_vendor_ext): Coverity CID 186988.
      Coverity CIE 186981
      Deleting dead code.
    * pro_types.c(_dwarf_transform_simplename_to_disk)):
      Coverity CID 186977. Delete dead code.
    * pro_init.c(common_init): Coverity CID 187001. Now we avoid
      dereferencing a potentially NULL pointer abiname.
    * pro_frame.c(dwarf_add_fde_inst): Coverity CID 186979.
      Added missing check of 'res' variable.
2018-07-20 David Anderson
    * libdwarf_version.h: Updated version string.
    * pro_frame.c: Coverity CID 186989. Dereferenced tmpaug
      before NULL check. Fixed.
    * pro_section.c: Coverity CID 186990. copy-paste error
      changed val_len to val_len2.
    * dwarf_abbrev.c: Coverity CID 186982. dwarf_get_abbrev_count()
      could leak Dwarf_Error. No longer can.
    * dwarf_print_lines.c: Coverity CID 186973. Remove useless code.
    * dwarf_ranges.c: Coverity CID 186909. Ensure null not
      dereferenced.
    * dwarf_dnames.c: Coverity CID 186899. If needed !firstdab,
      not firstdab. Also, free local allocations on error.
    * dwarf_dsc.c: Coverity CID 186898. Null check on wrong variable.
    * dwarf_tsearchhash.c: Coverity CID 186893. Leak on error fixed.
    * dwarf_query.c: Coverity CID 186892. Testing res, now res3.
    * dwarf_macro5.c: Coverity CID 186891. Dead code moved to
      correct place.
      Coverity CID 186906. Only increment curopsonly if non-null.
    * dwarf_dnames.c: Coverity CID 186889. Fixed leak on error.
    * dwarf_die_deliv.c: Coverity CID 186888. Fixed: Removed
      assignment overridden later.
      Coverity CID 186904: deref before: null check, dataptr,dis.
    * dwarf_frame2.c: Coverity CID 186885. Fixed: loop inappropriate.
      Coverity CID 186908. Fixed test res->resf.
    * dwarf_line_table_reader_common.h: Coverity CID 186886.
      Fixed leak.
2018-07-16 David Anderson
    * dwarf_incl.h: Refine ifdef of HAVE_STDAFX_H.
    * dwarf_tsearch.h: Correcting web references in comments.
    * pro_incl.h: Refine ifdef of HAVE_STDAFX_H.
2018-07-16 David Anderson
    * Makefile.am: New, used by autotools to create configure.
    * configure.ac, Makefile.in, config.h.in: Deleted.
2018-07-09 David Anderson
    * dwarf_dnames.c: free(tmp) -> free(dab)
2018-06-19 David Anderson
    * configure.ac, config.h.in: Removed
      HAVE_NONSTANDARD_PRINTF_64_FORMAT.
    * configure: Regenerated.
2018-06-19 David Anderson
    * pro_util.h: Deleted unused sizeof_sbyte macro,
      simplified sizeof_ubyte to 1.
2018-06-19 David Anderson
    * dwarf_base_types.h,dwarf_die_deliv.c,dwarf_dnames.c,
      dwarf_form.c,dwarf_frame.c,dwarf_frame2.c,dwarf_init_finish.c,
      dwarf_loc2.h,dwarf_macro5.c,dwarf_query.c,dwarf_str_offsets.c,
      dwarf_util.c,pro_opaque.h: Now defining using
      DWARF_32BIT_SIZE DWARF_64BIT_SIZE DWARF_HALF_SIZE
      instead of using sizeof(Dwarf_Unsigned) or sizeof(Dwarf_Half).
      Making it clearer we're reading the size the standard
      says the items are.
2018-06-14 David Anderson
    * libdwarf.h.in: Simplified definitions of Dwarf_Unsigned etc
      and DW_PR*.
2018-06-12 David Anderson
    * dwarf_arange.c dwarf_base_types.h dwarf_die_deliv.c,
      dwarf_dnames.c,dwarf_form.c,dwarf_frame.c,dwarf_global.c,
      dwarf_line_table_reader_common.h,dwarf_loc.c,dwarf_macro5.c,
      dwarf_opaque.h,dwarf_str_offsets.c,dwarf_util.c,libdwarfdefs.h,
      pro_arange.c,pro_section.c,pro_types.c,pro_util.h:
      Now, if Dwarf_Half is not defined 16 bits it is likely
      that everything will still work right.
      We don't use sizeof(Dwarf_Half) now.
2018-06-12 David Anderson
    * libdwarf.h.in: Removed Dwarf_Frame_Op3
      struct declaration. It was never used
      and was a bad idea. A functional interface
      is a likely replacement.
2018-05-30 David Anderson
    * Fix botch in revised Makefile.in.
2018-05-30 David Anderson
    * Makefile.in: Add gennames dependency on libdwarf_version.h
    * libdwarf_version.h: Create to hold the
      DW_VERSION_DATE_STR string.
2018-05-26 David Anderson
    * gennames.c:
      Update version string
    * dwarf_arange.c: Instead of load_section(dbg,.debug_info,
      and then *_abbrevr, call the combined _info and _abbrev
      function _dwarf_load_debug_info() as is done everywhere else.
2018-05-24 David Anderson
    * dwarf_aranges.c: Calling dwarf_get_aranges()
      without loading .debug_info and .debug_abbrev
      resulted in an error when checking for the
      sanity of an offset into .debug_info:
      DW_DLE_ARANGE_OFFSET_BAD.
      Now libdwarf ensures the needed sections are loaded
      because the 'section length' of compressed
      sections is only correct after such are loaded.
2018-05-17 David Anderson
    * config.h.in: Added #undef HAVE_VSNPRINTF HAVE_SNPRINTF
    * configure: regenerated.
    * configure.ac: Added AC_CHECK_FUNCS(snprintf)
      AC_CHECK_FUNCS(vsnprintf)
    * dwarf_alloc.c(_dwarf_free_all_of_one_debug): Added fclose
      of dbg->de_printf_callback_null_device_handle.
    * dwarf_opaque.h: Added de_printf_callback_null_device_handle
      Dwarf_Debug member.
    * dwarf_arange.c,dwarf_die_deliv.c,dwarf_frame2.c,
      gennames.c: Use static buffers, not on-stack char
      array targets for sprintf/snprintf.
      Testing HAVE_SNPRINTF(HAVE_VSNPRINTF) and use c99 function
      if present, else c90
    * dwarf_util.c:  Putting  null_device_handle in Dwarf_Debug
      struct Use static buffers, not on-stack char array targets for
      sprintf/snprintf.
      Testing HAVE_SNPRINTF(HAVE_VSNPRINTF) and use c99 function
      if present, else c90.
2018-05-16 David Anderson
    * dwarf_leb.c, dwarf_util.c: Removed use of C99
      like vsnprintf. Now using C90.
2018-05-15 David Anderson
    * dwarf_incl.h: Inserted <stddef.h> include here.
      stddef.h defines really basic useful C90 things like NULL.
    * dwarf_opaque.h: Remove nested include stddef.h.
2018-05-15 David Anderson
    * dwarf_incl.h: Removed dwarf_alloc.h include
    * dwarf_abbrev.c,dwarf_alloc.c,dwarf_arange.c,dwarf_die_deliv.c,
      dwarf_dnames.c,dwarf_dsc.c,dwarf_error.c,dwarf_form.c dwarf_frame.c,
      dwarf_frame2.c,dwarf_gdbindex.c,dwarf_global.c,dwarf_incl.h,
      dwarf_init_finish.c,dwarf_line.c,dwarf_loc.c,dwarf_macro.c,
      dwarf_macro5.c,dwarf_print_lines.c,dwarf_query.c,dwarf_ranges.c,
      dwarf_str_offsets.c,dwarf_util.c,dwarf_xu_index.c:
      Added explicit include dwarf_alloc.h.
2018-05-15 David Anderson
    * Makefile.in: dwarf_frame3.c now gone from build.
      It should be removed. Nothing in it is used.
    * dwarf_incl.h: Removed dwarf_error.h include
    * dwarf_*: put includes in local normal order
      and added include dwarf_error.h as needed
      (in many files).
2018-05-15 David Anderson
    * dwarf_incl.h: Removed dwarf_util.h include
    * dwarf_abbrev.c,dwarf_alloc.c,dwarf_arange.c,dwarf_die_deliv.c,
      dwarf_dnames.c,dwarf_form.c,dwarf_frame.c,dwarf_frame2.c,
      dwarf_gdbindex.c,dwarf_global.c,dwarf_init_finish.c,dwarf_line.c,
      dwarf_loc.c,dwarf_macro5.c,dwarf_print_lines.c,dwarf_query.c,
      dwarf_ranges.c,dwarf_str_offsets.c,dwarf_util.c,dwarf_xu_index.c,
      dwarf_string.c,dwarf_macro.c: Added include dwarf_util.h.
2018-05-15 David Anderson
    * dwarf_die_deliv.c,dwarf_dsc.c,dwarf_error.c,
      dwarf_init_finish.c,dwarf_original_elf_init.c,
      pro_error.c,pro_line.c: Removed the unnecessary
      inclusion of elf.h.
    * dwarf_incl.h: Removed the unnecessary
      inclusion of elf.h, limits.h, and dwarf_xu_index.h.
2018-05-15 David Anderson
    * dwarf_abbrev.c,dwarf_alloc.c,dwarf_die_deliv.c,
      dwarf_dsc.c,dwarf_dsc.h,dwarf_elf_access.c,dwarf_error.h,
      dwarf_gdbindex.h,dwarf_global.h,dwarf_groups.c,
      dwarf_harmless.c,dwarf_harmless.h,dwarf_leb.c,dwarf_loc.h,
      dwarf_loc2.h,dwarf_opaque.h,dwarf_print_lines.c,
      dwarf_ranges.c,dwarf_string.c,dwarf_tsearch.h,
      dwarf_tsearchhash.c,dwarf_util.c,dwarf_xu_index.c,
      dwarf_xu_index.h,pro_alloc.c,pro_die.h,pro_finish.c,
      pro_util.h: Removed trailing blank lines.
      Updated copyright year.
2018-05-15 David Anderson
    * dwarf_loc2.c, dwarf_line_table_reader_common.c,
      dwarf_errmsg_list.c: Renamed to end in .h, not .c,
      as these are all targets of #include.
    * dwarf_test_errmsg_list.c: New file with the test code
      extracted from dwarf_errmsg_list.c and #including
      the new dwarf_errmsg_list.h
    * Makefile.in: Renamings .c to .h and the errmsg checking
      builds the new dwarf_test_errmsg_list.c
      The -DTESTING in building dwarf_test_errmsg_list.c
      is no longer necessary.
    * dwarf_error.c, dwarf_line.c,dwarf_print_lines.c:
      Reflect the .c->h renamings
2018-05-14 David Anderson
    * libdwarf.h.in: Removed trailing whitespace.
2018-05-14 David Anderson
    * libdwarf2.1.mm: Documented dwarf_get_fde_info_for_reg3_b().
      Refined some comments about frame data.
    * libdwarf2.1.pdf: Regenerated. Version 2.64
2018-05-14 David Anderson
    * gennames.c: Updated version string.
2018-05-14 David Anderson
    * dwarf_frame2.c: Do a thorough check of every non-zero
      augmentation data length in a way that will catch
      integer overflows.
    * dwarf_str_offsets.c: Fixed a botch in the original
      dwarf_dealloc in dwarf_close_str_offsets_table_access().
2018-05-14 David Anderson
    * dwarf_frame.c: Implemented dwarf_get_fde_info_for_reg3_b().
    * libdwarf.h.in: Fixed arg list for dwarf_get_fde_info_for_reg3_b.
2018-05-14 David Anderson
    * libdwarf.h.in: Declare new frame function,
      next commit will have the code in dwarf_frame.c.
2018-05-01 Carlos Alberto Enciso
    * gennames.c: Reversed the order of calling process_args()
      vs print_args(). There is no visible difference for
      linux/unix, and is just to match the convention
      now used in dwarfdump for the ordering.
2018-04-22 David Anderson
    * gennames.c: Updated version string.
    * libdwarf.h.in: Removed trailing comma from enumeration list.
2018-04-19 David Anderson
    * dwgetopt.c: Changed to match correction in dwarfdump version.
2018-04-17 David Anderson
    * dwgetopt.c: Changed to match correction in dwarfdump version.
2018-04-16 David Anderson
    * dwarf_str_offsets.c: Removed debug call to dump_bytes()
    * gennames.c: Updated version string.
2018-04-14 David Anderson
    * CMakeLists.txt: Added new source/header files to cmake.
2018-04-14 David Anderson
    * libdwarf2.1.mm: Complete doc on the new .debug_str_offsets
      interfaces.
    * Regenerated. Rev 2.63.
2018-04-13 David Anderson
    * gennames.c: Updated version string.
    * Makefile.in: Added dwarf_str_offsets.o to target list.
    * checkexamples.c: Added example code for the .debug_str_offsets
      section interfaces.
    * dwarf_alloc.h: Update ALLOC_AREA_INDEX_TABLE_MAX for new
      allocatable.
    * dwarf_alloc.c:Add #include and array entry for DW_DLA_STR_OFFSETS
    * libdwarf.h.in:
    * dwarf_errmsg_list.c: Added new .debug_str_offsets section
      reader error codes.
    * dwarf_str_offsets.h: New. Hidden struct for .debug_str_offsets
      interfaces.
    * dwarf_str_offsets.c: New for .debug_str_offsets.
    * libdwarf2.1.mm: Incomplete doc on the new interfaces.
2018-03-29 David Anderson
    * configure.ac: Now uses AC_COMPILE_IFELSE
      instead of AC_TRY_COMPILE. Substantial changes
      along those lines.
    * config.h.in, configure: Regenerated.
2018-03-28 David Anderson
    * configure.ac: Replaces configure.in and
      uses AC_COMPILE_IFELSE instead of the
      deprecated AC_TRY_COMPILE.
    * configure: Regenerated.
    * config.h.in: Regenerated
2018-03-27 David Anderson
    * configure.in: Cross compiling tested, working.
    * configure: regenerated.
2018-03-25 David Anderson
    * configure.in: Support for cross compiling
    * configure: regenerated.
    * Makefile.in: Support for cross compiling
2018-03-25 David Anderson
    * Makefile.in: Add comments about what is built for build
      system (as opposed to host or target).
2018-03-24 David Anderson
    * checkexamples.c: This is just example code for
      libdwarf2.1.mm, not part of libdwarf. Now
      checked by cc for errors and organized in the
      same order the examples appear in the .mm.
    * dwarf_errmsg_list.c: Added error code
      DW_DLE_LINE_HEADER_CORRUPT.
    * dwarf_line.c(_dwarf_set_line_table_regs_default_values):
      Add line-table header version number argument so the
      function works for DWARF5 (and earlier as well).
      Now uses dwarf_srclines_files_indexes() several places,
      simplifying the code.
    * dwarf_line.h: Adds new fields to Dwarf_Line_Context_s
      so that dwarf_srclines_files_indexes() logic is
      simple.
    * dwarf_line_table_reader_common.c: Passes version number
      to _dwarf_set_line_table_regs_default_values() so it
      works right for DWARF5 (and for earlier DWARF).
    * libdwarf.h.in: Added DW_DLE_LINE_HEADER_CORRUPT to
      error list. Added function dwarf_srclines_files_indexes().
    * libdwarf2.1.mm: Rev 2.61. Document the new function
      dwarf_srclines_files_indexes()
      and update all examples for formatting and correct C.
    * libdwarf2.1.pdf: Regenerated, Rev 2.61.
2018-03-22 David Anderson
    * dwarf_line.c, dwarf_print_lines.c: Index file
      numbers for all versions of DWARF (DWARF5
      indexes starting at 0).
2018-03-21 David Anderson
    * gennames.c: Updated version string.
2018-03-21 David Anderson
    * dwarf_elf_access.c: Allow for relocations on .debug_str_offsets.
    * dwarf_errmsg_list.c: Clarified meaning of
      DW_DLE_DIE_ABBREV_LIST_NULL, added new errors
      DW_DLE_STR_OFFSETS_BASE_WRONG_FORM,
      DW_DLE_DATA16_OUTSIDE_SECTION,
      DW_DLE_LNCT_MD5_WRONG_FORM
    * dwarf_form.c: Added support for DWARF5 new FORMs.
    * dwarf_line.c: Added dwarf_srclines_files_data_b()
      so clients needing DWARF5 line table support can
      get the DW_LNCT_MD5 value if it is present.
    * dwarf_line.h: Added support for the DWARF5
      MD5 data.
    * dwarf_line_table_reader_common.c: Added
      DW_LNCT_MD5 support.
    * dwarf_opaque.h: Added _dwarf_extract_data16 so we do not
      have code duplication reading this data.
    * dwarf_print_lines.c: If MD5 present, we now print it.
    * dwarf_query.c: Correct handling of form for
      DW_AT_str_offsets_base.
    * dwarf_util.c: Add support for DWARF5 FORMs.
    * libdwarf.h.in: Define the values of the new
      DW_DLE codes mentioned above.
      Declare new function dwarf_srclines_files_data_b()
    * libdwarf2.1.mm: Document new function. Rev 2.61.
    * libdwarf2.1.pdf: Generated Rev 2.61
2018-01-05 David Anderson
    * dwarf_macro5.c(_dwarf_get_macro_ops_count_internal):
      A test duplicated the preceding loop condition so
      the body of the test was dead code. Removed the
      dead code.
2018-01-29 David Anderson
    * dwarf_arange.c: Improve and comment checks for
      stepping off the end of arange data.
    * dwarf_die_deliv.c: Make an error code
      returned a bit more specific.
      DW_DLA_DIE_BAD becomes DW_DLE_ABBREV_MISSING.
    * dwarf_errmsg_list.c: Added new error codes
      DW_DLE_ABBREV_MISSING DW_DLE_NO_TAG_FOR_DIE
      DW_DLE_LOWPC_WRONG_CLASS DW_DLE_HIGHPC_WRONG_FORM.
    * dwarf_form.c: Used DW_DLE_NO_TAG_FOR_DIE instead of
      DW_DLA_DIE_BAD to make an error return more specific.
    * dwarf_frame2.c: Add new checks for corrupted dwarf
      frame data.
    * dwarf_query.c: Added error check and changed
      DW_DLE_DIE_BAD to DW_DLE_ABBREV_MISSING in one place.
      Other DWARF corruption checks and error refinements added.
    * libdwarf.h.in: Added the defines for the new DW_DLE
      codes.
2018-01-29 David Anderson
    * gennames.c: Update version string.

