2008-08-15 Roland McGrath <roland@redhat.com> * libdw.map (ELFUTILS_0.136): New version set, inherits from ELFUTILS_0.130. Add dwfl_addrsegment, dwfl_report_segment. 2008-01-21 Ulrich Drepper <drepper@redhat.com> * dwarf_child.c: Minor optimizations. * dwarf_getattrs.c: Likewise. * dwarf_getpubnames.c: Likewise. * dwarf_siblingof.c: Likewise. * dwarf_tag.c: Likewise. 2008-01-18 Ulrich Drepper <drepper@redhat.com> * dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match of DWARF_VERSION comparison, just fail if the file's version is newer. 2008-01-17 Nick Clifton <nickc@redhat.com> * dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define. (DWARF3_LENGTH_MAX_ESCAPE_CODE): New define. (DWARF3_LENGTH_64_BIT): New define. * dwarf_getaranges (dwarf_getaranges): Use the new definitions. * dwarf_getpubnames: Include dwarf.h. (get_offsets): Use the new definitions. * dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions. * dwarf_nextcu.c: Include dwarf.h. Correct comment. (dwarf_nextcu): Use the new definitions. * libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro. * dwarf_diecu.c (dwarf_diecu): Use the new macro. * dwarf_getaranges (dwarf_getaranges): Use the new macro. * dwarf_nextcu.c (dwarf_nextcu): Use the new macro. * dwarf_getpubnames (get_offsets): Replace assertion with test and error return. * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE. * dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer. Set the address in the return structure to the address of the next non-sibling die, if there is no sibling and the return pointer is not the same as the die pointer. * libdw.h: Expand the description of the dwarf_siblingof prototype. * dwarf_child.c: Fix typo in comment. * libdwP.h (DWARF_VERSION): Change to 3. * dwarf_formref.c (__libdw_formref.c): Handle attributes which do not have a initialised valp pointer. * dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when the end of the attributes is reached. When the callback fails, return the address of the failing attribute, not the address of its successor. * libdw.h: Expand the description of the dwarf_getattrs prototype. * dwarf_child.c (__libdw_find_attr): Use the new definition. (dwarf_child): Likewise. * dwarf_tag.c (__libdw_findabbrev): Likewise. (dwarf_tag): Likewise. 2008-01-08 Roland McGrath <roland@redhat.com> * Makefile.am (euinclude): Variable removed. (pkginclude_HEADERS): Set this instead of euinclude_HEADERS. (libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir). 2007-10-17 Roland McGrath <roland@redhat.com> * libdw.h (__deprecated_attribute__): New macro. (dwarf_formref): Mark it deprecated. * dwarf_formref.c (__libdw_formref): New function, broken out of ... (dwarf_formref): ... here. Call it. Remove INTDEF. * libdwP.h: Remove INTDECL. Declare __libdw_formref. * dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead. * dwarf_formref_die.c: Likewise. Handle DW_FORM_ref_addr here. * libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result, needs to check CU->version. * libdwP.h (struct Dwarf_CU): New member `version'. * libdw_findcu.c (__libdw_findcu): Initialize it. * dwarf_child.c: Return 1 for null entry as first child. 2007-10-05 Roland McGrath <roland@redhat.com> * dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections. * libdw.h (__extern_inline): Rename to __libdw_extern_inline. [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses. 2007-10-03 Roland McGrath <roland@redhat.com> * libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf and dwfl_build_id_find_debuginfo. * libdw.map (ELFUTILS_0.130): New version set, inherits from ELFUTILS_0.127. Add dwfl_module_build_id, dwfl_module_report_build_id. 2007-10-02 Roland McGrath <roland@redhat.com> * libdw_visit_scopes.c (classify_die): Return walk for class_type and structure_type. 2007-08-07 Roland McGrath <roland@redhat.com> * dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when error code is DWARF_E_NOERROR (0). * dwarf_getscopes.c (pc_record): Always bail early if DIE->prune. Fix typo in __libdw_visit_scopes argument. * dwarf_getscopes.c (pc_match): Check dwarf_haspc error return, swallow DWARF_E_NO_DEBUG_RANGES but not other errors. 2007-07-03 Roland McGrath <roland@redhat.com> * libdw.h (__extern_inline): New macro. [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it. 2007-04-16 Roland McGrath <roland@redhat.com> * libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section. 2007-04-05 Roland McGrath <roland@redhat.com> * dwarf_getsrcdirs.c: New file. * Makefile.am (libdw_a_SOURCES): Add it. * libdw.h: Declare dwarf_getsrcdirs. * libdw.map (ELFUTILS_0.127): Add it. * libdwP.h (struct Dwarf_Files_s): New member ndirs. * dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to zero before we use it to check for DWARF_E_INVALID_DIR_IDX. Save DIRARRAY in the Dwarf_Files. * dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN address to check for all-ones base address entry. Check directly. Reported by Sébastien Dugué <sebastien.dugue@bull.net>. 2007-03-25 Roland McGrath <roland@redhat.com> * dwarf_begin_elf.c (check_section): Return Dwarf * instead of void. Return NULL when freeing RESULT on error. (global_read, scngrp_read): Check return value from check_section, break out of loop after it has freed RESULT. (valid_p): Handle null argument. 2007-03-12 Roland McGrath <roland@redhat.com> * libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add. 2007-03-04 Roland McGrath <roland@redhat.com> * libdw.map (ELFUTILS_0.127): New version set, inherits from ELFUTILS_0.126. Add dwfl_module_addrsym. 2007-02-10 Roland McGrath <roland@redhat.com> * dwarf.h (DW_OP_fbreg): Comment fix. 2007-02-03 Roland McGrath <roland@redhat.com> * dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf. * libdw.map (ELFUTILS_0.126): New version set, inherits from ELFUTILS_0.122. Move dwarf_getelf there; it was never truly exported in the past. 2006-12-17 Roland McGrath <roland@redhat.com> * dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base address when the CU is missing attributes due to buggy GCC. 2006-08-29 Roland McGrath <roland@redhat.com> * Makefile.am (CLEANFILES): Add libdw.so.$(VERSION). * libdw.h (dwarf_diecu): Add __nonnull_attribute__. (dwarf_child): Don't list arg 1 in __nonnull_attribute__. * libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure result is aligned. Adjust NEWP->remaining here for this allocation. * libdwP.h: Update decl. (libdw_alloc): Update caller. 2006-07-12 Ulrich Drepper <drepper@redhat.com> * dwarf_child.c: Adjust for internal_function_def removal. * dwarf_getabbrev.c: Likewise. * dwarf_tag.c: Likewise. * libdw_form.c: Likewise. * memory-access.c: Likewise. 2006-06-28 Roland McGrath <roland@redhat.com> * libdw.map: Export dwfl_linecu, dwfl_line_comp_dir. * libdw.map: Bump to 0.122; export dwfl_module_getsymtab and dwfl_module_getsym. 2006-05-27 Ulrich Drepper <drepper@redhat.com> * libdw.h: Add extern "C". 2006-05-22 Ulrich Drepper <drepper@redhat.com> * dwarf_getaranges.c (dwarf_getaranges): Handle files without aranges information. 2006-05-21 Ulrich Drepper <drepper@redhat.com> * libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs, dwarf_haschildren. 2006-02-28 Roland McGrath <roland@redhat.com> * dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*, DW_OP_* values, to match DWARF 3.0. Add new DW_DS_*, DW_END_* values from DWARF 3.0. 2006-02-22 Roland McGrath <roland@redhat.com> * libdw.map: Bump to 0.120; export dwfl_version. 2005-12-22 Roland McGrath <roland@redhat.com> * libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report. 2005-12-12 Roland McGrath <roland@redhat.com> * dwarf_ranges.c: Copy CU base address-finding code from dwarf_getlocation. 2005-12-09 Roland McGrath <roland@redhat.com> * dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys. Delay CU base lookup until it's needed. If CU base lookup fails with no error, flag invalid DWARF. 2005-11-25 Roland McGrath <roland@redhat.com> * libdw.map: Bump to 0.118; export dwfl_module_register_names. 2005-11-15 Roland McGrath <roland@redhat.com> * Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic. 2005-11-13 Roland McGrath <roland@redhat.com> * libdw.map: Bump to 0.117; export dwfl_module_return_value_location. 2005-10-27 Roland McGrath <roland@redhat.com> * dwarf_entry_breakpoints.c (search_range): Fix binary search code; don't match end_sequence markers. * dwarf_getsrclines.c (compare_lines): Sort end_sequence markers before normal records at the same address. * dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence marker. 2005-10-26 Roland McGrath <roland@redhat.com> * dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func. * dwarf_func_file.c: Renamed to ... * dwarf_decl_file.c: ... here. * dwarf_func_col.c: Renamed to ... * dwarf_decl_column.c: ... here. * dwarf_func_line.c: Renamed to ... * dwarf_decl_line.c: ... here. (dwarf_func_line): Renamed to ... (dwarf_decl_line): ... this. Take a Dwarf_Die * argument. (__libdw_func_intval): Renamed __libdw_attr_intval. * dwarf_func_name.c: File removed. * dwarf_func_lowpc.c: File removed. * dwarf_func_highpc.c: File removed. * dwarf_func_entrypc.c: File removed. * dwarf_func_die.c: File removed. * Makefile.am (libdw_a_SOURCES): Updated. * libdw.h: Update decls. (Dwarf_Func): Type removed. * libdwP.h: Update decls. (struct Dwarf_Func_s): Type removed. * libdw.map: Updated. * libdwP.h (CUDIE): New macro. * dwarf_getlocation.c (dwarf_getlocation_addr): Use it. * dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise. * dwarf_ranges.c (dwarf_ranges): Likewise. * dwarf_getloclist.c: Renamed to ... * dwarf_getlocation.c: ... here. (getloclist): Renamed to getlocation. (dwarf_getloclist): Renamed to dwarf_getlocation. (dwarf_addrloclists): Renamed to dwarf_getlocation_addr. * Makefile.am (libdw_a_SOURCES): Updated. * libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation. (dwarf_addrloclists): Renamed dwarf_getlocation_addr. (Dwarf_Loc): Renamed Dwarf_Op. * libdwP.h (struct loc_s): Update use. * libdw.map: Update map. * dwarf_entry_breakpoints.c: Use the second line record within the function, regardless of its source location data. 2005-10-25 Roland McGrath <roland@redhat.com> * dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too. * libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints. 2005-10-14 Roland McGrath <roland@redhat.com> * dwarf_diecu.c (dwarf_diecu): New file. * Makefile.am (libdw_a_SOURCES): Add it. * libdw.h: Declare dwarf_diecu. * libdw.map: Export it. * libdw.map: Bump to 0.116; export dwarf_ranges. 2005-09-20 Roland McGrath <roland@redhat.com> * dwarf_haspc.c: Use dwarf_ranges. * dwarf_entry_breakpoints.c: Likewise. * dwarf_ranges.c: New file. * Makefile.am (libdw_a_SOURCES): Add it. * libdw.h: Declare dwarf_ranges. * libdwP.h: Add INTDECL. 2005-09-14 Roland McGrath <roland@redhat.com> * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in prologue_end marker scanning loop. 2005-09-11 Roland McGrath <roland@redhat.com> * dwarf.h: Comment typo fix. 2005-09-07 Roland McGrath <roland@redhat.com> * dwarf_entry_breakpoints.c: New file. * Makefile.am (libdw_a_SOURCES): Add it. * libdw.h: Declare dwarf_entry_breakpoints. * dwarf_entrypc.c: New file. * Makefile.am (libdw_a_SOURCES): Add it. * libdw.h: Declare dwarf_entrypc. * libdwP.h: Add INTDECL. 2005-08-28 Ulrich Drepper <drepper@redhat.com> * Makefile.am: Use $(LINK) not $(CC) when creating DSO. (%.os): Use COMPILE.os. (COMPILE.os): Filter out gconv options. 2005-08-27 Roland McGrath <roland@redhat.com> * dwarf_getscopes.c (dwarf_getscopes): Rewritten using __libdw_visit_scopes. * dwarf_getscopes_die.c: New file. * Makefile.am (libdw_a_SOURCES): Add it. * libdw.h: Declare dwarf_getscopes_die. * libdw.map: Bump to 0.115 and add it. * libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct containing a DIE and its parent pointer, instead of just Dwarf_Die. Take two functions for both preorder and postorder visitors. * libdwP.h: Update decl. (struct Dwarf_Die_Chain): New type. * dwarf_func_inline.c: Update uses. * dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate. Add INTDEF. * libdwP.h: Add INTDECL. * dwarf_func_name.c (dwarf_func_name): Use dwarf_diename. 2005-08-23 Roland McGrath <roland@redhat.com> * dwarf_attr_integrate.c (dwarf_attr_integrate): Treat DW_AT_specification the same as DW_AT_abstract_origin. 2005-08-20 Roland McGrath <roland@redhat.com> * libdw.map: Add dwfl_cumodule, remove dwfl_linecu. Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address, and dwfl_report_offline. 2005-08-19 Roland McGrath <roland@redhat.com> * libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes. Add dwfl_module_relocate_address, dwfl_module_relocations, dwfl_module_relocation_info. 2005-08-18 Roland McGrath <roland@redhat.com> * dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as outermost scope in the results. 2005-08-15 Roland McGrath <roland@redhat.com> * dwarf_func_inline.c: New file. * Makefile.am (libdw_a_SOURCES): Add it. * libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances. * libdw.map: Add them. * dwarf_func_die.c: New file. * Makefile.am (libdw_a_SOURCES): Add it. * libdw.h: Declare dwarf_func_die. * libdw.map: Add it. Bump version to ELFUTILS_0.114. 2005-08-10 Ulrich Drepper <drepper@redhat.com> * dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming of DW_LNS_set_epilog_begin. 2005-08-09 Roland McGrath <roland@redhat.com> * dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin. * dwarf_end.c: Add INTDEF. * dwarf_error.c (dwarf_errmsg): Likewise. * libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs. 2005-08-01 Roland McGrath <roland@redhat.com> * dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset. * dwarf_getabbrev.c (__libdw_getabbrev): Likewise. 2005-07-28 Ulrich Drepper <drepper@redhat.com> * Makefile.am (libdw.so): No need to link with libeu.a anymore. (libdw_a_LIBADD): Add all files from libdwfl.a. 2005-07-27 Roland McGrath <roland@redhat.com> * Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in, along with ../libebl/libebl.a and ../lib/libeu.a; depend on ../libelf/libelf.so. (libdw_so_LDADD): New variable. * libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map. * libdw.map: Define an empty base version and move all symbols to version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet. 2005-07-23 Ulrich Drepper <drepper@redhat.com> * dwarf_error.c: Add internal alias for dwarf_errno. * libdwP.h: Declare __dwarf_errno_internal. * dwarf_getloclist.c: Use INTDEF for dwarf_errno. * dwarf_error.c [USE_TLS]: Actually use __thread in definition of global_error. 2005-06-01 Roland McGrath <roland@redhat.com> * dwarf_getaranges.c (dwarf_getaranges): Sort result array. * dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search. 2005-06-08 Roland McGrath <roland@redhat.com> * memory-access.h (get_uleb128_step, get_uleb128): Remove casts. (get_sleb128_step, get_sleb128): Likewise. * dwarf_getattrs.c (dwarf_getattrs): Add consts. * dwarf_getloclist.c (getloclist): Likewise. * dwarf_formblock.c (dwarf_formblock): Likewise. * dwarf_getsrclines.c (dwarf_getsrclines): Likewise. * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise. * dwarf_formref.c (dwarf_formref): Likewise. * dwarf_formsdata.c (dwarf_formsdata): Likewise. * dwarf_formudata.c (dwarf_formudata): Likewise. * dwarf_haschildren.c (dwarf_haschildren): Likewise. * dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise. * dwarf_tag.c (dwarf_tag): Likewise. * dwarf_getabbrev.c (__libdw_getabbrev): Likewise. * memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise. * libdw_form.c (__libdw_form_val_len): Likewise. * libdwP.h: Update decl. 2005-06-04 Roland McGrath <roland@redhat.com> * memory-access.h (get_uleb128_rest_return): New macro. [! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it. (get_sleb128_rest_return): New macro. [! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it. * memory-access.c: New file. * Makefile.am (libdw_a_SOURCES): Add it. (DEFS): Add -DIS_LIBDW. 2005-05-31 Roland McGrath <roland@redhat.com> * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to formref offset. 2005-05-30 Roland McGrath <roland@redhat.com> * dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base address if DW_AT_low_pc is missing. Not to spec, but GCC generates it. * dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte BEGIN value. Instead, match base address entries separately for 32/64 size cases. 2005-05-28 Roland McGrath <roland@redhat.com> * dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance past location expression contents. 2005-05-23 Roland McGrath <roland@redhat.com> * dwarf_getsrclines.c: Comment typo fix. * dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation. * dwarf_getloclist.c (dwarf_addrloclists): Likewise. 2005-05-22 Ulrich Drepper <drepper@redhat.com> * libdwP.h: Only use INTDECL for alias prototypes. 2005-05-19 Roland McGrath <roland@redhat.com> * dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too. * dwarf_getscopevar.c: New file. * Makefile.am (libdw_a_SOURCES): Add it. * libdw.h: Declare dwarf_getscopevar. * dwarf_getsrcfiles.c: Add INTDEF. * dwarf_haschildren.c: Likewise. * libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL. * dwarf_getscopes.c: New file. * Makefile.am (libdw_a_SOURCES): Add it. * libdw.h: Declare dwarf_getscopes. * libdw.map: Add it. 2005-05-18 Roland McGrath <roland@redhat.com> * libdwP.h (IDX_debug_ranges): New enum constant. * dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges". * libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant. * dwarf_error.c (errmsgs): Add it. * dwarf_haspc.c: New file. * libdw.h: Declare dwarf_haspc. * libdw.map: Add it. * libdwP.h: Add INTDECL. * dwarf_attr_integrate.c: New file. * dwarf_hasattr_integrate.c: New file. * Makefile.am (libdw_a_SOURCES): Add them. * libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate. * libdw.map: Add them. * dwarf_hasattr.c: Add INTDEF. * libdwP.h: Add INTDECL for it. * dwarf_formref_die.c: New file. * Makefile.am (libdw_a_SOURCES): Add it. * libdw.h (dwarf_formref_die): Declare it. * libdwP.h (dwarf_formref_die): Add INTDECL. * libdw.map: Add it. * dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out of ... (dwarf_getloclist): ... here. Call them. (dwarf_addrloclists): New function. * libdw.h: Declare it. * libdw.map: Add it. * dwarf_getmacros.c (dwarf_getmacros): Don't bail at DW_MACINFO_end_file. Recognize type 0 as terminator. 2005-05-05 Roland McGrath <roland@redhat.com> * dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search. * dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since the line program does not produce all entries in ascending order. 2005-04-25 Ulrich Drepper <drepper@redhat.com> * dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple occurences (e.g., inlines) better. 2005-04-24 Ulrich Drepper <drepper@redhat.com> * libdw.h (DWARF_END_ABBREV): Define. * dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if end is reached. * dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end of records reached. * dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV as error of __libdw_getabbrev. 2005-04-04 Ulrich Drepper <drepper@redhat.com> * dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization. * dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of results back to caller. 2005-04-04 Roland McGrath <roland@redhat.com> * dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL. * dwarf_func_line.c (__libdw_func_intval): Use internal_function in defn. 2005-04-04 Ulrich Drepper <drepper@redhat.com> * dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE. * dwarf_getsrc_file.c: New file. * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c. * libdw.h: Declare dwarf_getsrc_file. * libdw.map: Add dwarf_getsrc_file. 2005-04-02 Ulrich Drepper <drepper@redhat.com> * dwarf_func_entrypc.c: New file. * dwarf_func_col.c: New file. * dwarf_func_line.c: New file. * dwarf_func_file.c: New file. * libdw.h: Add prototypes for new functions. * libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line, dwarf_func_file. * Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c, dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c. * libdwP.h (struct Dwarf_Func_s): Add cudie element. Declare __libdw_func_intval and __dwarf_formsdata_internal. * dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object. * dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs. * dwarf.h: Add some DWARF3 definitions. 2005-04-01 Ulrich Drepper <drepper@redhat.com> * dwarf_getfuncs.c: New file. * dwarf_func_highpc.c: New file. * dwarf_func_lowpc.c: New file. * dwarf_func_name.c: New file. * Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c, dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c. * libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc, and dwarf_func_name. * libdw.h: Add prototypes for new functions. * dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs. * dwarf_siblingof.c: Likewise. * dwarf_dieoffset.c: Likewise. * dwarf_highpc.c: Likewise. * dwarf_lowpc.c: Likewise. * libdwP.h: Add prototypes for internal functions. Define Dwarf_Func_s structure. 2005-03-29 Ulrich Drepper <drepper@redhat.com> * libdw.h: Add padding in Dwarf_die. * dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs. * dwarf_attr.c: Likewise. * dwarf_begin.c: Likewise. * dwarf_begin_elf.c: Likewise. * dwarf_bitoffset.c: Likewise. * dwarf_bitsize.c: Likewise. * dwarf_bytesize.c: Likewise. * dwarf_diename.c: Likewise. * dwarf_formaddr.c: Likewise. * dwarf_formblock.c: Likewise. * dwarf_formref.c: Likewise. * dwarf_formstring.c: Likewise. * dwarf_formudata.c: Likewise. * dwarf_getarange_addr.c: Likewise. * dwarf_getarangeinfo.c: Likewise. * dwarf_getaranges.c: Likewise. * dwarf_getloclist.c: Likewise. * dwarf_getmacros.c: Likewise. * dwarf_getsrc_die.c: Likewise. * dwarf_getsrcfiles.c: Likewise. * dwarf_getsrclines.c: Likewise. * dwarf_highpc.c: Likewise. * dwarf_lowpc.c: Likewise. * dwarf_nextcu.c: Likewise. * dwarf_offdie.c: Likewise. * dwarf_siblingof.c: Likewise. * dwarf_srclang.c: Likewise. * dwarf_tag.c: Likewise. * libdw_findcu.c: Likewise. * libdwP.h: Add prototypes for internal functions. * dwarf_addrdie.c: New file. * dwarf_macro_opcode.c: New file. * dwarf_macro_param1.c: New file. * dwarf_macro_param2.c: New file. * libdw.h: Add declarations. Move Dwarf_Macro definition to libdwP.h. * libdwP.h: Remove Dwarf_Macro definition. * Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c, dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c. * libdw.map: Add entries for new functions. 2005-03-21 Ulrich Drepper <drepper@redhat.com> * libdw.h: Handle broken gcc < 4. 2005-02-15 Ulrich Drepper <drepper@redhat.com> * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. * dwarf_begin_elf.c: Fix warnings. * dwarf_dieoffset.c: Likewise. * dwarf_end.c: Likewise. * dwarf_error.c: Likewise. * dwarf_getpubnames.c: Likewise. * libdwP.h: Add new error values. * dwarf_error.c: Support new error values. * dwarf_getpubnames.c: Check parameter value. 2005-02-05 Ulrich Drepper <drepper@redhat.com> * Makefile.am: Check for text relocations in constructed DSO. * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. 2005-02-04 Ulrich Drepper <drepper@redhat.com> * dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary checks to not read over buffer boundaries for ill-formed DWARF data. 2004-09-25 Ulrich Drepper <drepper@redhat.com> * dwarf_child.c: Make compile with gcc 4.0. * dwarf_error.c: Likewise. * dwarf_formblock.c: Likewise. * dwarf_getabbrev.c: Likewise. * dwarf_getattrs.c: Likewise. * dwarf_getsrclines.c: Likewise. * dwarf_tag.c: Likewise. * libdw_form.c: Likewise. 2004-01-20 Ulrich Drepper <drepper@redhat.com> * Makefile.am: Support building with mudflap. * dwarf_getloclist.c: Fix warnings gcc 3.4 spits out. * dwarf_getsrclines.c: Likewise. * dwarf_memory-access.h: Likewise. 2004-01-19 Ulrich Drepper <drepper@redhat.com> * dwarf_getsrcfiles.c: Third parameter can be NULL. * libdw.h: Define Dwarf_macro. Declare dwarf_getmacros. Third parameter of dwarf_getsrcfiles can be NULL. * libdw.map: Add dwarf_getmacros. * Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros. * dwarf_getmacros.c: New file. 2004-01-18 Ulrich Drepper <drepper@redhat.com> * libdw.h: Second parameter of dwarf_getaranges can be NULL. * dwarf_nextcu.c: Return -1 if dwarf parameter is NULL. * dwarf_getsrclines.c: Use read_2ubyte_unaligned_inc instead of _inc-less variant. * dwarf_getaranges.c: Allow naranges parameter to be NULL. * libdwP.h (_): Use elfutils domain. * dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction. * dwarf_getsrclines.c: Fix typo in comment. 2004-01-17 Ulrich Drepper <drepper@redhat.com> * Makefile.am: Support building with mudflap. 2004-01-16 Ulrich Drepper <drepper@redhat.com> * memory-access.h: Add lots of const in case a pointer passed is const. * dwarf_formflag.c: New file. * dwarf_getattrs.c: New file. * dwarf_error.c: Add new error value. * libdw.h: Add prototypes for new functions. Adjust prototype for dwarf_getpubnames. * libdw.map: Add new functions. * dwarf_getpubnames.c: Change type of return value and fourth parameter to ptrdiff_t. * libdwP.h: Add new error value. * Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and dwarf_formflag.c. * dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL. 2004-01-12 Ulrich Drepper <drepper@redhat.com> * dwarf_getarange_addr.c: New file * dwarf_getarangeinfo.c: New file. * dwarf_getaranges.c: New file. * dwarf_onerange.c: New file. * libdw.h: Declare new functions. Define Dwarf_Arange and Dwarf_Aranges. * libdw.map: Add new functions. * libdwP.h: Add new errors. Add aranges member to struct Dwarf. Define Dwarf_Aranges_s and Dwarf_Arange_s. * Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c, dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c. * dwarf_error.c: Add new message. 2004-01-11 Ulrich Drepper <drepper@redhat.com> * Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c, dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c, dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c. * dwarf_error.c: Add another message. * dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines introduction. * dwarf_filesrc.c: Likewise. * dwarf_getsrcfiles.c: Likewise. * dwarf_getsrclines.c: Likewise. * dwarf_lineaddr.c: New file. * dwarf_linebeginstatement.c: New file. * dwarf_lineblock.c: New file. * dwarf_linecol.c: New file. * dwarf_lineendsequence.c: New file. * dwarf_lineepiloguebegin.c: New file. * dwarf_lineno.c: New file. * dwarf_lineprologueend.c: New file. * dwarf_onesrcline.c: New file. * dwarf_lineno.c: Change interface to store result in object pointed to by second parameter. * libdw.h: Add prototypes for new functions. Change dwarf_lineno prototype. Define Dwarf_Files and Dwarf_Lines. * libdw.map: Add new functions. * libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s. * libdw_findcu.c: Don't initialize nlines field. * dwarf_siblingof: Little optimization. * dwarf_begin.c: Remember that the ELF descriptor must be closed. * dwarf_end.c: Close ELF descriptor if free_elf is set. * libdwP.h (struct Dwarf): Add free_elf field. * Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and dwarf_offabbrev.c. * dwarf_getstring.c: New file. * dwarf_offabbrev.c: New file. * libdw.map: Add dwarf_getstring and dwarf_offabbrev. * dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result parameters. Don't allocate memory if not necessary and don't lookup previous results if no CU given. (dwarf_getabbrev): Adjust call to __libdw_getabbrev. * dwarf_tag.c: Adjust call to __libdw_getabbrev. * libdw.h: Declare dwarf_offabbrev and dwarf_getstring. * libdwP.h: Change prototype for __libdw_getabbrev. * dwarf_getabbrevattr.c: Add offsetp parameter. Fill in before returning if this is wanted. 2004-01-09 Ulrich Drepper <drepper@redhat.com> * dwarf_nextcu.c: Add new parameter offset_sizep. Initialize it with offset_size value. * libdw.h: Adjust dwarf_nextcu prototype. * libdwP.h (struct Dwarf_CU): Add offset_size member. * libdw_findcu.c: Adjust dwarf_nextcu call. Initialize offset_size member of new CU struct. * dwarf_formstring.c: Depend on offset_size not address_size for DW_FORM_strp handling. * dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr. * dwarf_tag.c (__libdw_findabbrev): Return correct value for failing lookup. (dwarf_tag): Correctly recognize failed lookup. * dwarf_end.c (cu_free): Call tdestroy for locs member. Use new function noop_free. * dwarf_error.c: Add message for DWARF_E_NO_BLOCK. * dwarf_formblock.c: New file. * dwarf_getloclist.c: Rewrite to handle a single block. * libdw.h: Define Dwarf_Block. Rename Dwarf_Loc members. Remove Dwarf_Locdesc definition. Declare dwarf_formblock. Remove dwarf_getloclistent declaration. * libdw.map: Add dwarf_formblock, remove dwarf_getloclistent. * libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK. Add locs member to struct Dwarf_CU. * libdw_fundcu.c: Initialize locs member of new CU. * Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c. Remove dwarf_getloclistent.c. 2004-01-07 Ulrich Drepper <drepper@redhat.com> * libdw.h: Use __nonnull__ attribute only for gcc >= 3.3. * libdwP.h: Likewise. * dwarf_getloclist.c: New file. * dwarf_getloclistent.c: New file. * libdw.h: Define Dwarf_Loc and Dwarf_Locdesc. Declare dwarf_getloclistent and dwarf_getloclist. * libdw.map: Add dwarf_getloclistent and dwarf_getloclist. * libdwP.h: Define DWARF_E_NO_LOCLIST. * Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and dwarf_getloclist.c. * dwarf_error.c: More error messages. 2004-01-06 Ulrich Drepper <drepper@redhat.com> * dwarf_getsrclines.c: Remove debugging support. * dwarf_getsrcfiles.c: New file. * dwarf_filesrc.c: New file. * libdw.h: Declare these functions. Define Dwarf_File. * libdwP.c: Adjust Dwarf_File_s definition. * libdw.map: Add these functions. * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and dwarf_filesrc.c. * dwarf_getsrclines.c: Initialize cu->files. 2004-01-05 Ulrich Drepper <drepper@redhat.com> * libdw.h: Add more nonnull function attributes. * dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next. * dwarf_end.c (cu_free): New function. (dwarf_end): Also free CU tree. Correct freeing of memory blocks. * dwarf_error.c (errmsgs): Add new messages. * dwarf_getsrc_die.c: New file. * dwarf_getsrclines.c: New file. * dwarf_lineno.c: New file. * dwarf_linesrc.c: New file. * dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc instead of the *_inc-less variants. * libdw.h: Define Dwarf_Line. Add some function attributes. Declare dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc. * libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc. * libdwP.h: Add more error codes. (struct Dwarf): Remove mem_tail.next member. (Dwarf_File): Define type. (struct Dwarf_Line_s): Define type. (struct Dwarf_CU): Add lines and nlines members. (libdw_alloc): Define local variable _tail and use it. Add some function attributes. * libdw_alloc.c (__libdw_allocate): Don't initialize next member. * libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members. * memory-access.h: Add unlikely for the endian conversion paths. * Makefile.am (AM_CFLAGS): Add -std parameter. (libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc. 2003-08-11 Ulrich Drepper <drepper@redhat.com> * Moved to CVS archive.