2010-06-01 DavidAnderson * README: Document issues with building on MacOSX and how to deal with them. * Makefile.in: Added comment about ar -s for MacOSX users. * dwarf.h: Added comment about the gap in FORM number use just before 0x20. 2010-03-30 DavidAnderson * dwarf_frame2.c: Tightned up a harmless error message string and deleted an unused local variable. * dwarf_harmless.c: Detected more errors in the implementation and fixed them. * dwarf_elf_access.c: If EM_MIPS not defined, define it to 8, the standard value for EM_MIPS. Refine the rela relocations code for MIPS 64 BE vs LE. * dwarf_arange.h: Added new fields to properly represent segments in aranges as documented in DWARF4. * dwarf_arange.c: dwarf_get_aranges was thinking an entry with 0,0 (end of a set) was the end of the aranges for a CU. But that is not guaranteed by the DWARF standards, there can be multiple sets in one CU, see the standard, section 7.20 (DWARF2,3,4). Created local function, removing lots of duplicated code. Added some support for DWARF4 segment value in tuples. Added dwarf_get_arange_info_b() so all DWARF4 information can be retrieved by client code. * libdwarf.h: Aded new interface dwarf_get_arange_info_b(), 2010-03-28 DavidAnderson * libdwarf.h: Adding dwarf_get_harmless_error_list(), dwarf_insert_harmless_error(), and dwarf_set_harmless_error_list_size() functions. Some errors that are detectable are not sufficient to warrant rejecting an object or refusing to process it. * dwarf_harmless.c: Implementing the harmless error functions. * dwarf_harmless.h: Declaration of the libdwarf_internal dwarf_harmless_init and dwarf_harmless_cleanout functions. * dwarf_error.c: Added DW_DLE_DEBUG_FRAME_LENGTH_NOT_MULTIPLE error string. * dwarf_util.h: Clarify some comments on READ_AREA_LENGTH macro. * dwarf_opaque.h: Add structure and field to record harmless errors for a dbg. * dwarf_frame.h: Add commentary. Change ci_length from Dwarf_Word to Dwarf_Unsigned for consistency with other such length fields. * Makefile.in: Add dwarf_harmless.o to the list of objects. * dwarf_alloc.c: Add call to dwarf_harmless_cleanout() on close of a dbg. * dwarf_init_finish.c: Add call to dwarf_harmless_init to initialize the fields for recording harmless errors. * dwarf_frame2.c: Add handling of Arm "armcc+" augmentation string. Create validate_length() local function to check that the fde/cie length matches the requirements of the specification, implementing the DW_DLE_DEBUG_FRAME_LENGTH_NOT_MULTIPLE test (a harmless error). Removed an earlier formally incorrect test. * libdwarf2.1.mm: Documented the harmless error calls. The version is now 1.90. * libdwarf2.1.pdf: Regenerated as 1.90. 2010-02-14 DavidAnderson * dwarf.h: Add GNU template defines. * libdwarf.h: Add new error code DW_DLE_NOT_REF_FORM for the DWARF 4 case where DW_FORM_data4/8 no longer valid global reference forms. * libdwarf2.1.mm: Document the manner that DW_OP_implicit_value is returned as a location description set. * libdwarf2.1.pdf: Regenerate. Rev 1.89. * dwarf_error.c: Add two new DW_DLE error strings. * dwarf_frame.h: define DW_DEBUG_FRAME_VERSION4 for DWARF4 support. Add address size and segment size fields to the internal CIE structure. * dwarf_query.c: The form-class code was not correct, DWARF4 has DW_FORM_sec_offset, not DWARF3. Some places did not use the CU context address size when reading an address. * dwarf_form.c: Use the CU-context address size instead of the overall object address/offset size. Initialize all local variables at the point of declaration. Refine some commentary. Use the CU version number to guide processing of some FORMs. * dwarf_print_lines.c, dwarf_query.c: Use the CU-context address size instead of the overall object address/offset size. Handle DW_LNE user extensions as well as possible. * dwarf_arange.c: Delete some erroneous code (already ifdefd out) as the address size need not match the de_pointer_size. If segment-selector non-zero, read it properly. DWARF2 and DWARF3 left this documented in an incorrect and unusable fashion (DWARF4 documents it properly). * dwarf_die_deliv.c: Delete erroneous code (previously ifdefd out) as the address size need not match the de_pointer_size. * dwarf_sort_line.c, dwarf_line.c: Deal with DW_DLE extended line operations past those defined by the standard (such as user-defined operations). * dwarf_line.h: For user-defined line extended operations, provide a sanity check of DW_LNE_LEN_MAX. * dwarf_base_types.h: Add DW_CIE_VERSION4 for DWARF4. Add other defines so each defined version number (sections differ) has a name for the relevant section. * dwarf_frame2.c: Add address size to argument lists so the proper CIE address size (a new field in DWARF4 CIEs) are honored. Also read the new DWARF4 segment_size field. Use the address size instead of the object-derived de_pointer_size. * dwarf_util.c: Return address_size instead of de_pointer_size. * dwarf_loc.c: DWARF4 uses DW_FORM_sec_offset, not DW_FORM_data4 or DW_FORM_data8 when specifying offsets to other sections. Add DWARF4 DW_OP_implicit_value and DW_OP_stack_value. * dwarf_frame.c: Initialize a local variable at the point of declaration. 2010-02-04 DavidAnderson * libdwarf2.1.mm: Fix a spelling error. * libdwarf2.1.mm: Regenerate. Rev 1.88. 2010-02-01 DavidAnderson * dwarf_frame.c: The DW_CFA_remember_state and DW_CFA_restore_state operations were not recording/restoring the cfa_rule, now they do. 2010-01-27 DavidAnderson * dwarf_form.c: form_refsig8() had an uninitialized local variable. 2010-01-25 DavidAnderson * libdwarf2.1.mm: Rev 1.87. Improved the discussion of frame information. * libdwarf2.1.pdf: regenerated. 2010-01-25 DavidAnderson * pro_opaque.h, pro_init.c, pro_section.c, pro_reloc_stream.c, pro_reloc_symbolic.c: Rename the function pointer members de_func and de_func_b to de_callback_func and de_callback_func_b respectively. 2010-01-17 DavidAnderson * dwarf.h, libdwarf.h: Updated commentary about frame interfaces. * libdwarf2.1.mm: New descriptions of DW_FRAME_CFA_COL and DW_FRAME_CFA_COL3. Document rev 1.86 . * libdwarf2.1.pdf: Regenerated. * libdwarf2p.1.mm: Fixed a couple of typos. Rev 1.28. * libdwarf2p.1.pdf: Regenerated. * configure.in: Added support for configure --enable-oldframcol. * config.h.in: Added support for configure --enable-oldframcol. * dwarf_init_finish.c: Added support for configure --enable-oldframecol (see DW_FRAME_CFA_COL and DW_FRAME_CFA_COL3). By default the frame column is now DW_FRAME_CFA_COL3. --enable-oldframecol changes the default to DW_FRAME_CFA_COL. * configure: Regenerated. * dwarf_opaque.h: Added one blank line and deleted one, hopefully aiding clarity. * dwarf_frame.c: Added commentary about the frame interfaces to emphasize the newer ones. 2010-01-13 DavidAnderson * dwarf_print_lines.c: Changed 'include files count' to 'files count'. 2010-01-04 DavidAnderson * pro_section.c, pro_opaque.h: A pretty-print tool generated some odd formatting (long ago) and there were silly blank lines present as well. This makes things more readable. 2010-01-03 DavidAnderson * common.h, common.c: Remove line end characters. Update copyright for 2010. * All other files: Update copyright year.