2007-07-03 David Anderson * libdwarf.h: Add declaration of dwarf_loclist_from_expr(); * dwarf_loc.c: Implement dwarf_loclist_from_expr() and add sign-extension macro calls to case DW_OP_const4s numbers. Removed unused local variables. * dwarf_form.c: Removed unused local variables. * libdwarf2.1.mm: Document dwarf_loclist_from_expr(). * libdwarf2.1.pdf: Regenerated. 2007-07-01 David Anderson * dwarf_frame2.c: Add commentary. * dwarf_frame.c: Add in block_len for DW_CFA_val_expression so libdwarf does not get confused by this frame expression operator. Thanks to Cristian Vlasceanu for providing a test case. 2007-06-29 David Anderson * README: added a note that a few warnings about conversions from pointer to integer are normal at libdwarf compile time. 2007-05-25 David Anderson * dwarf_frame2.c (_dwarf_get_fde_list_internal): Correct cie-list-creation so it adds to the tail of the list. gcc 4.1.2 generates cie-use in an order the code did not properly handle. 2007-05-08 David Anderson * Makefile.in: Now generates pdf files. * mips_extensions.mm: The only changes were to eliminate unsupported macro (.PM) and to try to get correct output from groff. No technical content change intended. The pdf/postscript output remains a little odd though. * libdwarf2.1.mm: Remove troff comment line. 2007-04-18 Chris Quenelle * dwarf_addr_finder.c: repaired comment * dwarf_form.c: add support for DW_AT_SUN_func_offsets * pro_alloc.c: add memory block tracking to find and fix lingering allocations. This is more important for very large and intensive compiles. * pro_die.c: Implement "markers" which are a generic way to do things like relocations. You can set a marker on any die, and when dwarf is produced in binary form, you get back a list of your markers with the offset of each one in the binary output. This is used by the Sun compilers to implement die references that span compile unit blocks. (I may remove this, it might be unused code related to partial_units and comdat support) * pro_die.c: Also check for loops in the die relationships so that if you add a child twice, or other errors, you won't get an infinite loop or a crash. Also start passing a DBG structure to all allocation calls to help with memory block tracking. * pro_expr.c: Add a public function to "reset" an expr. This allows the same expr object to be reused over and over to save memory if you're creating many many expressions for a location list. * pro_finish.c: Free any left over blocks when the user calls dwarf_producer_finish. * pro_forms.c: More support for compressed integer blocks. Modify error diagnostics so that user-defined attributes can be any type. Add support for dwarf_add_AT_ref_address which is just like dwarf_add_AT_address, only it produces a DW_FORM_ref_addr instead of DW_FORM_addr. This is needed for cross-CU die pointers. * pro_incl.h: add macros to control the spelling of relocation types. * pro_init.c: use new macros to control reloc types * pro_line.h: correct minimum instruction length on x86 * pro_opaque.h: add support for markers (see above) and also ability have libdwarf tell the caller where the string constants are so that they can be recorded as strings in case the binary output of libdwarf needs to be converted back into assembly. That's what Dwarf_P_Per_Sect_String_Attrs is about. Remove de_mem_list as it is never used. * pro_reloc_stream.c: repair prototype and comment for _dwarf_pro_reloc_name_stream64, and use relocation type macros. * pro_section.c: support for markers (see above) and for tracking inline string attributes. Add code to sort the attributes so that abbreviation table entries will be reduced. Change treatment of DW_FORM_ref_addr to be more correct. Some support for packing in the middle of sections, this will probably be removed. Also pass DBg structure to more allocations. * pro_util.h: relocation type values can't be zero. 2007-04-10 David Anderson for free() declaration. * dwarf_print_lines.c pro_section.c dwarf_query.c dwarf_alloc.c dwarf_arange.c dwarf_sort_line.c dwarf_global.c dwarf_line.c dwarf_abbrev.c dwarf_srclines_dealloc.c dwarf_frame2.c dwarf_util.c dwarf_loc.c dwarf_die_deliv.c dwarf_frame.c dwarf_macro.c: indent run with standard libdwarf options. 2007-02-20 David Anderson