blob: 28c582adaec90562c211ef9437764c4cc3f8858a [file] [log] [blame]
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.