1da0c48c4Sopenharmony_ci2022-10-21 Yonggang Luo <luoyonggang@gmail.com> 2da0c48c4Sopenharmony_ci 3da0c48c4Sopenharmony_ci * dwarf_begin_elf.h: Don't include unistd.h and endian.h. 4da0c48c4Sopenharmony_ci * dwarf_end.c: Don't include unistd.h. 5da0c48c4Sopenharmony_ci * dwarf_setalt.c: Likewise. 6da0c48c4Sopenharmony_ci * libdw_find_split_unit.c: Likewise. 7da0c48c4Sopenharmony_ci 8da0c48c4Sopenharmony_ci2022-10-19 Mark Wielaard <mark@klomp.org> 9da0c48c4Sopenharmony_ci 10da0c48c4Sopenharmony_ci * dwarf.h (DW_LLE_GNU_view_pair): New constant. 11da0c48c4Sopenharmony_ci 12da0c48c4Sopenharmony_ci2022-10-21 Yonggang Luo <luoyonggang@gmail.com> 13da0c48c4Sopenharmony_ci 14da0c48c4Sopenharmony_ci * memory-access.h: Include system.h instead of byteswap.h and 15da0c48c4Sopenharmony_ci endian.h. 16da0c48c4Sopenharmony_ci 17da0c48c4Sopenharmony_ci2022-09-20 Yonggang Luo <luoyonggang@gmail.com> 18da0c48c4Sopenharmony_ci 19da0c48c4Sopenharmony_ci * memory-access.h: Use BYTE_ORDER, LITTLE_ENDIAN and BIG_ENDIAN. 20da0c48c4Sopenharmony_ci 21da0c48c4Sopenharmony_ci2022-09-13 Aleksei Vetrov <vvvvvv@google.com> 22da0c48c4Sopenharmony_ci 23da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.188): Add dwfl_report_offline_memory. 24da0c48c4Sopenharmony_ci 25da0c48c4Sopenharmony_ci2022-08-09 Ulrich Drepper <drepper@redhat.com> 26da0c48c4Sopenharmony_ci 27da0c48c4Sopenharmony_ci * dwarf_next_cfi.c (dwarf_next_cfi): Don't skip processing the 28da0c48c4Sopenharmony_ci augmentation string. Be more stringent what to accept. 29da0c48c4Sopenharmony_ci 30da0c48c4Sopenharmony_ci2022-07-28 Di Chen <dichen@redhat.com> 31da0c48c4Sopenharmony_ci 32da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.188): Add dwfl_frame_reg. 33da0c48c4Sopenharmony_ci 34da0c48c4Sopenharmony_ci2022-07-13 Mark Wielaard <mark@klomp.org> 35da0c48c4Sopenharmony_ci 36da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.187): Renamed to... 37da0c48c4Sopenharmony_ci (ELFUTILS_0.188): ... this. 38da0c48c4Sopenharmony_ci 39da0c48c4Sopenharmony_ci2022-05-09 Mark Wielaard <mark@klomp.org> 40da0c48c4Sopenharmony_ci 41da0c48c4Sopenharmony_ci * dwarf_getlocation.c (store_implicit_value): Check block length. 42da0c48c4Sopenharmony_ci 43da0c48c4Sopenharmony_ci2022-04-16 Mark Wielaard <mark@klomp.org> 44da0c48c4Sopenharmony_ci 45da0c48c4Sopenharmony_ci * libdwP.h: Remove atomics.h include. 46da0c48c4Sopenharmony_ci 47da0c48c4Sopenharmony_ci2022-04-13 Mark Wielaard <mark@klomp.org> 48da0c48c4Sopenharmony_ci 49da0c48c4Sopenharmony_ci * dwarf.h: Add DWARF5 package file section identifiers, 50da0c48c4Sopenharmony_ci DW_SECT_*. 51da0c48c4Sopenharmony_ci 52da0c48c4Sopenharmony_ci2021-10-20 John M Mellor-Crummey <johnmc@rice.edu> 53da0c48c4Sopenharmony_ci 54da0c48c4Sopenharmony_ci * dwarf_linecontext.c: New file. 55da0c48c4Sopenharmony_ci * dwarf_linefunctionname.c: Likewise. 56da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_linecontext.c and 57da0c48c4Sopenharmony_ci dwarf_linefunctionname.c 58da0c48c4Sopenharmony_ci * dwarf.h: Add DW_LNE_NVIDIA_inlined_call and 59da0c48c4Sopenharmony_ci DW_LNE_NVIDIA_set_function_name. 60da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (struct line_state): Add context and 61da0c48c4Sopenharmony_ci function_name fields. 62da0c48c4Sopenharmony_ci (add_new_line): Set context and function_name. 63da0c48c4Sopenharmony_ci (MAX_STACK_LINES): Reduce to MAX_STACK_ALLOC / 2. 64da0c48c4Sopenharmony_ci (read_srclines): Initialize context and function_name. Try to 65da0c48c4Sopenharmony_ci read debug_str_offset if available. Handle 66da0c48c4Sopenharmony_ci DW_LNE_NVIDIA_inlined_call and DW_LNE_NVIDIA_set_function_name. 67da0c48c4Sopenharmony_ci * libdw.h (dwarf_linecontext): New declaration. 68da0c48c4Sopenharmony_ci (dwarf_linefunctionname): Likewise. 69da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.186): New section. 70da0c48c4Sopenharmony_ci 71da0c48c4Sopenharmony_ci2021-11-08 Mark Wielaard <mark@klomp.org> 72da0c48c4Sopenharmony_ci 73da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (scn_dwarf_type): New function. 74da0c48c4Sopenharmony_ci (check_section): Check result->type. 75da0c48c4Sopenharmony_ci (global_read): First check type. 76da0c48c4Sopenharmony_ci (scngrp_read): Likewise. 77da0c48c4Sopenharmony_ci * libdw/libdwP.h (enum dwarf_type): New enumeration. 78da0c48c4Sopenharmony_ci (struct Dwarf): New field type. 79da0c48c4Sopenharmony_ci 80da0c48c4Sopenharmony_ci2021-02-14 Alexander Miller <alex.miller@gmx.de> 81da0c48c4Sopenharmony_ci 82da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (dwarf_aggregate_size): Move NEW_VERSION 83da0c48c4Sopenharmony_ci before definition. Replace INTDEF with NEW_INTDEF. 84da0c48c4Sopenharmony_ci * dwarf_srclang.c (dwarf_srclang): Likewise. 85da0c48c4Sopenharmony_ci * dwarf_arrayorder.c (dwarf_arrayorder): Move NEW_VERSION. 86da0c48c4Sopenharmony_ci * dwarf_bitoffset.c (dwarf_bitoffset): Likewise. 87da0c48c4Sopenharmony_ci * dwarf_bitsize.c (dwarf_bitsize): Likewise. 88da0c48c4Sopenharmony_ci * dwarf_bytesize.c (dwarf_bytesize): Likewise. 89da0c48c4Sopenharmony_ci * dwarf_decl_column.c (dwarf_decl_column): Likewise. 90da0c48c4Sopenharmony_ci 91da0c48c4Sopenharmony_ci2021-10-18 Mark Wielaard <mark@klomp.org> 92da0c48c4Sopenharmony_ci 93da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (get_type): Don't pass NULL to 94da0c48c4Sopenharmony_ci dwarf_peel_type. 95da0c48c4Sopenharmony_ci 96da0c48c4Sopenharmony_ci2021-10-06 Mark Wielaard <mark@klomp.org> 97da0c48c4Sopenharmony_ci 98da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (array_size): Check signedness of child DIE 99da0c48c4Sopenharmony_ci type. Use dwarf_formsdata or dwarf_formudata to get the lower and 100da0c48c4Sopenharmony_ci upper bounds. 101da0c48c4Sopenharmony_ci 102da0c48c4Sopenharmony_ci2021-09-08 Mark Wielaard <mark@klomp.org> 103da0c48c4Sopenharmony_ci 104da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (valid_p): Identify ELF class and use this to set 105da0c48c4Sopenharmony_ci address_size of the fake CUs. Also set offset_size and DWARF version. 106da0c48c4Sopenharmony_ci 107da0c48c4Sopenharmony_ci2021-09-06 Dmitry V. Levin <ldv@altlinux.org> 108da0c48c4Sopenharmony_ci 109da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (valid_p): Remove casts of malloc return values. 110da0c48c4Sopenharmony_ci (dwarf_begin_elf): Remove cast of calloc return value. 111da0c48c4Sopenharmony_ci * dwarf_getpubnames.c (get_offsets): Remove casts of realloc return 112da0c48c4Sopenharmony_ci values. 113da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Remove cast of malloc return 114da0c48c4Sopenharmony_ci value. 115da0c48c4Sopenharmony_ci 116da0c48c4Sopenharmony_ci2021-04-19 Martin Liska <mliska@suse.cz> 117da0c48c4Sopenharmony_ci 118da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Use startswith. 119da0c48c4Sopenharmony_ci 120da0c48c4Sopenharmony_ci2021-05-01 Mark Wielaard <mark@klomp.org> 121da0c48c4Sopenharmony_ci 122da0c48c4Sopenharmony_ci * libdw_form.c (__libdw_form_val_compute_len): Check indirect 123da0c48c4Sopenharmony_ci form is not DW_FORM_indirect or DW_FORM_implicit_const. 124da0c48c4Sopenharmony_ci 125da0c48c4Sopenharmony_ci2021-04-23 Omar Sandoval <osandov@fb.com> 126da0c48c4Sopenharmony_ci 127da0c48c4Sopenharmony_ci * dwarf_child.c (__libdw_find_attr): Handle DW_FORM_indirect. 128da0c48c4Sopenharmony_ci * dwarf_getattrs.c (dwarf_getattrs): Handle DW_FORM_indirect. 129da0c48c4Sopenharmony_ci 130da0c48c4Sopenharmony_ci2021-02-12 Mark Wielaard <mark@klomp.org> 131da0c48c4Sopenharmony_ci 132da0c48c4Sopenharmony_ci * dwarf_getlocation.c (attr_ok): For DWARF version 4 or higher 133da0c48c4Sopenharmony_ci block forms are not expression locations. 134da0c48c4Sopenharmony_ci (is_constant_offset): DW_FORM_implicit_const is also a constant. 135da0c48c4Sopenharmony_ci 136da0c48c4Sopenharmony_ci2020-12-20 Dmitry V. Levin <ldv@altlinux.org> 137da0c48c4Sopenharmony_ci 138da0c48c4Sopenharmony_ci * .gitignore: New file. 139da0c48c4Sopenharmony_ci 140da0c48c4Sopenharmony_ci2020-12-16 Dmitry V. Levin <ldv@altlinux.org> 141da0c48c4Sopenharmony_ci 142da0c48c4Sopenharmony_ci * libdwP.h (_): Remove. 143da0c48c4Sopenharmony_ci 144da0c48c4Sopenharmony_ci2020-12-12 Dmitry V. Levin <ldv@altlinux.org> 145da0c48c4Sopenharmony_ci 146da0c48c4Sopenharmony_ci * dwarf.h: Fix spelling typo in comment. 147da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_begin_elf): Likewise. 148da0c48c4Sopenharmony_ci * dwarf_getlocation.c (attr_ok, __libdw_intern_expression): Likewise. 149da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Likewise. 150da0c48c4Sopenharmony_ci * libdw.h: Fix spelling typos in comments. 151da0c48c4Sopenharmony_ci * libdwP.h: Likewise. 152da0c48c4Sopenharmony_ci 153da0c48c4Sopenharmony_ci2020-12-09 Dmitry V. Levin <ldv@altlinux.org> 154da0c48c4Sopenharmony_ci 155da0c48c4Sopenharmony_ci * Makefile.am (noinst_PROGRAMS): Rename to noinst_DATA. 156da0c48c4Sopenharmony_ci (libdw_so_SOURCES): Remove. 157da0c48c4Sopenharmony_ci (MOSTLYCLEANFILES): Add libdw.so. 158da0c48c4Sopenharmony_ci 159da0c48c4Sopenharmony_ci2020-11-30 Dmitry V. Levin <ldv@altlinux.org> 160da0c48c4Sopenharmony_ci 161da0c48c4Sopenharmony_ci * Makefile.am (libdw.so$(EXEEXT)): Drop $(EXEEXT) suffix. 162da0c48c4Sopenharmony_ci 163da0c48c4Sopenharmony_ci2020-11-01 Érico N. Rolim <erico.erc@gmail.com> 164da0c48c4Sopenharmony_ci 165da0c48c4Sopenharmony_ci * Makefile.am (libdw_so_LDLIBS): Add fts_LIBS. 166da0c48c4Sopenharmony_ci 167da0c48c4Sopenharmony_ci2020-10-28 Tom Tromey <tom@tromey.com> 168da0c48c4Sopenharmony_ci 169da0c48c4Sopenharmony_ci PR26773 170da0c48c4Sopenharmony_ci * dwarf_getlocation.c (store_implicit_value): Use 171da0c48c4Sopenharmony_ci __libdw_get_uleb128_unchecked. 172da0c48c4Sopenharmony_ci * memory-access.h (get_sleb128_step): Assume unsigned type for 173da0c48c4Sopenharmony_ci 'var'. 174da0c48c4Sopenharmony_ci (__libdw_get_sleb128, __libdw_get_sleb128_unchecked): Work in 175da0c48c4Sopenharmony_ci unsigned type. Handle final byte. 176da0c48c4Sopenharmony_ci 177da0c48c4Sopenharmony_ci2020-10-19 Mark Wielaard <mark@klomp.org> 178da0c48c4Sopenharmony_ci 179da0c48c4Sopenharmony_ci * dwarf_frame_register.c (dwarf_frame_register): Declare ops_mem 180da0c48c4Sopenharmony_ci as array of (at least) 3 elements. 181da0c48c4Sopenharmony_ci * libdw.h (dwarf_frame_register): Add extra explanation of ops_mem 182da0c48c4Sopenharmony_ci argument. 183da0c48c4Sopenharmony_ci 184da0c48c4Sopenharmony_ci2020-10-23 Tom Tromey <tom@tromey.com> 185da0c48c4Sopenharmony_ci 186da0c48c4Sopenharmony_ci * memory-access.h (read_3ubyte_unaligned_inc): Call 187da0c48c4Sopenharmony_ci read_3ubyte_unaligned. 188da0c48c4Sopenharmony_ci 189da0c48c4Sopenharmony_ci2020-09-03 Mark Wielaard <mark@klomp.org> 190da0c48c4Sopenharmony_ci 191da0c48c4Sopenharmony_ci * dwarf.h: Add DW_CFA_AARCH64_negate_ra_state. 192da0c48c4Sopenharmony_ci * cfi.h (struct Dwarf_CFI_s): Add e_machine field. 193da0c48c4Sopenharmony_ci * cfi.c (execute_cfi): Recognize, but ignore 194da0c48c4Sopenharmony_ci DW_CFA_AARCH64_negate_ra_state on aarch64. 195da0c48c4Sopenharmony_ci * dwarf_getcfi.c (dwarf_getcfi): Set cfi e_machine. 196da0c48c4Sopenharmony_ci * dwarf_getcfi_elf.c (allocate_cfi): Take ehdr as argument and set 197da0c48c4Sopenharmony_ci cfi e_machine. 198da0c48c4Sopenharmony_ci (getcfi_gnu_eh_frame): Pass ehdr to allocate_cfi. 199da0c48c4Sopenharmony_ci (getcfi_scn_eh_frame): Likewise. 200da0c48c4Sopenharmony_ci 201da0c48c4Sopenharmony_ci2020-09-03 Mark Wielaard <mark@klomp.org> 202da0c48c4Sopenharmony_ci 203da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.126): Remove local wildcard. 204da0c48c4Sopenharmony_ci (ELFUTILS_0.127): Likewise. 205da0c48c4Sopenharmony_ci (ELFUTILS_0.130): Likewise. 206da0c48c4Sopenharmony_ci (ELFUTILS_0.136): Likewise. 207da0c48c4Sopenharmony_ci (ELFUTILS_0.138): Likewise. 208da0c48c4Sopenharmony_ci 209da0c48c4Sopenharmony_ci2020-08-25 Mark Wielaard <mark@klomp.org> 210da0c48c4Sopenharmony_ci 211da0c48c4Sopenharmony_ci * dwarf_getlocation.c (check_constant_offset): Rename to... 212da0c48c4Sopenharmony_ci (is_constant_offset): .. this. 213da0c48c4Sopenharmony_ci 214da0c48c4Sopenharmony_ci2020-06-28 Mark Wielaard <mark@klomp.org> 215da0c48c4Sopenharmony_ci 216da0c48c4Sopenharmony_ci * linux-kernel-modules.c (intuit_kernel_bounds): Check read_address 217da0c48c4Sopenharmony_ci returns an increasing address when searching for end. 218da0c48c4Sopenharmony_ci 219da0c48c4Sopenharmony_ci2020-06-16 Mark Wielaard <mark@klomp.org> 220da0c48c4Sopenharmony_ci 221da0c48c4Sopenharmony_ci * cfi.c (execute_cfi): Add missing FALLTHROUGH. 222da0c48c4Sopenharmony_ci 223da0c48c4Sopenharmony_ci2020-05-08 Mark Wielaard <mark@klomp.org> 224da0c48c4Sopenharmony_ci 225da0c48c4Sopenharmony_ci * libdw_visit_scopes.c (walk_children): Don't recurse into imported 226da0c48c4Sopenharmony_ci DW_TAG_compile_units. 227da0c48c4Sopenharmony_ci 228da0c48c4Sopenharmony_ci2020-05-08 Mark Wielaard <mark@klomp.org> 229da0c48c4Sopenharmony_ci 230da0c48c4Sopenharmony_ci * dwarf_decl_file.c (dwarf_decl_file): Use attr CU instead of DIE 231da0c48c4Sopenharmony_ci CU to resolve file name. 232da0c48c4Sopenharmony_ci * dwarf_ranges.c(dwarf_ranges): Document which CU we use when. 233da0c48c4Sopenharmony_ci * libdw.h (dwarf_attr_integrate): Extend documentation. 234da0c48c4Sopenharmony_ci 235da0c48c4Sopenharmony_ci2020-04-25 Mark Wielaard <mark@klomp.org> 236da0c48c4Sopenharmony_ci 237da0c48c4Sopenharmony_ci * libdw_alloc.c (__libdw_alloc_tail): Call Dwarf oom_handler() 238da0c48c4Sopenharmony_ci when malloc fails. 239da0c48c4Sopenharmony_ci 240da0c48c4Sopenharmony_ci2020-04-17 Mark Wielaard <mark@klomp.org> 241da0c48c4Sopenharmony_ci 242da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Handle .gnu.debuglto_ prefix. 243da0c48c4Sopenharmony_ci 244da0c48c4Sopenharmony_ci2019-10-28 Aaron Merey <amerey@redhat.com> 245da0c48c4Sopenharmony_ci 246da0c48c4Sopenharmony_ci * Makefile.am (libdw_so_LDLIBS): Add -ldl for libdebuginfod.so dlopen. 247da0c48c4Sopenharmony_ci 248da0c48c4Sopenharmony_ci2019-11-10 Mark Wielaard <mark@klomp.org> 249da0c48c4Sopenharmony_ci 250da0c48c4Sopenharmony_ci * libdwP.h (libdw_unalloc): New define. 251da0c48c4Sopenharmony_ci (libdw_typed_unalloc): Likewise. 252da0c48c4Sopenharmony_ci (__libdw_thread_tail): New function declaration. 253da0c48c4Sopenharmony_ci * libdw_alloc.c (__libdw_thread_tail): New function. 254da0c48c4Sopenharmony_ci * dwarf_getabbrev.c (__libdw_getabbrev): Call libdw_typed_unalloc 255da0c48c4Sopenharmony_ci when reading invalid data or when hash collission detected. 256da0c48c4Sopenharmony_ci 257da0c48c4Sopenharmony_ci2019-10-28 Jonathon Anderson <jma14@rice.edu> 258da0c48c4Sopenharmony_ci 259da0c48c4Sopenharmony_ci * libdw_alloc.c: Added __libdw_alloc_tail. 260da0c48c4Sopenharmony_ci (__libdw_allocate): Switch to use the mem_tails array. 261da0c48c4Sopenharmony_ci * libdwP.h (Dwarf): Likewise. 262da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_begin_elf): Support for above. 263da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end): Likewise. 264da0c48c4Sopenharmony_ci * atomics.h: Add support for thread_local. 265da0c48c4Sopenharmony_ci 266da0c48c4Sopenharmony_ci2019-10-28 Mark Wielaard <mark@klomp.org> 267da0c48c4Sopenharmony_ci 268da0c48c4Sopenharmony_ci * dwarf_sig8_hash.h: Include libdw.h. Remove COMPARE. Include 269da0c48c4Sopenharmony_ci dynamicsizehash_concurrent.h. 270da0c48c4Sopenharmony_ci * dwarf_sig8_hash.c: Include dynamicsizehash_concurrent.c. 271da0c48c4Sopenharmony_ci * dwarf_formref_die.c (dwarf_formref_die): Drop NULL argument to 272da0c48c4Sopenharmony_ci Dwarf_Sig8_Hash_find. 273da0c48c4Sopenharmony_ci 274da0c48c4Sopenharmony_ci2019-08-26 Srđan Milaković <sm108@rice.edu@rice.edu> 275da0c48c4Sopenharmony_ci 276da0c48c4Sopenharmony_ci * dwarf_abbrev_hash.{c,h}: Use the *_concurrent hash table. 277da0c48c4Sopenharmony_ci 278da0c48c4Sopenharmony_ci2019-11-01 Jonathon Anderson <jma14@rice.edu> 279da0c48c4Sopenharmony_ci 280da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (valid_p): Switch calloc for malloc for fake CUs. 281da0c48c4Sopenharmony_ci Add explicit initialization of some fields. 282da0c48c4Sopenharmony_ci * dwarf_end.c (cu_free): Add clause to limit freeing of CU internals. 283da0c48c4Sopenharmony_ci 284da0c48c4Sopenharmony_ci2019-08-26 Jonathon Anderson <jma14@rice.edu> 285da0c48c4Sopenharmony_ci 286da0c48c4Sopenharmony_ci * libdw_alloc.c (__libdw_allocate): Added thread-safe stack allocator. 287da0c48c4Sopenharmony_ci * libdwP.h (Dwarf): Likewise. 288da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_begin_elf): Support for above. 289da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end): Likewise. 290da0c48c4Sopenharmony_ci * Makefile.am: Use -pthread to provide rwlocks. 291da0c48c4Sopenharmony_ci 292da0c48c4Sopenharmony_ci2019-07-05 Omar Sandoval <osandov@fb.com> 293da0c48c4Sopenharmony_ci 294da0c48c4Sopenharmony_ci * Makefile.am (libdw_so_LIBS): Replace libebl.a with libebl_pic.a. 295da0c48c4Sopenharmony_ci Move libebl_pic.a to the beginning so that libdw symbols are resolved. 296da0c48c4Sopenharmony_ci (libdw_so_LDLIBS): Remove -ldl. 297da0c48c4Sopenharmony_ci (libdw.so): Remove -rpath. 298da0c48c4Sopenharmony_ci (libdw_a_LIBADD): Add libebl, libebl_backends, and libcpu objects. 299da0c48c4Sopenharmony_ci 300da0c48c4Sopenharmony_ci2019-08-25 Jonathon Anderson <jma14@rice.edu> 301da0c48c4Sopenharmony_ci 302da0c48c4Sopenharmony_ci * dwarf_getcfi.c (dwarf_getcfi): Set default_same_value to false. 303da0c48c4Sopenharmony_ci 304da0c48c4Sopenharmony_ci2019-08-12 Mark Wielaard <mark@klomp.org> 305da0c48c4Sopenharmony_ci 306da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.177): Add new version of dwelf_elf_begin. 307da0c48c4Sopenharmony_ci 308da0c48c4Sopenharmony_ci2019-06-28 Mark Wielaard <mark@klomp.org> 309da0c48c4Sopenharmony_ci 310da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.177): New section. Add 311da0c48c4Sopenharmony_ci dwelf_elf_e_machine_string. 312da0c48c4Sopenharmony_ci 313da0c48c4Sopenharmony_ci2019-05-16 Mark Wielaard <mark@klomp.org> 314da0c48c4Sopenharmony_ci 315da0c48c4Sopenharmony_ci * dwarf.h: Add DW_AT_GNU_numerator, DW_AT_GNU_denominator and 316da0c48c4Sopenharmony_ci DW_AT_GNU_bias. 317da0c48c4Sopenharmony_ci 318da0c48c4Sopenharmony_ci2019-04-28 Mark Wielaard <mark@klomp.org> 319da0c48c4Sopenharmony_ci 320da0c48c4Sopenharmony_ci * dwarf_siblingof.c (dwarf_siblingof): Don't initialize addr. 321da0c48c4Sopenharmony_ci 322da0c48c4Sopenharmony_ci2019-04-28 Mark Wielaard <mark@klomp.org> 323da0c48c4Sopenharmony_ci 324da0c48c4Sopenharmony_ci * dwarf_getlocation.c (dwarf_getlocation_addr): Call 325da0c48c4Sopenharmony_ci check_constant_offset with llbufs and listlens directly. 326da0c48c4Sopenharmony_ci 327da0c48c4Sopenharmony_ci2019-04-27 Mark Wielaard <mark@klomp.org> 328da0c48c4Sopenharmony_ci 329da0c48c4Sopenharmony_ci * dwarf_getlocation.c (store_implicit_value): Check dbg isn't 330da0c48c4Sopenharmony_ci NULL. 331da0c48c4Sopenharmony_ci 332da0c48c4Sopenharmony_ci2019-02-02 Mark Wielaard <mark@klomp.org> 333da0c48c4Sopenharmony_ci 334da0c48c4Sopenharmony_ci * dwarf_nextcu.c (__libdw_next_unit): Define bytes_end. 335da0c48c4Sopenharmony_ci Check there are enough bytes to read extended length, version 336da0c48c4Sopenharmony_ci and unit. 337da0c48c4Sopenharmony_ci 338da0c48c4Sopenharmony_ci2019-01-20 Mark Wielaard <mark@klomp.org> 339da0c48c4Sopenharmony_ci 340da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Check terminating NUL byte 341da0c48c4Sopenharmony_ci for dir and file lists. 342da0c48c4Sopenharmony_ci 343da0c48c4Sopenharmony_ci2018-10-23 Mark Wielaard <mark@klomp.org> 344da0c48c4Sopenharmony_ci 345da0c48c4Sopenharmony_ci * dwarf_child.c (__libdw_find_attr): Initialize readp to NULL. 346da0c48c4Sopenharmony_ci * dwarf_getattrs.c (dwarf_getattrs): Initialize die_addr to NULL. 347da0c48c4Sopenharmony_ci 348da0c48c4Sopenharmony_ci2018-10-20 Mark Wielaard <mark@klomp.org> 349da0c48c4Sopenharmony_ci 350da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.175): New section. Add dwelf_elf_begin. 351da0c48c4Sopenharmony_ci 352da0c48c4Sopenharmony_ci2018-10-29 Milian Wolff <milian.wolff@kdab.com> 353da0c48c4Sopenharmony_ci 354da0c48c4Sopenharmony_ci * dwarf_getcfi_elf.c (getcfi_shdr): Check sh_type != SHT_NOBITS. 355da0c48c4Sopenharmony_ci 356da0c48c4Sopenharmony_ci2018-09-13 Mark Wielaard <mark@klomp.org> 357da0c48c4Sopenharmony_ci 358da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Drop ehdr argument, add and 359da0c48c4Sopenharmony_ci use shstrndx argument. 360da0c48c4Sopenharmony_ci (global_read): Likewise. 361da0c48c4Sopenharmony_ci (scngrp_read): Likewise. 362da0c48c4Sopenharmony_ci (dwarf_begin_elf): Call elf_getshdrstrndx. Pass shstrndx to 363da0c48c4Sopenharmony_ci global_read or scngrp_read. 364da0c48c4Sopenharmony_ci 365da0c48c4Sopenharmony_ci2018-08-18 Mark Wielaard <mark@klomp.org> 366da0c48c4Sopenharmony_ci 367da0c48c4Sopenharmony_ci * dwarf_getabbrev.c (__libdw_getabbrev): Continue until both name 368da0c48c4Sopenharmony_ci and form are zero. 369da0c48c4Sopenharmony_ci * dwarf_hasattr.c (dwarf_hasattr): Stop when both name and form 370da0c48c4Sopenharmony_ci are zero. 371da0c48c4Sopenharmony_ci 372da0c48c4Sopenharmony_ci2018-08-18 Mark Wielaard <mark@klomp.org> 373da0c48c4Sopenharmony_ci 374da0c48c4Sopenharmony_ci * dwarf_getaranges.c (dwarf_getaranges.c): Make sure there is enough 375da0c48c4Sopenharmony_ci data to read the address and segment size. 376da0c48c4Sopenharmony_ci 377da0c48c4Sopenharmony_ci2018-07-04 Ross Burton <ross.burton@intel.com> 378da0c48c4Sopenharmony_ci 379da0c48c4Sopenharmony_ci * libdw_alloc.c: Remove error.h include. 380da0c48c4Sopenharmony_ci 381da0c48c4Sopenharmony_ci2018-06-28 Mark Wielaard <mark@klomp.org> 382da0c48c4Sopenharmony_ci 383da0c48c4Sopenharmony_ci * dwarf_next_cfi.c (dwarf_next_cfi): Check whether length is zero. 384da0c48c4Sopenharmony_ci 385da0c48c4Sopenharmony_ci2018-06-27 Mark Wielaard <mark@klomp.org> 386da0c48c4Sopenharmony_ci 387da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Allow a single .debug_frame 388da0c48c4Sopenharmony_ci section. 389da0c48c4Sopenharmony_ci 390da0c48c4Sopenharmony_ci2018-06-26 Mark Wielaard <mark@klomp.org> 391da0c48c4Sopenharmony_ci 392da0c48c4Sopenharmony_ci * libdw.h (dwarf_getscn_info): Remove. 393da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.122): Remove dwarf_getscn_info. 394da0c48c4Sopenharmony_ci 395da0c48c4Sopenharmony_ci2018-06-25 Mark Wielaard <mark@klomp.org> 396da0c48c4Sopenharmony_ci 397da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_next_lines.c. 398da0c48c4Sopenharmony_ci * libdw.h (dwarf_next_lines): New function declaration. 399da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.173): New section. 400da0c48c4Sopenharmony_ci * dwarf_next_lines.c: New files. 401da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Don't error out when elf 402da0c48c4Sopenharmony_ci decompression fails. 403da0c48c4Sopenharmony_ci (valid_p): Allow just a single .debug_line section. 404da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Keep files relative if comp_dir 405da0c48c4Sopenharmony_ci is missing. 406da0c48c4Sopenharmony_ci 407da0c48c4Sopenharmony_ci2018-06-22 Mark Wielaard <mark@klomp.org> 408da0c48c4Sopenharmony_ci 409da0c48c4Sopenharmony_ci * dwarf_nextcu.c (__libdw_next_unit): Set next_off to -1 when it would 410da0c48c4Sopenharmony_ci wrap around. 411da0c48c4Sopenharmony_ci 412da0c48c4Sopenharmony_ci2018-06-18 Mark Wielaard <mark@klomp.org> 413da0c48c4Sopenharmony_ci 414da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (array_size): New depth argument. Use 415da0c48c4Sopenharmony_ci aggregate_size instead of dwarf_aggregate_size and pass depth. 416da0c48c4Sopenharmony_ci (aggregate_size): New depth argument. Check depth isn't bigger 417da0c48c4Sopenharmony_ci than MAX_DEPTH (256). Pass depth to recursive calls. 418da0c48c4Sopenharmony_ci (dwarf_aggregate_size): ass zero as depth to aggregate_size. 419da0c48c4Sopenharmony_ci 420da0c48c4Sopenharmony_ci2018-06-18 Mark Wielaard <mark@klomp.org> 421da0c48c4Sopenharmony_ci 422da0c48c4Sopenharmony_ci * dwarf_peel_type.c (dwarf_peel_type): Limit modifier chain to 64. 423da0c48c4Sopenharmony_ci 424da0c48c4Sopenharmony_ci2018-06-18 Mark Wielaard <mark@klomp.org> 425da0c48c4Sopenharmony_ci 426da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (aggregate_size): Check die is not NULL. 427da0c48c4Sopenharmony_ci 428da0c48c4Sopenharmony_ci2018-06-17 Luiz Angelo Daros de Luca <luizluca@gmail.com> 429da0c48c4Sopenharmony_ci 430da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Intialize filelist early. 431da0c48c4Sopenharmony_ci 432da0c48c4Sopenharmony_ci2018-06-15 Mark Wielaard <mark@klomp.org> 433da0c48c4Sopenharmony_ci 434da0c48c4Sopenharmony_ci * dwarf_getlocation.c (check_constant_offset): Clarify DW_FORM_data16 435da0c48c4Sopenharmony_ci isn't really a constant. 436da0c48c4Sopenharmony_ci (dwarf_getlocation): Don't handle DW_FORM_data16 as block. 437da0c48c4Sopenharmony_ci (dwarf_getlocation_addr): Likewise. 438da0c48c4Sopenharmony_ci (dwarf_getlocations): Likewise. 439da0c48c4Sopenharmony_ci 440da0c48c4Sopenharmony_ci2018-06-12 Mark Wielaard <mark@klomp.org> 441da0c48c4Sopenharmony_ci 442da0c48c4Sopenharmony_ci * memory-access.h (read_3ubyte_unaligned_inc): New define. 443da0c48c4Sopenharmony_ci 444da0c48c4Sopenharmony_ci2018-06-12 Mark Wielaard <mark@klomp.org> 445da0c48c4Sopenharmony_ci 446da0c48c4Sopenharmony_ci * libdw.h (__libdw_dieabbrev): Set die->abbrev to DWARF_END_ABBREV 447da0c48c4Sopenharmony_ci on failure. 448da0c48c4Sopenharmony_ci 449da0c48c4Sopenharmony_ci2018-06-10 Mark Wielaard <mark@klomp.org> 450da0c48c4Sopenharmony_ci 451da0c48c4Sopenharmony_ci * dwarf_attr_integrate.c (dwarf_attr_integrate): Stop after 16 DIE 452da0c48c4Sopenharmony_ci ref chains. 453da0c48c4Sopenharmony_ci * dwarf_hasattr_integrate.c (dwarf_hasattr_integrate): Likewise. 454da0c48c4Sopenharmony_ci 455da0c48c4Sopenharmony_ci2018-06-08 Mark Wielaard <mark@klomp.org> 456da0c48c4Sopenharmony_ci 457da0c48c4Sopenharmony_ci * dwarf_getabbrev.c (dwarf_getabbrev): Check die and offset. 458da0c48c4Sopenharmony_ci 459da0c48c4Sopenharmony_ci2018-06-08 Mark Wielaard <mark@klomp.org> 460da0c48c4Sopenharmony_ci 461da0c48c4Sopenharmony_ci * dwarf_get_units.c (dwarf_get_units): Handle existing error, no 462da0c48c4Sopenharmony_ci dwarf. 463da0c48c4Sopenharmony_ci 464da0c48c4Sopenharmony_ci2018-06-08 Mark Wielaard <mark@klomp.org> 465da0c48c4Sopenharmony_ci 466da0c48c4Sopenharmony_ci * dwarf_getlocation.c (store_implicit_value): Return error when 467da0c48c4Sopenharmony_ci seeing bad DWARF or when tsearch runs out of memory. 468da0c48c4Sopenharmony_ci (__libdw_intern_expression): Report error when store_implicit_value 469da0c48c4Sopenharmony_ci reported an error. 470da0c48c4Sopenharmony_ci 471da0c48c4Sopenharmony_ci2018-06-08 Mark Wielaard <mark@klomp.org> 472da0c48c4Sopenharmony_ci 473da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Sanity check ndirs and nfiles. 474da0c48c4Sopenharmony_ci 475da0c48c4Sopenharmony_ci2018-06-08 Mark Wielaard <mark@klomp.org> 476da0c48c4Sopenharmony_ci 477da0c48c4Sopenharmony_ci * dwarf_getlocation_attr.c (addr_valp): Set error and return NULL 478da0c48c4Sopenharmony_ci when there is no .debug_addr section. 479da0c48c4Sopenharmony_ci (dwarf_getlocation_attr): If addr_valp returns NULL, then return -1. 480da0c48c4Sopenharmony_ci 481da0c48c4Sopenharmony_ci2018-06-07 Mark Wielaard <mark@klomp.org> 482da0c48c4Sopenharmony_ci 483da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Report DWARF_E_VERSION, 484da0c48c4Sopenharmony_ci not DWARF_E_INVALID_DWARF on unknown version. Set address_size and 485da0c48c4Sopenharmony_ci offset_size to 8 when unknown. 486da0c48c4Sopenharmony_ci 487da0c48c4Sopenharmony_ci2018-06-06 Mark Wielaard <mark@klomp.org> 488da0c48c4Sopenharmony_ci 489da0c48c4Sopenharmony_ci * libdwP.h (__libdw_dieabbrev): Check DIE addr falls in cu. 490da0c48c4Sopenharmony_ci 491da0c48c4Sopenharmony_ci2018-06-06 Mark Wielaard <mark@klomp.org> 492da0c48c4Sopenharmony_ci 493da0c48c4Sopenharmony_ci * dwarf_getlocation_die.c (dwarf_getlocation_die): Check offset 494da0c48c4Sopenharmony_ci falls inside cu data. 495da0c48c4Sopenharmony_ci 496da0c48c4Sopenharmony_ci2018-06-05 Mark Wielaard <mark@klomp.org> 497da0c48c4Sopenharmony_ci 498da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Explicitly set diridx to -1 499da0c48c4Sopenharmony_ci in case dwarf_formudata fails. 500da0c48c4Sopenharmony_ci 501da0c48c4Sopenharmony_ci2018-06-05 Mark Wielaard <mark@klomp.org> 502da0c48c4Sopenharmony_ci 503da0c48c4Sopenharmony_ci * dwarf_getaranges (dwarf_getaranges): Free new_arange if 504da0c48c4Sopenharmony_ci __libdw_findcu fails. 505da0c48c4Sopenharmony_ci 506da0c48c4Sopenharmony_ci2018-06-05 Mark Wielaard <mark@klomp.org> 507da0c48c4Sopenharmony_ci 508da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Define dirarray early and 509da0c48c4Sopenharmony_ci check whether or not it is equal to dirstack on exit/out before 510da0c48c4Sopenharmony_ci cleanup. 511da0c48c4Sopenharmony_ci 512da0c48c4Sopenharmony_ci2018-06-05 Mark Wielaard <mark@klomp.org> 513da0c48c4Sopenharmony_ci 514da0c48c4Sopenharmony_ci * dwarf_getalt.c (find_debug_altlink): id_path array should be 2 515da0c48c4Sopenharmony_ci larger to contain MAX_BUILD_ID_BYTES. 516da0c48c4Sopenharmony_ci 517da0c48c4Sopenharmony_ci2018-05-31 Mark Wielaard <mark@klomp.org> 518da0c48c4Sopenharmony_ci 519da0c48c4Sopenharmony_ci * libdw_find_split_unit.c (try_split_file): New function extracted 520da0c48c4Sopenharmony_ci from... 521da0c48c4Sopenharmony_ci (__libdw_find_split_unit): ... here. Try both the relative and 522da0c48c4Sopenharmony_ci absolute paths to find a .dwo file. 523da0c48c4Sopenharmony_ci 524da0c48c4Sopenharmony_ci2018-05-30 Mark Wielaard <mark@klomp.org> 525da0c48c4Sopenharmony_ci 526da0c48c4Sopenharmony_ci * libdw/dwarf_getsrclines.c (read_srclines): Change ndir and 527da0c48c4Sopenharmony_ci ndirlist to size_t. Add check to see ndirlist doesn't overflow. 528da0c48c4Sopenharmony_ci 529da0c48c4Sopenharmony_ci2018-05-31 Mark Wielaard <mark@klomp.org> 530da0c48c4Sopenharmony_ci 531da0c48c4Sopenharmony_ci * dwarf_dieoffset.c: Check die->cu != NULL. Return -1, not ~0ul 532da0c48c4Sopenharmony_ci on failure. 533da0c48c4Sopenharmony_ci 534da0c48c4Sopenharmony_ci2018-05-29 Mark Wielaard <mark@klomp.org> 535da0c48c4Sopenharmony_ci 536da0c48c4Sopenharmony_ci * dwarf_cuoffset.c (dwarf_cuoffset): Check die->cu is not NULL. 537da0c48c4Sopenharmony_ci * dwarf_die_addr_die.c (dwarf_die_addr_die): Also search split 538da0c48c4Sopenharmony_ci Dwarfs. 539da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf): Add split_tree field. 540da0c48c4Sopenharmony_ci (__libdw_find_split_dbg_addr): New internal function definition. 541da0c48c4Sopenharmony_ci (__libdw_finddbg_cb): Likewise. 542da0c48c4Sopenharmony_ci * libdw_find_split_unit.c (__libdw_find_split_unit): Insert split 543da0c48c4Sopenharmony_ci Dwarf into skeleton dbg split_tree. 544da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_finddbg_cb): New function. 545da0c48c4Sopenharmony_ci (__libdw_find_split_dbg_addr): Likewise. 546da0c48c4Sopenharmony_ci * dwarf_end (dwarf_end): Destroy split_tree. 547da0c48c4Sopenharmony_ci 548da0c48c4Sopenharmony_ci2018-05-29 Mark Wielaard <mark@klomp.org> 549da0c48c4Sopenharmony_ci 550da0c48c4Sopenharmony_ci * dwarf.h: Add GNU DebugFission list entry encodings 551da0c48c4Sopenharmony_ci DW_LLE_GNU_end_of_list_entry, 552da0c48c4Sopenharmony_ci DW_LLE_GNU_base_address_selection_entry, 553da0c48c4Sopenharmony_ci DW_LLE_GNU_start_end_entry and DW_LLE_GNU_start_length_entry. 554da0c48c4Sopenharmony_ci * dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Handle 555da0c48c4Sopenharmony_ci GNU DebugFission list entries. 556da0c48c4Sopenharmony_ci 557da0c48c4Sopenharmony_ci2018-05-28 Mark Wielaard <mark@klomp.org> 558da0c48c4Sopenharmony_ci 559da0c48c4Sopenharmony_ci * libdw_find_split_unit.c (__libdw_find_split_unit): End split_dwarf 560da0c48c4Sopenharmony_ci only after we tried every unit id in it. 561da0c48c4Sopenharmony_ci 562da0c48c4Sopenharmony_ci2018-04-07 Mark Wielaard <mark@klomp.org> 563da0c48c4Sopenharmony_ci 564da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_CU): Add locs_base. 565da0c48c4Sopenharmony_ci (__libdw_cu_locs_base): New static inline function. 566da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Initialize locs_base. 567da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (valid_p): Create fake_loclists_cu if necessary. 568da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end): Clean up fake_loclists_cu. 569da0c48c4Sopenharmony_ci * dwarf_getlocation.c (initial_offset): Handle .debug_loclists. 570da0c48c4Sopenharmony_ci (getlocations_addr): Likewise. 571da0c48c4Sopenharmony_ci (dwarf_getlocation_addr): Likewise. 572da0c48c4Sopenharmony_ci * dwarf_getlocation_attr.c (attr_form_cu): Use fake_loclists_cu for 573da0c48c4Sopenharmony_ci DWARF5. 574da0c48c4Sopenharmony_ci (initial_offset): Handle DW_FORM_loclistx. 575da0c48c4Sopenharmony_ci * dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Handle 576da0c48c4Sopenharmony_ci .debug_loclists. 577da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf): Add fake_loclists_cu. 578da0c48c4Sopenharmony_ci 579da0c48c4Sopenharmony_ci2018-04-12 Mark Wielaard <mark@klomp.org> 580da0c48c4Sopenharmony_ci 581da0c48c4Sopenharmony_ci * dwarf.h: Add DWARF5 location list entry DW_LLE encodings. 582da0c48c4Sopenharmony_ci * begin_elf.c (dwarf_scnnames): Add IDX_debug_loclists. 583da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Remove DWARF_E_NO_LOCLIST. And replace 584da0c48c4Sopenharmony_ci with DWARF_E_NO_DEBUG_LOC, DWARF_E_NO_DEBUG_LOCLISTS and 585da0c48c4Sopenharmony_ci DWARF_E_NO_LOC_VALUE. 586da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Handle DW_AT_loclists_base 587da0c48c4Sopenharmony_ci and DW_FORM_loclistx. 588da0c48c4Sopenharmony_ci * dwarf_getlocation.c (attr_ok): Use DWARF_E_NO_LOC_VALUE. 589da0c48c4Sopenharmony_ci (initial_offset): Use DWARF_E_NO_DEBUG_LOC. 590da0c48c4Sopenharmony_ci * libdwP.h: Add IDX_debug_rnglists. Remove DWARF_E_NO_LOCLIST. 591da0c48c4Sopenharmony_ci Add DWARF_E_NO_DEBUG_LOC, DWARF_E_NO_DEBUG_LOCLISTS and 592da0c48c4Sopenharmony_ci DWARF_E_NO_LOC_VALUE. 593da0c48c4Sopenharmony_ci 594da0c48c4Sopenharmony_ci2018-05-25 Mark Wielaard <mark@klomp.org> 595da0c48c4Sopenharmony_ci 596da0c48c4Sopenharmony_ci * libdw_find_split_unit.c (__libdw_find_split_unit): Extract linking 597da0c48c4Sopenharmony_ci skeleton and split compile units code into... 598da0c48c4Sopenharmony_ci * libdwP (__libdw_link_skel_split): ...this new function. 599da0c48c4Sopenharmony_ci 600da0c48c4Sopenharmony_ci2018-04-06 Mark Wielaard <mark@klomp.org> 601da0c48c4Sopenharmony_ci 602da0c48c4Sopenharmony_ci * dwarf_formaddr.c (__libdw_addrx): New function, extracted from... 603da0c48c4Sopenharmony_ci (dwarf_formaddr): here. Use __libdw_addrx. 604da0c48c4Sopenharmony_ci * dwarf_getlocation.c (getlocations_addr): Pass cu to 605da0c48c4Sopenharmony_ci __libdw_read_begin_end_pair_inc. 606da0c48c4Sopenharmony_ci * dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Take cu as 607da0c48c4Sopenharmony_ci argument. Handle .debug_rnglists. 608da0c48c4Sopenharmony_ci (initial_offset): Handle .debug_rnglists and DW_FORM_rnglistx. 609da0c48c4Sopenharmony_ci (dwarf_ranges): Likewise. Check cu isn't NULL before use. Pass cu to 610da0c48c4Sopenharmony_ci __libdw_read_begin_end_pair_inc. 611da0c48c4Sopenharmony_ci * libdwP.h (__libdw_read_begin_end_pair_inc): Take cu as argument. 612da0c48c4Sopenharmony_ci (__libdw_cu_ranges_base): Handle DW_AT_rnglists_base. 613da0c48c4Sopenharmony_ci (__libdw_addrx): New function definition. 614da0c48c4Sopenharmony_ci 615da0c48c4Sopenharmony_ci2018-04-11 Mark Wielaard <mark@klomp.org> 616da0c48c4Sopenharmony_ci 617da0c48c4Sopenharmony_ci * dwarf.h: Add DWARF5 range list entry DW_RLE encodings. 618da0c48c4Sopenharmony_ci * begin_elf.c (dwarf_scnnames): Add IDX_debug_rnglists. 619da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add DWARF_E_NO_DEBUG_RNGLISTS. 620da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Handle DW_AT_rnglists_base 621da0c48c4Sopenharmony_ci and DW_FORM_rnglistx. 622da0c48c4Sopenharmony_ci * dwarf_getscopes.c (pc_match): Also check for 623da0c48c4Sopenharmony_ci DWARF_E_NO_DEBUG_RNGLISTS. 624da0c48c4Sopenharmony_ci * libdwP.h: Add IDX_debug_rnglists. 625da0c48c4Sopenharmony_ci 626da0c48c4Sopenharmony_ci2018-05-25 Mark Wielaard <mark@klomp.org> 627da0c48c4Sopenharmony_ci 628da0c48c4Sopenharmony_ci * dwarf_getlocation_attr.c (__libdw_cu_addr_base): Cast offset to 629da0c48c4Sopenharmony_ci uintptr_t before returning as pointer. 630da0c48c4Sopenharmony_ci 631da0c48c4Sopenharmony_ci2018-05-22 Mark Wielaard <mark@klomp.org> 632da0c48c4Sopenharmony_ci 633da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_cu_base_address): Treat errors of 634da0c48c4Sopenharmony_ci getting lowpc or entrypc the same as missing base address (zero). 635da0c48c4Sopenharmony_ci * dwarf_highpc (dwarf_highpc): Handle any address form. Always set 636da0c48c4Sopenharmony_ci error when attribute could not be found. 637da0c48c4Sopenharmony_ci 638da0c48c4Sopenharmony_ci2018-05-21 Mark Wielaard <mark@klomp.org> 639da0c48c4Sopenharmony_ci 640da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (valid_p): Add a fake_addr_cu to the result. 641da0c48c4Sopenharmony_ci * dwarf_end.c (cu_free): Disconnect the fake_addr_cu from the split 642da0c48c4Sopenharmony_ci dwarf if shared with skeleton. 643da0c48c4Sopenharmony_ci (dwarf_end): release fake_addr_cu. 644da0c48c4Sopenharmony_ci * dwarf_formaddr.c (__libdw_cu_addr_base): Move to... 645da0c48c4Sopenharmony_ci * libdwP.h (__libdw_cu_addr_base): ... here. 646da0c48c4Sopenharmony_ci (struct Dwarf): Add fake_addr_cu field. 647da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Handle 648da0c48c4Sopenharmony_ci DW_FORM_GNU_addr_index and DW_FORM_addrx[1234]. 649da0c48c4Sopenharmony_ci * dwarf_getlocation_attr.c (addr_valp): New static function. 650da0c48c4Sopenharmony_ci (dwarf_getlocation_attr): Create attribute for values of 651da0c48c4Sopenharmony_ci DW_OP_GNU_const_index, DW_OP_constx and DW_OP_GNU_addr_index and 652da0c48c4Sopenharmony_ci DW_OP_addrx. 653da0c48c4Sopenharmony_ci * libdw_find_split_unit.c (__libdw_find_split_unit): Connect 654da0c48c4Sopenharmony_ci IDX_debug_addr sectiondata and fake_addr_cu between split and 655da0c48c4Sopenharmony_ci skeleton. 656da0c48c4Sopenharmony_ci 657da0c48c4Sopenharmony_ci2018-05-20 Mark Wielaard <mark@klomp.org> 658da0c48c4Sopenharmony_ci 659da0c48c4Sopenharmony_ci * dwarf_cu_info.c: New file. 660da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_cu_info.c. 661da0c48c4Sopenharmony_ci * libdw.h (dwarf_cu_info): New function declaration. 662da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.171): Add dwarf_cu_info. 663da0c48c4Sopenharmony_ci 664da0c48c4Sopenharmony_ci2018-05-24 Mark Wielaard <mark@klomp.org> 665da0c48c4Sopenharmony_ci 666da0c48c4Sopenharmony_ci * dwarf_ranges.c (dwarf_ranges): Check for NULL cu. 667da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Initialize ranges_base. 668da0c48c4Sopenharmony_ci 669da0c48c4Sopenharmony_ci2018-05-18 Mark Wielaard <mark@klomp.org> 670da0c48c4Sopenharmony_ci 671da0c48c4Sopenharmony_ci * dwarf_formudata.c (__libdw_formptr): Handle the special case 672da0c48c4Sopenharmony_ci of IDX_debug_ranges for DW_UT_split_compile with version < 5. 673da0c48c4Sopenharmony_ci * dwarf_highpc.c (dwarf_highpc): Use dwarf_lowpc, check for 674da0c48c4Sopenharmony_ci split compile cudie. 675da0c48c4Sopenharmony_ci * dwarf_lowpc.c (dwarf_lowpc): Check for split compile cudie. 676da0c48c4Sopenharmony_ci * dwarf_ranges.c (dwarf_ranges): Switch cu and sectiondata for 677da0c48c4Sopenharmony_ci split compile units. 678da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_CU): Add ranges_base field. 679da0c48c4Sopenharmony_ci (__libdw_cu_ranges_base): New static inline function. 680da0c48c4Sopenharmony_ci 681da0c48c4Sopenharmony_ci2018-05-18 Mark Wielaard <mark@klomp.org> 682da0c48c4Sopenharmony_ci 683da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Init files to NULL. 684da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Handle split units by 685da0c48c4Sopenharmony_ci taking the line table from the skeleton. 686da0c48c4Sopenharmony_ci * dwarf_getsrcfiles.c (dwarf_getsrcfiles): Handle split units by 687da0c48c4Sopenharmony_ci only taking the files from .debug_line offset zero (if it exists), 688da0c48c4Sopenharmony_ci otherwise fall back to the skeleton. 689da0c48c4Sopenharmony_ci 690da0c48c4Sopenharmony_ci2018-05-17 Mark Wielaard <mark@klomp.org> 691da0c48c4Sopenharmony_ci 692da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (__libdw_debugdir): New function. 693da0c48c4Sopenharmony_ci (valid_p): Call __libdw_debugdir. 694da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end.c): Free debugdir. 695da0c48c4Sopenharmony_ci * dwarf_getalt.c (__libdw_filepath): Extract __libdw_debugdir logic. 696da0c48c4Sopenharmony_ci take debugdir as argument instead of fd. 697da0c48c4Sopenharmony_ci (find_debug_altlink): Call __libdw_filepath with debugdir. 698da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf): Add debugdir field. 699da0c48c4Sopenharmony_ci (__libdw_debugdir): New function prototype. 700da0c48c4Sopenharmony_ci (__libdw_filepath): Adjust prototype to take a const char * instead of 701da0c48c4Sopenharmony_ci an int. 702da0c48c4Sopenharmony_ci * libdw_find_split_unit.c (__libdw_find_split_unit): Call 703da0c48c4Sopenharmony_ci __libdw_filepath with debugdir. 704da0c48c4Sopenharmony_ci 705da0c48c4Sopenharmony_ci2018-05-17 Mark Wielaard <mark@klomp.org> 706da0c48c4Sopenharmony_ci 707da0c48c4Sopenharmony_ci * dwarf_attr_integrate.c (dwarf_attr_integrate): Handle split_compile 708da0c48c4Sopenharmony_ci unit DIE, search skeleton_compile unit DIE. 709da0c48c4Sopenharmony_ci * dwarf_hasattr_integrate.c (dwarf_hasattr_integrate): Likewise. 710da0c48c4Sopenharmony_ci * libdwP.h (is_cudie): Check cu is not NULL. 711da0c48c4Sopenharmony_ci 712da0c48c4Sopenharmony_ci2018-05-19 Mark Wielaard <mark@klomp.org> 713da0c48c4Sopenharmony_ci 714da0c48c4Sopenharmony_ci * libdwP.h (__libdw_find_split_unit): Mark as internal_function. 715da0c48c4Sopenharmony_ci 716da0c48c4Sopenharmony_ci2018-05-15 Mark Wielaard <mark@klomp.org> 717da0c48c4Sopenharmony_ci 718da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add libdw_find_split_unit.c. 719da0c48c4Sopenharmony_ci * dwarf_end.c (cu_free): Free split Dwarf. 720da0c48c4Sopenharmony_ci * dwarf_get_units.c (dwarf_get_units): Handle DW_UT_skeleton by 721da0c48c4Sopenharmony_ci calling __libdw_find_split_unit. 722da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_CU): Add split Dwarf_CU field. 723da0c48c4Sopenharmony_ci (__libdw_find_split_unit): New function prototype. 724da0c48c4Sopenharmony_ci (str_offsets_base_off): Use cu Dwarf if dbg is NULL. 725da0c48c4Sopenharmony_ci (filepath): Rename to ... 726da0c48c4Sopenharmony_ci (__libdw_filepath): This. Which is the actual function name in 727da0c48c4Sopenharmony_ci dwarf_getalt.c. 728da0c48c4Sopenharmony_ci (libdw_find_split_unit.c): New file. 729da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Initialize split to -1. 730da0c48c4Sopenharmony_ci 731da0c48c4Sopenharmony_ci2018-05-15 Mark Wielaard <mark@klomp.org> 732da0c48c4Sopenharmony_ci 733da0c48c4Sopenharmony_ci * libdwP.h (__libdw_first_die_from_cu_start): Adjust commented out 734da0c48c4Sopenharmony_ci asserts. 735da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): For version 4 DWARF if 736da0c48c4Sopenharmony_ci the cudie has a DW_AT_GNU_dwi_id set the unit_id8 and unit_type to 737da0c48c4Sopenharmony_ci DW_UT_skeleton or DW_UT_split_compile based on whether the cudie has 738da0c48c4Sopenharmony_ci child DIEs and a DW_AT_GNU_dwo_name attribute. 739da0c48c4Sopenharmony_ci 740da0c48c4Sopenharmony_ci2018-05-14 Mark Wielaard <mark@klomp.org> 741da0c48c4Sopenharmony_ci 742da0c48c4Sopenharmony_ci * dwarf.h: Add GNU Debug Fission extensions. DW_AT_GNU_dwo_name, 743da0c48c4Sopenharmony_ci DW_AT_GNU_dwo_id, DW_AT_GNU_ranges_base, DW_AT_GNU_addr_base, 744da0c48c4Sopenharmony_ci DW_AT_GNU_pubnames, DW_AT_GNU_pubtypes. DW_FORM_GNU_addr_index, 745da0c48c4Sopenharmony_ci DW_FORM_GNU_str_index. DW_OP_GNU_addr_index, DW_OP_GNU_const_index. 746da0c48c4Sopenharmony_ci * dwarf_formaddr.c (dwarf_formaddr): Handle DW_FORM_GNU_addr_index 747da0c48c4Sopenharmony_ci as DW_FORM_addrx. 748da0c48c4Sopenharmony_ci (__libdw_cu_addr_base): Check for both DW_AT_GNU_addr_base and 749da0c48c4Sopenharmony_ci DW_AT_addr_base. 750da0c48c4Sopenharmony_ci * dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_GNU_str_index 751da0c48c4Sopenharmony_ci as DW_FORM_strx. 752da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Recognize DW_AT_GNU_addr_base 753da0c48c4Sopenharmony_ci as addrptr. Recognize DW_AT_GNU_ranges_base as rangelistptr. 754da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): Handle 755da0c48c4Sopenharmony_ci DW_OP_GNU_addr_index as DW_OP_addrx and DW_OP_GNU_const_index as 756da0c48c4Sopenharmony_ci DW_OP_constx. 757da0c48c4Sopenharmony_ci * libdw_form.c (__libdw_form_val_compute_len): Handle 758da0c48c4Sopenharmony_ci DW_FORM_GNU_addr_index and DW_FORM_GNU_str_index taking an uleb128. 759da0c48c4Sopenharmony_ci 760da0c48c4Sopenharmony_ci2018-05-12 Mark Wielaard <mark@klomp.org> 761da0c48c4Sopenharmony_ci 762da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Also recognize .dwo section 763da0c48c4Sopenharmony_ci name variants. 764da0c48c4Sopenharmony_ci 765da0c48c4Sopenharmony_ci2018-05-11 Mark Wielaard <mark@klomp.org> 766da0c48c4Sopenharmony_ci 767da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Handle DW_AT_macros as macptr. 768da0c48c4Sopenharmony_ci * dwarf_getmacros.c (get_table_for_offset): Add DW_MACRO_define_sup, 769da0c48c4Sopenharmony_ci DW_MACRO_undef_sup, DW_MACRO_import_sup, DW_MACRO_define_strx and 770da0c48c4Sopenharmony_ci DW_MACRO_undef_strx. Add str_offsets_base_off to fake CU. Deal with 771da0c48c4Sopenharmony_ci DW_AT_macros. Use libdw_valid_user_form. 772da0c48c4Sopenharmony_ci 773da0c48c4Sopenharmony_ci2018-05-09 Mark Wielaard <mark@klomp.org> 774da0c48c4Sopenharmony_ci 775da0c48c4Sopenharmony_ci * dwarf_formstring.c (__libdw_cu_str_off_base): Moved to... 776da0c48c4Sopenharmony_ci * libdwP.h (__libdw_cu_str_off_base): ...here. Make static inline. 777da0c48c4Sopenharmony_ci (str_offsets_base_off): New internal function that also parses 778da0c48c4Sopenharmony_ci .debug_str_offsets header if necessary. 779da0c48c4Sopenharmony_ci 780da0c48c4Sopenharmony_ci2018-05-11 Mark Wielaard <mark@klomp.org> 781da0c48c4Sopenharmony_ci 782da0c48c4Sopenharmony_ci * dwarf_siblingof.c (dwarf_siblingof): Don't reference cu till it is 783da0c48c4Sopenharmony_ci known the Dwarf_Die is came from is valid. 784da0c48c4Sopenharmony_ci * libdwP.h (__libdw_dieabbrev): Check cu is not NULL. 785da0c48c4Sopenharmony_ci 786da0c48c4Sopenharmony_ci2018-05-08 Mark Wielaard <mark@klomp.org> 787da0c48c4Sopenharmony_ci 788da0c48c4Sopenharmony_ci * dwarf_formref.c (__libdw_formref): Explicitly don't handle 789da0c48c4Sopenharmony_ci DW_FORM_ref_sup4 and DW_FORM_ref_sup8. 790da0c48c4Sopenharmony_ci * dwarf_formref_die.c (dwarf_formref_die): Handle DW_FORM_ref_sup4 791da0c48c4Sopenharmony_ci and DW_FORM_ref_sup8. 792da0c48c4Sopenharmony_ci * dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_strp_sup 793da0c48c4Sopenharmony_ci as DW_FORM_GNU_strp_alt. 794da0c48c4Sopenharmony_ci 795da0c48c4Sopenharmony_ci2018-05-05 Mark Wielaard <mark@klomp.org> 796da0c48c4Sopenharmony_ci 797da0c48c4Sopenharmony_ci * dwarf.h: Add DWARF line content descriptions. 798da0c48c4Sopenharmony_ci * libdwP.h (libdw_valid_user_form): New static function. 799da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Check and parse version 5 800da0c48c4Sopenharmony_ci DWARF header, dir and file tables separately from older versions 801da0c48c4Sopenharmony_ci where different. 802da0c48c4Sopenharmony_ci 803da0c48c4Sopenharmony_ci2018-04-24 Mark Wielaard <mark@klomp.org> 804da0c48c4Sopenharmony_ci 805da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_scnnames): Add ".debug_line_str". 806da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add DWARF_E_NO_DEBUG_STR and 807da0c48c4Sopenharmony_ci DWARF_E_NO_DEBUG_LINE_STR. 808da0c48c4Sopenharmony_ci * dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_line_strp. 809da0c48c4Sopenharmony_ci Get data from either .debug_str or .debug_line_str. 810da0c48c4Sopenharmony_ci * libdwP.h: Add IDX_debug_line_str, DWARF_E_NO_DEBUG_STR and 811da0c48c4Sopenharmony_ci DWARF_E_NO_DEBUG_LINE_STR. 812da0c48c4Sopenharmony_ci 813da0c48c4Sopenharmony_ci2018-04-03 Mark Wielaard <mark@klomp.org> 814da0c48c4Sopenharmony_ci 815da0c48c4Sopenharmony_ci * dwarf_formudata.c (__libdw_formptr): Take and return const 816da0c48c4Sopenharmony_ci unsigned char pointers. 817da0c48c4Sopenharmony_ci * dwarf_getlocation.c (attr_base_address): Rename to... 818da0c48c4Sopenharmony_ci (__libdw_cu_base_address): this. Take Dwarf_CU, check and set 819da0c48c4Sopenharmony_ci base_address. 820da0c48c4Sopenharmony_ci (initial_offset_base): Renamed to... 821da0c48c4Sopenharmony_ci (initial_offset): this. Only provide offset. 822da0c48c4Sopenharmony_ci (getlocations_addr): Move data size check and 823da0c48c4Sopenharmony_ci address base addition into __libdw_read_begin_end_pair_inc. Use 824da0c48c4Sopenharmony_ci __libdw_cu_base_address and initial_offset. Drop Elf_Data NULL 825da0c48c4Sopenharmony_ci check (already done by initial_offset, through __libdw_formptr). 826da0c48c4Sopenharmony_ci (dwarf_getlocations): Use __libdw_cu_base_address and initial_offset. 827da0c48c4Sopenharmony_ci Drop Elf_Data NULL check. 828da0c48c4Sopenharmony_ci * dwarf_ranges.c (__libdw_read_begin_end_pair_inc): Change argument 829da0c48c4Sopenharmony_ci type of readp to Add readend argument. Check data size. Include base 830da0c48c4Sopenharmony_ci in begin and end result. 831da0c48c4Sopenharmony_ci (initial_offset): New static function. 832da0c48c4Sopenharmony_ci (dwarf_ranges): Don't check Elf_Data being NULL (already done by 833da0c48c4Sopenharmony_ci initial_offset, through __libdw_formptr). Use __libdw_cu_base_address 834da0c48c4Sopenharmony_ci and initial_offset. Remove base check and addition (already done by 835da0c48c4Sopenharmony_ci __libdw_read_begin_end_pair_inc. 836da0c48c4Sopenharmony_ci * libdwP.h (Dwarf_CU): Add base_address field. 837da0c48c4Sopenharmony_ci (__libdw_read_begin_end_pair_inc): Change argument type of readp to 838da0c48c4Sopenharmony_ci const. Add readend argument. 839da0c48c4Sopenharmony_ci (__libdw_formptr): Take and return const unsigned char pointers. 840da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Initialize Dwarf_CU 841da0c48c4Sopenharmony_ci base_address. 842da0c48c4Sopenharmony_ci 843da0c48c4Sopenharmony_ci2018-04-04 Mark Wielaard <mark@klomp.org> 844da0c48c4Sopenharmony_ci 845da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Initialize Dwarf_CU 846da0c48c4Sopenharmony_ci addr_base and str_off_base. 847da0c48c4Sopenharmony_ci 848da0c48c4Sopenharmony_ci2018-03-23 Mark Wielaard <mark@klomp.org> 849da0c48c4Sopenharmony_ci 850da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_scnnames): Add IDX_debug_str_offsets, 851da0c48c4Sopenharmony_ci increase size. 852da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add DWARF_E_NO_STR_OFFSETS. 853da0c48c4Sopenharmony_ci * dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_strx[1234]. 854da0c48c4Sopenharmony_ci (__libdw_cu_str_off_base): New function. 855da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Handle IDX_debug_str_offsets 856da0c48c4Sopenharmony_ci as stroffsetsptr. 857da0c48c4Sopenharmony_ci * libdwP.h: Add IDX_debug_str_offsets and DWARF_E_NO_STR_OFFSETS. 858da0c48c4Sopenharmony_ci (struct Dwarf_CU): Add str_off_base field. 859da0c48c4Sopenharmony_ci (__libdw_cu_str_off_base): New function declaration. 860da0c48c4Sopenharmony_ci 861da0c48c4Sopenharmony_ci2018-03-22 Mark Wielaard <mark@klomp.org> 862da0c48c4Sopenharmony_ci 863da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_scnnames): Add IDX_debug_addr. 864da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add DWARF_E_NO_DEBUG_ADDR. 865da0c48c4Sopenharmony_ci * dwarf_formaddr.c (dwarf_formaddr): Handle DW_FORM_addrx[1234]. 866da0c48c4Sopenharmony_ci (__libdw_cu_addr_base): New function. 867da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Handle DW_AT_addr_base as 868da0c48c4Sopenharmony_ci addrptr. 869da0c48c4Sopenharmony_ci * libdwP.h: Add IDX_debug_addr and DWARF_E_NO_DEBUG_ADDR. 870da0c48c4Sopenharmony_ci (struct Dwarf_CU): Add addr_base field. 871da0c48c4Sopenharmony_ci (__libdw_cu_addr_base): New function definition. 872da0c48c4Sopenharmony_ci * memory-access.h (file_byte_order): New static function. 873da0c48c4Sopenharmony_ci (read_3ubyte_unaligned): New inline function. 874da0c48c4Sopenharmony_ci 875da0c48c4Sopenharmony_ci2018-03-29 Mark Wielaard <mark@klomp.org> 876da0c48c4Sopenharmony_ci 877da0c48c4Sopenharmony_ci * libdw.h (dwarf_decl_file): Extend documentation. 878da0c48c4Sopenharmony_ci (dwarf_linesrc): Likewise. 879da0c48c4Sopenharmony_ci (dwarf_filesrc): Likewise. 880da0c48c4Sopenharmony_ci 881da0c48c4Sopenharmony_ci2018-03-06 Mark Wielaard <mark@klomp.org> 882da0c48c4Sopenharmony_ci 883da0c48c4Sopenharmony_ci * dwarf.h: Add DW_OP_implicit_pointer, DW_OP_addrx, DW_OP_constx, 884da0c48c4Sopenharmony_ci DW_OP_entry_value, DW_OP_const_type, DW_OP_regval_type, 885da0c48c4Sopenharmony_ci DW_OP_deref_type, DW_OP_xderef_type, DW_OP_convert and 886da0c48c4Sopenharmony_ci DW_OP_reinterpret. 887da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): Handle 888da0c48c4Sopenharmony_ci DW_OP_convert, DW_OP_reinterpret, DW_OP_addrx, DW_OP_constx, 889da0c48c4Sopenharmony_ci DW_OP_regval_type, DW_OP_entry_value, DW_OP_implicit_pointer, 890da0c48c4Sopenharmony_ci DW_OP_deref_type, DW_OP_xderef_type and DW_OP_const_type. 891da0c48c4Sopenharmony_ci * dwarf_getlocation_attr.c (dwarf_getlocation_attr): Handle 892da0c48c4Sopenharmony_ci DW_OP_entry_value, DW_OP_const_type and DW_OP_implicit_pointer. 893da0c48c4Sopenharmony_ci * dwarf_getlocation_die.c (dwarf_getlocation_die): Handle 894da0c48c4Sopenharmony_ci DW_OP_implicit_pointer, DW_OP_convert, DW_OP_reinterpret, 895da0c48c4Sopenharmony_ci DW_OP_const_type, DW_OP_regval_type, DW_OP_deref_type and 896da0c48c4Sopenharmony_ci DW_OP_xderef_type. 897da0c48c4Sopenharmony_ci * dwarf_getlocation_implicit_pointer.c 898da0c48c4Sopenharmony_ci (dwarf_getlocation_implicit_pointer): Handle DW_OP_implicit_pointer. 899da0c48c4Sopenharmony_ci 900da0c48c4Sopenharmony_ci2018-03-01 Mark Wielaard <mark@klomp.org> 901da0c48c4Sopenharmony_ci 902da0c48c4Sopenharmony_ci * dwarf.h: Add DW_AT_GNU_locviews and DW_AT_GNU_entry_view. 903da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Handle DW_AT_GNU_locviews 904da0c48c4Sopenharmony_ci as a loclistptr. 905da0c48c4Sopenharmony_ci 906da0c48c4Sopenharmony_ci2018-02-09 Mark Wielaard <mark@klomp.org> 907da0c48c4Sopenharmony_ci 908da0c48c4Sopenharmony_ci * dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_data16 as a 909da0c48c4Sopenharmony_ci 16 byte block. 910da0c48c4Sopenharmony_ci 911da0c48c4Sopenharmony_ci2018-02-09 Mark Wielaard <mark@klomp.org> 912da0c48c4Sopenharmony_ci 913da0c48c4Sopenharmony_ci * dwarf_child.c (__libdw_find_attr): Handle DW_FORM_implicit_const. 914da0c48c4Sopenharmony_ci * dwarf_formsdata.c (dwarf_formsdata): Likewise. 915da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Likewise. 916da0c48c4Sopenharmony_ci * dwarf_getabbrev.c (__libdw_getabbrev): Likewise. 917da0c48c4Sopenharmony_ci * dwarf_getattrs.c (dwarf_getattrs): Likewise. 918da0c48c4Sopenharmony_ci * dwarf_hasattr.c (dwarf_hasattr): Likewise. 919da0c48c4Sopenharmony_ci * dwarf_getabbrevattr.c (dwarf_getabbrevattr_data): New function 920da0c48c4Sopenharmony_ci that will also return any data associated with the abbrev. Which 921da0c48c4Sopenharmony_ci currently is only for DW_FORM_implicit_const. Based on... 922da0c48c4Sopenharmony_ci (dwarf_getabbrevattr): ... this function. Which now just calls 923da0c48c4Sopenharmony_ci dwarf_getabbrevattr_data. 924da0c48c4Sopenharmony_ci * libdw.h (dwarf_getabbrevattr_data): Declare new function. 925da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.170): Add dwarf_getabbrevattr_data. 926da0c48c4Sopenharmony_ci * libdwP.h (dwarf_getabbrevattr_data): INTDECL. 927da0c48c4Sopenharmony_ci * memory-access.h (__libdw_get_sleb128_unchecked): New inlined 928da0c48c4Sopenharmony_ci function based on __libdw_get_uleb128_unchecked. 929da0c48c4Sopenharmony_ci 930da0c48c4Sopenharmony_ci2018-02-08 Mark Wielaard <mark@klomp.org> 931da0c48c4Sopenharmony_ci 932da0c48c4Sopenharmony_ci * dwarf.h: Add DWARF5 DW_FORMs. 933da0c48c4Sopenharmony_ci * libdwP.h (__libdw_form_val_compute_len): Handle fix length 934da0c48c4Sopenharmony_ci DW_FORM_implicit_const, DW_FORM_addrx[1234], DW_FORM_strx[1234], 935da0c48c4Sopenharmony_ci DW_FORM_ref_sup[48] and DW_FORM_data16. 936da0c48c4Sopenharmony_ci * libdw_form.c (__libdw_form_val_compute_len): DW_FORM_strp_sup 937da0c48c4Sopenharmony_ci and DW_FORM_line_strp are offset_size. DW_FORM_addrx, DW_FORM_strx, 938da0c48c4Sopenharmony_ci DW_FORM_loclistx and DW_FORM_rnglistx are uleb128. 939da0c48c4Sopenharmony_ci 940da0c48c4Sopenharmony_ci2018-01-30 Mark Wielaard <mark@klomp.org> 941da0c48c4Sopenharmony_ci 942da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_get_units.c. 943da0c48c4Sopenharmony_ci * dwarf_get_units.c: New file. 944da0c48c4Sopenharmony_ci * libdw.h (dwarf_get_units): New function declaration. 945da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.170): Add dwarf_get_units. 946da0c48c4Sopenharmony_ci 947da0c48c4Sopenharmony_ci2018-01-29 Mark Wielaard <mark@klomp.org> 948da0c48c4Sopenharmony_ci 949da0c48c4Sopenharmony_ci * dwarf.h (DW_UT_*): Add DWARF Unit Header Types. 950da0c48c4Sopenharmony_ci * dwarf_cu_die.c (dwarf_cu_die): Rename arguments. type_signaturep 951da0c48c4Sopenharmony_ci is now called unit_idp. type_offsetp is now called subdie_offsetp. 952da0c48c4Sopenharmony_ci * dwarf_formref_die.c (dwarf_formref_die): Scan both .debug_info 953da0c48c4Sopenharmony_ci and .debug_types sections for type units when type signature ref 954da0c48c4Sopenharmony_ci not found. 955da0c48c4Sopenharmony_ci * dwarf_getaranges.c (dwarf_getaranges): Use __libdw_findcu and 956da0c48c4Sopenharmony_ci __libdw_first_die_off_from_cu instead of trying by hand. 957da0c48c4Sopenharmony_ci * dwarf_getlocation_die.c (dwarf_getlocation_die): Use ISV4TU 958da0c48c4Sopenharmony_ci instead of checking type_offset by hand. 959da0c48c4Sopenharmony_ci * dwarf_getlocation_implicit_pointer.c 960da0c48c4Sopenharmony_ci (dwarf_getlocation_implicit_pointer): Likewise. 961da0c48c4Sopenharmony_ci * dwarf_nextcu.c (dwarf_next_unit): Call __libdw_next_unit. 962da0c48c4Sopenharmony_ci (__libdw_next_unit): New function based on dwarf_next_unit with 963da0c48c4Sopenharmony_ci DWARF5 header support. 964da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_CU): Renamed type_offset to subdie_offset 965da0c48c4Sopenharmony_ci and type_sig8 to unit_id8. 966da0c48c4Sopenharmony_ci (ISV4TU): New macro to determine whether a CU is a version 4 type 967da0c48c4Sopenharmony_ci unit (which comes from the .debug_types section). 968da0c48c4Sopenharmony_ci (DIE_OFFSET_FROM_CU_OFFSET): Replaced macro by real function... 969da0c48c4Sopenharmony_ci (__libdw_first_die_from_cu_start): ... that also handles DWARF5 970da0c48c4Sopenharmony_ci unit headers. 971da0c48c4Sopenharmony_ci (__libdw_first_die_off_from_cu): New function that calls the above 972da0c48c4Sopenharmony_ci using the CU fields. 973da0c48c4Sopenharmony_ci (CUDIE): Use __libdw_first_die_off_from_cu. 974da0c48c4Sopenharmony_ci (SUBDIE): New macro that provides the DIE for a CU using the 975da0c48c4Sopenharmony_ci subdie_offset. 976da0c48c4Sopenharmony_ci (__libdw_next_unit): New internal function declaration. 977da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Use __libdw_next_unit. 978da0c48c4Sopenharmony_ci Accept DWARF version 5 headers. Setup unit_type. 979da0c48c4Sopenharmony_ci (__libdw_findcu): Rename debug_types argument to v4_debug_types 980da0c48c4Sopenharmony_ci argument (to indicate that we are looking in the .debug_types 981da0c48c4Sopenharmony_ci section). Support finding the exact offset (unit header start). 982da0c48c4Sopenharmony_ci 983da0c48c4Sopenharmony_ci2018-01-25 Mark Wielaard <mark@klomp.org> 984da0c48c4Sopenharmony_ci 985da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_die_addr_die.c. 986da0c48c4Sopenharmony_ci * dwarf_die_addr_die.c: New file. 987da0c48c4Sopenharmony_ci * libdw.h (dwarf_die_addr_die): New function declaration. 988da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.171): New section with dwarf_die_addr_die. 989da0c48c4Sopenharmony_ci * libdwP.h (__libdw_findcu_addr): New internal function declaration. 990da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_findcu_addr): New internal function. 991da0c48c4Sopenharmony_ci 992da0c48c4Sopenharmony_ci2018-02-09 Joshua Watt <JPEWhacker@gmail.com> 993da0c48c4Sopenharmony_ci 994da0c48c4Sopenharmony_ci * cfi.c (execute_cfi): Use FALLTHROUGH macro instead of comment. 995da0c48c4Sopenharmony_ci * dwarf_frame_register.c (dwarf_frame_register): Likewise. 996da0c48c4Sopenharmony_ci 997da0c48c4Sopenharmony_ci2018-01-22 Mark Wielaard <mark@klomp.org> 998da0c48c4Sopenharmony_ci 999da0c48c4Sopenharmony_ci * Makefile.am (AM_CPPFLAGS): Add -I libdwelf. 1000da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_begin_elf): Initialize Dwarf alt_fd to -1. 1001da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end): Call dwarf_end and close on the alt_dwarf 1002da0c48c4Sopenharmony_ci and alt_fd if we allocated them. 1003da0c48c4Sopenharmony_ci * dwarf_fromref_die.c (dwarf_formref_die): Call dwarf_getalt. 1004da0c48c4Sopenharmony_ci * dwarf_formstring.c (dwarf_formstring): Likewise. 1005da0c48c4Sopenharmony_ci * dwarf_getalt.c (__libdw_filepath): New internal function. 1006da0c48c4Sopenharmony_ci (find_debug_altlink): New static function. 1007da0c48c4Sopenharmony_ci (dwarf_getalt): Check Dwarf alt_dwarf and call find_debug_altlink. 1008da0c48c4Sopenharmony_ci Cache result. 1009da0c48c4Sopenharmony_ci * dwarf_setalt.c (dwarf_setalt): Clean up Dwarf alt_dwarf and alt_fd 1010da0c48c4Sopenharmony_ci if we allocated. 1011da0c48c4Sopenharmony_ci * libdw.h (dwarf_getalt): Extend documentation. 1012da0c48c4Sopenharmony_ci (dwarf_setalt): Likewise. 1013da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf): Add alt_fd field. 1014da0c48c4Sopenharmony_ci (filepath): Declare new internal function. 1015da0c48c4Sopenharmony_ci 1016da0c48c4Sopenharmony_ci2018-01-14 Petr Machata <pmachata@gmail.com> 1017da0c48c4Sopenharmony_ci 1018da0c48c4Sopenharmony_ci * dwarf_formsdata.c (dwarf_formsdata): 1019da0c48c4Sopenharmony_ci <DW_FORM_data1>: Cast to signed char. 1020da0c48c4Sopenharmony_ci <DW_FORM_data2,4,8>: Use read_*sbyte_unaligned instead of 1021da0c48c4Sopenharmony_ci read_*ubyte_unaligned. 1022da0c48c4Sopenharmony_ci 1023da0c48c4Sopenharmony_ci2017-12-26 Mark Wielaard <mark@klomp.org> 1024da0c48c4Sopenharmony_ci 1025da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_Abbrev): Pack struct. Remove attrcnt, 1026da0c48c4Sopenharmony_ci use bitfields for has_children and code. 1027da0c48c4Sopenharmony_ci * dwarf_getabbrev.c (__libdw_getabbrev): Don't count attrs. 1028da0c48c4Sopenharmony_ci * dwarf_getattrcnt.c (dwarf_getattrcnt): Count attrs. 1029da0c48c4Sopenharmony_ci 1030da0c48c4Sopenharmony_ci2017-12-26 Mark Wielaard <mark@klomp.org> 1031da0c48c4Sopenharmony_ci 1032da0c48c4Sopenharmony_ci * memory-access.h (__libdw_get_uleb128_unchecked): New function. 1033da0c48c4Sopenharmony_ci (get_uleb128_unchecked): New define. 1034da0c48c4Sopenharmony_ci * dwarf_child.c (__libdw_find_attr): Use get_uleb128_unchecked to 1035da0c48c4Sopenharmony_ci read attr name and form. 1036da0c48c4Sopenharmony_ci * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise. 1037da0c48c4Sopenharmony_ci * dwarf_getattrs.c (dwarf_getattrs): Likewise. 1038da0c48c4Sopenharmony_ci * dwarf_hasattr.c (dwarf_hasattr): Likewise. 1039da0c48c4Sopenharmony_ci 1040da0c48c4Sopenharmony_ci2017-12-28 Mark Wielaard <mark@klomp.org> 1041da0c48c4Sopenharmony_ci 1042da0c48c4Sopenharmony_ci * dwarf_offdie.c (__libdw_offdie): Check sectiondata exists. 1043da0c48c4Sopenharmony_ci 1044da0c48c4Sopenharmony_ci2017-05-09 Ulf Hermann <ulf.hermann@qt.io> 1045da0c48c4Sopenharmony_ci Mark Wielaard <mark@klomp.org> 1046da0c48c4Sopenharmony_ci 1047da0c48c4Sopenharmony_ci * libdwP.h (__libdw_in_section): Fix check for the upper border of 1048da0c48c4Sopenharmony_ci the range. 1049da0c48c4Sopenharmony_ci (__libdw_offset_in_section): Likewise. 1050da0c48c4Sopenharmony_ci 1051da0c48c4Sopenharmony_ci2017-12-20 Mark Wielaard <mark@klomp.org> 1052da0c48c4Sopenharmony_ci 1053da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_CU): Add sec_idx field. 1054da0c48c4Sopenharmony_ci (cu_sec_idx): Return cu->sec_idx. 1055da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Set cu sec_idx to 1056da0c48c4Sopenharmony_ci IDX_debug_info or IDX_debug_types. 1057da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (valid_p): Set fake_loc_cu->sec_idx to 1058da0c48c4Sopenharmony_ci IDX_debug_loc. 1059da0c48c4Sopenharmony_ci * dwarf_getmacros.c (read_macros): Set fake_cu->sec_idx to 1060da0c48c4Sopenharmony_ci IDX_debug_macro or IDX_debug_macinfo. 1061da0c48c4Sopenharmony_ci 1062da0c48c4Sopenharmony_ci2017-12-12 Mark Wielaard <mark@klomp.org> 1063da0c48c4Sopenharmony_ci 1064da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (dwarf_aggregate_size): Don't peel the 1065da0c48c4Sopenharmony_ci given DIE. Reserve memory for a new DIE first. 1066da0c48c4Sopenharmony_ci 1067da0c48c4Sopenharmony_ci2017-12-11 Dima Kogan <dima@secretsauce.net> 1068da0c48c4Sopenharmony_ci 1069da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (array_size): Handle multi-dimensional 1070da0c48c4Sopenharmony_ci arrays properly. 1071da0c48c4Sopenharmony_ci 1072da0c48c4Sopenharmony_ci2017-11-03 Mark Wielaard <mark@klomp.org> 1073da0c48c4Sopenharmony_ci 1074da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): Handle 1075da0c48c4Sopenharmony_ci DW_OP_GNU_variable_value. 1076da0c48c4Sopenharmony_ci * dwarf_getlocation_attr.c (dwarf_getlocation_attr): Likewise. 1077da0c48c4Sopenharmony_ci * dwarf_getlocation_die.c (dwarf_getlocation_die): Likewise. 1078da0c48c4Sopenharmony_ci 1079da0c48c4Sopenharmony_ci2017-11-03 Mark Wielaard <mark@klomp.org> 1080da0c48c4Sopenharmony_ci 1081da0c48c4Sopenharmony_ci * dwarf_getlocation.c (attr_ok): Always accept DW_FORM_exprloc. 1082da0c48c4Sopenharmony_ci Update list of acceptable attribute codes based on DWARF5. 1083da0c48c4Sopenharmony_ci 1084da0c48c4Sopenharmony_ci2017-11-03 Mark Wielaard <mark@klomp.org> 1085da0c48c4Sopenharmony_ci 1086da0c48c4Sopenharmony_ci * dwarf.h: Add DW_OP_GNU_variable_value. 1087da0c48c4Sopenharmony_ci 1088da0c48c4Sopenharmony_ci2017-10-03 Mark Wielaard <mark@klomp.org> 1089da0c48c4Sopenharmony_ci 1090da0c48c4Sopenharmony_ci * libdw.h: Define LIBDW_CIE_ID and use it in dwarf_cfi_cie_p. 1091da0c48c4Sopenharmony_ci 1092da0c48c4Sopenharmony_ci2017-08-18 Ulf Hermann <ulf.hermann@qt.io> 1093da0c48c4Sopenharmony_ci 1094da0c48c4Sopenharmony_ci * memory-access.h: Use attribute_packed. 1095da0c48c4Sopenharmony_ci 1096da0c48c4Sopenharmony_ci2017-02-27 Ulf Hermann <ulf.hermann@qt.io> 1097da0c48c4Sopenharmony_ci 1098da0c48c4Sopenharmony_ci * libdwP.h: Use attribute_hidden. 1099da0c48c4Sopenharmony_ci * libdw_alloc.c: Likewise. 1100da0c48c4Sopenharmony_ci 1101da0c48c4Sopenharmony_ci2017-02-27 Ulf Hermann <ulf.hermann@qt.io> 1102da0c48c4Sopenharmony_ci 1103da0c48c4Sopenharmony_ci * Makefile.am: Use fpic_CFLAGS and dso_LDFLAGS. 1104da0c48c4Sopenharmony_ci 1105da0c48c4Sopenharmony_ci2017-07-26 Mark Wielaard <mark@klomp.org> 1106da0c48c4Sopenharmony_ci 1107da0c48c4Sopenharmony_ci * dwarf.h: Add DW_MACRO_* and compat defines for DW_MACRO_GNU_*. 1108da0c48c4Sopenharmony_ci * dwarf_getmacros.c (get_table_for_offset): Accept either version 1109da0c48c4Sopenharmony_ci 4 or 5. Use DW_MACRO names instead of DW_MACRO_GNU names. 1110da0c48c4Sopenharmony_ci (read_macros): Use table version for fake_cu. 1111da0c48c4Sopenharmony_ci 1112da0c48c4Sopenharmony_ci2017-07-26 Mark Wielaard <mark@klomp.org> 1113da0c48c4Sopenharmony_ci 1114da0c48c4Sopenharmony_ci * dwarf_peel_type.c (dwarf_peel_type): Handle DW_TAG_immutable_type, 1115da0c48c4Sopenharmony_ci DW_TAG_packed_type and DW_TAG_shared_type. 1116da0c48c4Sopenharmony_ci * libdw.h (dwarf_peel_type): Extend documentation. 1117da0c48c4Sopenharmony_ci 1118da0c48c4Sopenharmony_ci2017-07-26 Mark Wielaard <mark@klomp.org> 1119da0c48c4Sopenharmony_ci 1120da0c48c4Sopenharmony_ci * dwarf.h: Add DW_DEFAULTED_no, DW_DEFAULTED_in_class and 1121da0c48c4Sopenharmony_ci DW_DEFAULTED_out_of_class. 1122da0c48c4Sopenharmony_ci 1123da0c48c4Sopenharmony_ci2017-07-26 Mark Wielaard <mark@klomp.org> 1124da0c48c4Sopenharmony_ci 1125da0c48c4Sopenharmony_ci * dwarf.h: Add DW_CC_pass_by_reference and DW_CC_pass_by_reference. 1126da0c48c4Sopenharmony_ci 1127da0c48c4Sopenharmony_ci2017-07-26 Mark Wielaard <mark@klomp.org> 1128da0c48c4Sopenharmony_ci 1129da0c48c4Sopenharmony_ci * dwarf_default_lower_bound.c: New file. 1130da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_default_lower_bound.c. 1131da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (array_size): Use dwarf_default_lower_bound. 1132da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add DWARF_E_UNKNOWN_LANGUAGE. 1133da0c48c4Sopenharmony_ci * libdw.h: Add dwarf_default_lower_bound. 1134da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.170): Add dwarf_default_lower_bound. 1135da0c48c4Sopenharmony_ci * libdwP.h: Add DWARF_E_UNKNOWN_LANGUAGE and 1136da0c48c4Sopenharmony_ci dwarf_default_lower_bound INTDECL. 1137da0c48c4Sopenharmony_ci 1138da0c48c4Sopenharmony_ci2017-07-26 Mark Wielaard <mark@klomp.org> 1139da0c48c4Sopenharmony_ci 1140da0c48c4Sopenharmony_ci * dwarf.h: Add DW_LANG_OpenCL, DW_LANG_Modula3, 1141da0c48c4Sopenharmony_ci DW_LANG_C_plus_plus_03, DW_LANG_OCaml, DW_LANG_Rust, DW_LANG_Swift, 1142da0c48c4Sopenharmony_ci DW_LANG_Julia, DW_LANG_Dylan, DW_LANG_RenderScript, DW_LANG_BLISS. 1143da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (array_size): Add lower bound for 1144da0c48c4Sopenharmony_ci DW_LANG_C_plus_plus_03, DW_LANG_Python, DW_LANG_OpenCL, 1145da0c48c4Sopenharmony_ci DW_LANG_Haskell, DW_LANG_OCaml, DW_LANG_Rust, DW_LANG_Swift, 1146da0c48c4Sopenharmony_ci DW_LANG_Dylan, DW_LANG_RenderScript, DW_LANG_Modula3, 1147da0c48c4Sopenharmony_ci DW_LANG_Julia and DW_LANG_BLISS. 1148da0c48c4Sopenharmony_ci 1149da0c48c4Sopenharmony_ci2017-07-26 Mark Wielaard <mark@klomp.org> 1150da0c48c4Sopenharmony_ci 1151da0c48c4Sopenharmony_ci * dwarf.h: Add DW_ATE_UCS and DW_ATE_ASCII. 1152da0c48c4Sopenharmony_ci 1153da0c48c4Sopenharmony_ci2017-07-25 Mark Wielaard <mark@klomp.org> 1154da0c48c4Sopenharmony_ci 1155da0c48c4Sopenharmony_ci * dwarf.h: Add DW_TAG_coarray_type, DW_TAG_generic_subrange, 1156da0c48c4Sopenharmony_ci DW_TAG_dynamic_type, DW_TAG_call_site, DW_TAG_call_site_parameter, 1157da0c48c4Sopenharmony_ci DW_TAG_skeleton_unit, DW_TAG_immutable_type. Add reserved comments 1158da0c48c4Sopenharmony_ci for currently unused numbers. 1159da0c48c4Sopenharmony_ci 1160da0c48c4Sopenharmony_ci2017-07-25 Mark Wielaard <mark@klomp.org> 1161da0c48c4Sopenharmony_ci 1162da0c48c4Sopenharmony_ci * dwarf.h (DWARF attributes enum): Remove DW_AT_subscr_data, 1163da0c48c4Sopenharmony_ci DW_AT_element_list and DW_AT_member. Add DWARF5 attribute constants. 1164da0c48c4Sopenharmony_ci (DW_AT_subscr_data, DW_AT_element_list, DW_AT_member): New defines. 1165da0c48c4Sopenharmony_ci 1166da0c48c4Sopenharmony_ci2017-07-21 Mark Wielaard <mark@klomp.org> 1167da0c48c4Sopenharmony_ci 1168da0c48c4Sopenharmony_ci * dwarf_line_file.c: New file. 1169da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_line_file.c. 1170da0c48c4Sopenharmony_ci * libdw.h (dwarf_line_file): New function declaration. 1171da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.170): New. Add dwarf_line_file. 1172da0c48c4Sopenharmony_ci 1173da0c48c4Sopenharmony_ci2017-02-17 Ulf Hermann <ulf.hermann@qt.io> 1174da0c48c4Sopenharmony_ci 1175da0c48c4Sopenharmony_ci * Makefile.am: Add libdw_so_LIBS to specify the archives libdw is is 1176da0c48c4Sopenharmony_ci made of, libdw_so_DEPS for libraries it depends on (including 1177da0c48c4Sopenharmony_ci libeu.a), libdw_so_LDLIBS to specify libraries libdw links against. 1178da0c48c4Sopenharmony_ci (libdw.so$(EXEEXT)): Add $(libdw_so_LDLIBS), remove enumeration of 1179da0c48c4Sopenharmony_ci library dependencies, use libdw_so_LIBS rather than relying on the 1180da0c48c4Sopenharmony_ci order of dependencies specified, add -z,relro. 1181da0c48c4Sopenharmony_ci 1182da0c48c4Sopenharmony_ci2017-04-20 Ulf Hermann <ulf.hermann@qt.io> 1183da0c48c4Sopenharmony_ci 1184da0c48c4Sopenharmony_ci * libdw.h: Remove attribute macro declarations and use 1185da0c48c4Sopenharmony_ci __noreturn_attribute__ as defined in libelf.h. 1186da0c48c4Sopenharmony_ci 1187da0c48c4Sopenharmony_ci2017-04-20 Ulf Hermann <ulf.hermann@qt.io> 1188da0c48c4Sopenharmony_ci 1189da0c48c4Sopenharmony_ci * dwarf_begin_elf.c: Include endian.h. 1190da0c48c4Sopenharmony_ci 1191da0c48c4Sopenharmony_ci2017-03-30 Mark Wielaard <mjw@redhat.com> 1192da0c48c4Sopenharmony_ci 1193da0c48c4Sopenharmony_ci * dwarf_peel_type.c (dwarf_peel_type): Call dwarf_attr_integrate on 1194da0c48c4Sopenharmony_ci result. 1195da0c48c4Sopenharmony_ci 1196da0c48c4Sopenharmony_ci2016-10-22 Mark Wielaard <mjw@redhat.com> 1197da0c48c4Sopenharmony_ci 1198da0c48c4Sopenharmony_ci * dwarf.h: Correct spelling of DW_LANG_PLI. Add compatibility define. 1199da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (array_size): Use correct spelling of 1200da0c48c4Sopenharmony_ci DW_LANG_PLI. 1201da0c48c4Sopenharmony_ci 1202da0c48c4Sopenharmony_ci2016-11-02 Mark Wielaard <mjw@redhat.com> 1203da0c48c4Sopenharmony_ci 1204da0c48c4Sopenharmony_ci * cfi.c (execute_cfi): Add fallthrough comments. 1205da0c48c4Sopenharmony_ci * encoded-value.h (encoded_value_size): Add explicit return instead 1206da0c48c4Sopenharmony_ci of relying on fallthrough. 1207da0c48c4Sopenharmony_ci * dwfl_report_elf.c (__libdwfl_elf_address_range): Add fallthrough 1208da0c48c4Sopenharmony_ci comment. 1209da0c48c4Sopenharmony_ci 1210da0c48c4Sopenharmony_ci2016-10-11 Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> 1211da0c48c4Sopenharmony_ci 1212da0c48c4Sopenharmony_ci * dwarf_getpubnames.c: Remove sys/param.h include, add system.h. 1213da0c48c4Sopenharmony_ci * libdw_alloc.c: Likewise. 1214da0c48c4Sopenharmony_ci 1215da0c48c4Sopenharmony_ci2016-07-08 Mark Wielaard <mjw@redhat.com> 1216da0c48c4Sopenharmony_ci 1217da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.167): New. Add dwelf_strtab_init, 1218da0c48c4Sopenharmony_ci dwelf_strtab_add, dwelf_strtab_add_len, dwelf_strtab_finalize, 1219da0c48c4Sopenharmony_ci dwelf_strent_off, dwelf_strent_str and dwelf_strtab_free. 1220da0c48c4Sopenharmony_ci 1221da0c48c4Sopenharmony_ci2016-02-13 Mark Wielaard <mjw@redhat.com> 1222da0c48c4Sopenharmony_ci 1223da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Calculate ndirs first, then 1224da0c48c4Sopenharmony_ci assign to ndirlist. 1225da0c48c4Sopenharmony_ci 1226da0c48c4Sopenharmony_ci2015-12-18 Mark Wielaard <mjw@redhat.com> 1227da0c48c4Sopenharmony_ci 1228da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf): Remove sectiondata_gzip_mask. 1229da0c48c4Sopenharmony_ci (__libdw_free_zdata): Remove. 1230da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (inflate_section): Remove. 1231da0c48c4Sopenharmony_ci (check_section): Remove __libdw_free_zdata calls. Use elf_compress 1232da0c48c4Sopenharmony_ci and elf_compress_gnu to decompress if necessary. 1233da0c48c4Sopenharmony_ci (valid_p): Remove __libdw_free_zdata calls. 1234da0c48c4Sopenharmony_ci (scngrp_read): Use elf_compress if section is compressed. Remove 1235da0c48c4Sopenharmony_ci __libdw_free_zdata calls. 1236da0c48c4Sopenharmony_ci * dwarf_end.c (__libdw_free_zdata): Remove. 1237da0c48c4Sopenharmony_ci (dwarf_end): Don't call __libdw_free_zdata. 1238da0c48c4Sopenharmony_ci 1239da0c48c4Sopenharmony_ci2015-10-28 Mark Wielaard <mjw@redhat.com> 1240da0c48c4Sopenharmony_ci 1241da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.165): New. Add dwelf_scn_gnu_compressed_size. 1242da0c48c4Sopenharmony_ci 1243da0c48c4Sopenharmony_ci2015-12-02 Mark Wielaard <mjw@redhat.com> 1244da0c48c4Sopenharmony_ci 1245da0c48c4Sopenharmony_ci * fde.c (intern_fde): Don't leak duplicate FDEs. 1246da0c48c4Sopenharmony_ci 1247da0c48c4Sopenharmony_ci2015-12-01 Mark Wielaard <mjw@redhat.com> 1248da0c48c4Sopenharmony_ci 1249da0c48c4Sopenharmony_ci * fde.c (intern_fde): Don't intern an fde that doesn't cover a 1250da0c48c4Sopenharmony_ci valid code range. 1251da0c48c4Sopenharmony_ci 1252da0c48c4Sopenharmony_ci2015-12-01 Mark Wielaard <mjw@redhat.com> 1253da0c48c4Sopenharmony_ci 1254da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end): Call cu_free on fake_loc_cu if it exists. 1255da0c48c4Sopenharmony_ci 1256da0c48c4Sopenharmony_ci2015-10-14 Chih-Hung Hsieh <chh@google.com> 1257da0c48c4Sopenharmony_ci 1258da0c48c4Sopenharmony_ci * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Move recursive 1259da0c48c4Sopenharmony_ci functions 'add_bkpt', 'entrypc_bkpt', and 'search_range' to file scope. 1260da0c48c4Sopenharmony_ci 1261da0c48c4Sopenharmony_ci2015-10-14 Chih-Hung Hsieh <chh@google.com> 1262da0c48c4Sopenharmony_ci 1263da0c48c4Sopenharmony_ci * libdw_visit_scopes.c (__libdw_visit_scopes): Move recursive nested 1264da0c48c4Sopenharmony_ci function 'walk_children' to file scope; inline 'recurse' at its call 1265da0c48c4Sopenharmony_ci site. 1266da0c48c4Sopenharmony_ci 1267da0c48c4Sopenharmony_ci2015-10-19 Mark Wielaard <mjw@redhat.com> 1268da0c48c4Sopenharmony_ci 1269da0c48c4Sopenharmony_ci * frame-cache.c (__libdw_destroy_frame_cache): Call ebl_closebackend 1270da0c48c4Sopenharmony_ci if necessary. 1271da0c48c4Sopenharmony_ci 1272da0c48c4Sopenharmony_ci2015-10-16 Dmitry V. Levin <ldv@altlinux.org> 1273da0c48c4Sopenharmony_ci 1274da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Initialize state early. 1275da0c48c4Sopenharmony_ci 1276da0c48c4Sopenharmony_ci2015-10-13 Chih-Hung Hsieh <chh@google.com> 1277da0c48c4Sopenharmony_ci 1278da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Move nested functions 1279da0c48c4Sopenharmony_ci 'advance_pc' and 'add_new_line' to file scope and keep many 1280da0c48c4Sopenharmony_ci local state variables within one structure. 1281da0c48c4Sopenharmony_ci 1282da0c48c4Sopenharmony_ci2015-10-13 Chih-Hung Hsieh <chh@google.com> 1283da0c48c4Sopenharmony_ci 1284da0c48c4Sopenharmony_ci * dwarf_getscopevar.c (dwarf_getscopevar): Move nested 1285da0c48c4Sopenharmony_ci function 'file_matches' to file scope. 1286da0c48c4Sopenharmony_ci 1287da0c48c4Sopenharmony_ci2015-10-16 Mark Wielaard <mjw@redhat.com> 1288da0c48c4Sopenharmony_ci 1289da0c48c4Sopenharmony_ci * Makefile.am (libdw.so): Add -lz. 1290da0c48c4Sopenharmony_ci 1291da0c48c4Sopenharmony_ci2015-10-14 Chih-Hung Hsieh <chh@google.com> 1292da0c48c4Sopenharmony_ci 1293da0c48c4Sopenharmony_ci * cfi.c (execute_cfi): Move nested functions 'enough_registers' 1294da0c48c4Sopenharmony_ci and 'require_cfa_offset' to file scope. 1295da0c48c4Sopenharmony_ci 1296da0c48c4Sopenharmony_ci2015-10-09 Josh Stone <jistone@redhat.com> 1297da0c48c4Sopenharmony_ci 1298da0c48c4Sopenharmony_ci * dwarf_begin.c (dwarf_begin): Replace stat64 and fstat64 with stat 1299da0c48c4Sopenharmony_ci and fstat. 1300da0c48c4Sopenharmony_ci 1301da0c48c4Sopenharmony_ci2015-10-05 Josh Stone <jistone@redhat.com> 1302da0c48c4Sopenharmony_ci 1303da0c48c4Sopenharmony_ci * Makefile.am (libdw.so): Add AM_V_CCLD and AM_V_at silencers. 1304da0c48c4Sopenharmony_ci 1305da0c48c4Sopenharmony_ci2015-09-24 Jose E. Marchesi <jose.marchesi@oracle.com> 1306da0c48c4Sopenharmony_ci 1307da0c48c4Sopenharmony_ci * Makefile.am (AM_CFLAGS): Use -fPIC instead of -fpic to avoid 1308da0c48c4Sopenharmony_ci relocation overflows in some platforms. 1309da0c48c4Sopenharmony_ci 1310da0c48c4Sopenharmony_ci2015-09-23 Mark Wielaard <mjw@redhat.com> 1311da0c48c4Sopenharmony_ci 1312da0c48c4Sopenharmony_ci * dwarf_error.c (__libdw_seterrno): Mark as internal_function. 1313da0c48c4Sopenharmony_ci * dwarf_formref.c (__libdw_formref): Likewise. 1314da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_findcu): Likewise. 1315da0c48c4Sopenharmony_ci * libdw_visit_scopes.c (__libdw_visit_scopes): Likewise. 1316da0c48c4Sopenharmony_ci 1317da0c48c4Sopenharmony_ci2015-09-22 Mark Wielaard <mjw@redhat.com> 1318da0c48c4Sopenharmony_ci 1319da0c48c4Sopenharmony_ci * *.c: Remove old-style function definitions. 1320da0c48c4Sopenharmony_ci 1321da0c48c4Sopenharmony_ci2015-09-15 Mark Wielaard <mjw@redhat.com> 1322da0c48c4Sopenharmony_ci 1323da0c48c4Sopenharmony_ci * dwarf_peel_type.c (dwarf_peel_type): Don't reassign result pointer. 1324da0c48c4Sopenharmony_ci 1325da0c48c4Sopenharmony_ci2015-09-09 Chih-Hung Hsieh <chh@google.com> 1326da0c48c4Sopenharmony_ci 1327da0c48c4Sopenharmony_ci * dwarf_macro_getsrcfiles.c (dwarf_macro_getsrcfiles): Remove 1328da0c48c4Sopenharmony_ci redundant NULL tests on parameters declared with __nonnull_attribute__. 1329da0c48c4Sopenharmony_ci * dwarf_siblingof.c (dwarf_siblingof): Likewise. 1330da0c48c4Sopenharmony_ci * libdw_visit_scopes.c (__libdw_visit_scopes): Likewise. 1331da0c48c4Sopenharmony_ci 1332da0c48c4Sopenharmony_ci2015-09-04 Chih-Hung Hsieh <chh@google.com> 1333da0c48c4Sopenharmony_ci Mark Wielaard <mjw@redhat.com> 1334da0c48c4Sopenharmony_ci 1335da0c48c4Sopenharmony_ci * dwarf_getlocation.c (getlocations_addr): Replace K&R function 1336da0c48c4Sopenharmony_ci definition with ansi-C definition and add const qualifier to 1337da0c48c4Sopenharmony_ci locs argument. 1338da0c48c4Sopenharmony_ci 1339da0c48c4Sopenharmony_ci2015-09-04 Chih-Hung Hsieh <chh@google.com> 1340da0c48c4Sopenharmony_ci 1341da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Replace K&R function 1342da0c48c4Sopenharmony_ci definition with ansi-C definitions. 1343da0c48c4Sopenharmony_ci (__libdw_findcu): Likewise. 1344da0c48c4Sopenharmony_ci 1345da0c48c4Sopenharmony_ci2015-08-25 Mark Wielaard <mjw@redhat.com> 1346da0c48c4Sopenharmony_ci 1347da0c48c4Sopenharmony_ci * dwarf.h: Add DW_LANG_Haskell. 1348da0c48c4Sopenharmony_ci 1349da0c48c4Sopenharmony_ci2015-06-18 Mark Wielaard <mjw@redhat.com> 1350da0c48c4Sopenharmony_ci 1351da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_begin_elf): Assert page size is big enough 1352da0c48c4Sopenharmony_ci to hold a Dwarf. 1353da0c48c4Sopenharmony_ci 1354da0c48c4Sopenharmony_ci2015-06-18 Mark Wielaard <mjw@redhat.com> 1355da0c48c4Sopenharmony_ci 1356da0c48c4Sopenharmony_ci * dwarf_getpubnames.c (get_offsets): Always free mem on error. 1357da0c48c4Sopenharmony_ci 1358da0c48c4Sopenharmony_ci2015-06-18 Mark Wielaard <mjw@redhat.com> 1359da0c48c4Sopenharmony_ci 1360da0c48c4Sopenharmony_ci * dwarf_getmacros.c (get_macinfo_table): Return NULL when 1361da0c48c4Sopenharmony_ci dwarf_formudata reports an error. 1362da0c48c4Sopenharmony_ci (get_table_for_offset): Likewise. 1363da0c48c4Sopenharmony_ci 1364da0c48c4Sopenharmony_ci2015-06-08 Mark Wielaard <mjw@redhat.com> 1365da0c48c4Sopenharmony_ci 1366da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Initialize dirarray early. 1367da0c48c4Sopenharmony_ci 1368da0c48c4Sopenharmony_ci2015-06-06 Mark Wielaard <mjw@redhat.com> 1369da0c48c4Sopenharmony_ci 1370da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Initialize filelist early. 1371da0c48c4Sopenharmony_ci 1372da0c48c4Sopenharmony_ci2015-05-27 Mark Wielaard <mjw@redhat.com> 1373da0c48c4Sopenharmony_ci 1374da0c48c4Sopenharmony_ci * encoded-value.h (read_encoded_value): Check data d_size contains 1375da0c48c4Sopenharmony_ci at least enough data to hold a pointer for DW_EH_PE_indirect. 1376da0c48c4Sopenharmony_ci 1377da0c48c4Sopenharmony_ci2015-05-22 Mark Wielaard <mjw@redhat.com> 1378da0c48c4Sopenharmony_ci 1379da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Limit stack usage of lines 1380da0c48c4Sopenharmony_ci with MAX_STACK_LINES, files with MAX_STACK_LINES and dirs with 1381da0c48c4Sopenharmony_ci MAX_STACK_DIRS. Calculate number of dirs needed first, then 1382da0c48c4Sopenharmony_ci create dirarray directly, without needing the next field. Free 1383da0c48c4Sopenharmony_ci not stack allocated lines and files at the end. 1384da0c48c4Sopenharmony_ci 1385da0c48c4Sopenharmony_ci2015-05-19 Mark Wielaard <mjw@redhat.com> 1386da0c48c4Sopenharmony_ci 1387da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): Create a stack 1388da0c48c4Sopenharmony_ci allocated array to hold locs. Allocate locs bigger than the array 1389da0c48c4Sopenharmony_ci with malloc and free them when done. 1390da0c48c4Sopenharmony_ci 1391da0c48c4Sopenharmony_ci2015-05-11 Jonathan Lebon <jlebon@redhat.com> 1392da0c48c4Sopenharmony_ci 1393da0c48c4Sopenharmony_ci * libdwP.h (DWARF_E_COMPRESSED_ERROR): New enumerator. 1394da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add DWARF_E_COMPRESSED_ERROR message. 1395da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (inflate_section): New static function, lifted 1396da0c48c4Sopenharmony_ci from... 1397da0c48c4Sopenharmony_ci (check_section): ... here. Call inflate_section, set libdw errno to 1398da0c48c4Sopenharmony_ci DWARF_E_COMPRESSED_ERROR if .debug_info section couldn't be inflated. 1399da0c48c4Sopenharmony_ci 1400da0c48c4Sopenharmony_ci2015-05-11 Jonathan Lebon <jlebon@redhat.com> 1401da0c48c4Sopenharmony_ci 1402da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Add compressed flag. Always 1403da0c48c4Sopenharmony_ci check for .zdebug sections. Only wrap decompression in #if USE_ZLIB. 1404da0c48c4Sopenharmony_ci 1405da0c48c4Sopenharmony_ci2015-05-06 Mark Wielaard <mjw@redhat.com> 1406da0c48c4Sopenharmony_ci 1407da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Use an int64_t to store and 1408da0c48c4Sopenharmony_ci check the line number. 1409da0c48c4Sopenharmony_ci 1410da0c48c4Sopenharmony_ci2015-05-05 Mark Wielaard <mjw@redhat.com> 1411da0c48c4Sopenharmony_ci 1412da0c48c4Sopenharmony_ci * dwarf_getaranges.c (dwarf_getaranges): Check there is enough data 1413da0c48c4Sopenharmony_ci left before reading values. 1414da0c48c4Sopenharmony_ci 1415da0c48c4Sopenharmony_ci2015-05-04 Anthony G. Basile <blueness@gentoo.org> 1416da0c48c4Sopenharmony_ci 1417da0c48c4Sopenharmony_ci * Makefile.am (libdw_so_SOURCES): Append $(argp_LDADD) to link 1418da0c48c4Sopenharmony_ci command. 1419da0c48c4Sopenharmony_ci 1420da0c48c4Sopenharmony_ci2015-04-22 Mark Wielaard <mjw@redhat.com> 1421da0c48c4Sopenharmony_ci 1422da0c48c4Sopenharmony_ci * memory-access.h (__libdw_max_len_leb128): Take type_len as argument. 1423da0c48c4Sopenharmony_ci (__libdw_max_len_uleb128): New function. 1424da0c48c4Sopenharmony_ci (__libdw_max_len_sleb128): Likewise. 1425da0c48c4Sopenharmony_ci (__libdw_get_uleb128): Use __libdw_max_len_uleb128. 1426da0c48c4Sopenharmony_ci (__libdw_get_sleb128): Use __libdw_max_len_sleb128. 1427da0c48c4Sopenharmony_ci 1428da0c48c4Sopenharmony_ci2015-04-21 Mark Wielaard <mjw@redhat.com> 1429da0c48c4Sopenharmony_ci 1430da0c48c4Sopenharmony_ci * dwarf_getmacros.c (read_macros): Allocate attributes dynamically 1431da0c48c4Sopenharmony_ci when there are more than 8. 1432da0c48c4Sopenharmony_ci 1433da0c48c4Sopenharmony_ci2015-04-01 Petr Machata <pmachata@redhat.com> 1434da0c48c4Sopenharmony_ci 1435da0c48c4Sopenharmony_ci * libdwP.h (DWARF_E_NOT_CUDIE): New enumerator. 1436da0c48c4Sopenharmony_ci (is_cudie): New function. 1437da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add message for DWARF_E_NOT_CUDIE. 1438da0c48c4Sopenharmony_ci * dwarf_getsrcfiles.c (dwarf_getsrcfiles): Call is_cudie instead 1439da0c48c4Sopenharmony_ci of white-listing valid tags. 1440da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Likewise. 1441da0c48c4Sopenharmony_ci 1442da0c48c4Sopenharmony_ci2015-03-18 Petr Machata <pmachata@redhat.com> 1443da0c48c4Sopenharmony_ci 1444da0c48c4Sopenharmony_ci * Makefile.am (pkginclude_HEADERS): Add known-dwarf.h. 1445da0c48c4Sopenharmony_ci (EXTRA_DIST): Remove known-dwarf.h. 1446da0c48c4Sopenharmony_ci 1447da0c48c4Sopenharmony_ci2015-02-09 Mark Wielaard <mjw@redhat.com> 1448da0c48c4Sopenharmony_ci 1449da0c48c4Sopenharmony_ci * dwarf.h: Add DW_LANG_Fortran03 and DW_LANG_Fortran08. 1450da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (array_size): Recognize array lower bound 1451da0c48c4Sopenharmony_ci for new Fortran language codes is 1. 1452da0c48c4Sopenharmony_ci 1453da0c48c4Sopenharmony_ci2015-02-09 Mark Wielaard <mjw@redhat.com> 1454da0c48c4Sopenharmony_ci 1455da0c48c4Sopenharmony_ci * dwarf.h: Add DW_TAG_atomic_type. 1456da0c48c4Sopenharmony_ci * libdw.h (dwarf_peel_type): Document DW_TAG_atomic_type. 1457da0c48c4Sopenharmony_ci * dwarf_peel_type.c (dwarf_peel_type): Handle DW_TAG_atomic_type. 1458da0c48c4Sopenharmony_ci 1459da0c48c4Sopenharmony_ci2015-02-11 Josh Stone <jistone@redhat.com> 1460da0c48c4Sopenharmony_ci 1461da0c48c4Sopenharmony_ci * encoded-value.h (read_encoded_value): Initialize value. 1462da0c48c4Sopenharmony_ci 1463da0c48c4Sopenharmony_ci2015-02-11 Petr Machata <pmachata@redhat.com> 1464da0c48c4Sopenharmony_ci 1465da0c48c4Sopenharmony_ci * dwarf_ranges.c (dwarf_ranges): Do not bail out when neither 1466da0c48c4Sopenharmony_ci DW_AT_entry_pc nor DW_AT_low_pc are available. Instead remember 1467da0c48c4Sopenharmony_ci the fact in *BASEP and bail out later if it hasn't been updated by 1468da0c48c4Sopenharmony_ci __libdw_read_begin_end_pair_inc. 1469da0c48c4Sopenharmony_ci 1470da0c48c4Sopenharmony_ci2014-12-24 Mark Wielaard <mjw@redhat.com> 1471da0c48c4Sopenharmony_ci 1472da0c48c4Sopenharmony_ci * dwarf_getsrc_die.c (dwarf_getsrc_die): Return the last line record 1473da0c48c4Sopenharmony_ci smaller than or equal to addr, rather than returning immediately on 1474da0c48c4Sopenharmony_ci a match. 1475da0c48c4Sopenharmony_ci 1476da0c48c4Sopenharmony_ci2015-01-07 Mark Wielaard <mjw@redhat.com> 1477da0c48c4Sopenharmony_ci 1478da0c48c4Sopenharmony_ci * cfi.h (struct Dwarf_CFI_s): Add search_table_len. 1479da0c48c4Sopenharmony_ci * dwarf_getcfi_elf.c (getcfi_gnu_eh_frame): Check there is enough 1480da0c48c4Sopenharmony_ci room in the search table for all entries. Store search_table_len. 1481da0c48c4Sopenharmony_ci (getcfi_scn_eh_frame): Likewise. 1482da0c48c4Sopenharmony_ci * encoded-value.h (encoded_value_size): Don't abort, return zero. 1483da0c48c4Sopenharmony_ci (__libdw_cfi_read_address_inc): Check there is enough room to read 1484da0c48c4Sopenharmony_ci values. Pass other byte order to read functions. 1485da0c48c4Sopenharmony_ci (read_encoded_value): Check encoded_value_size. Don't abort, but 1486da0c48c4Sopenharmony_ci set libdw errno and report failure. Check there is enough room to 1487da0c48c4Sopenharmony_ci read values. 1488da0c48c4Sopenharmony_ci * fde.c (binary_search_fde): Check encoded value size. Add hdr 1489da0c48c4Sopenharmony_ci data buf and size to dummy_cfi. 1490da0c48c4Sopenharmony_ci 1491da0c48c4Sopenharmony_ci2015-01-04 Mark Wielaard <mjw@redhat.com> 1492da0c48c4Sopenharmony_ci 1493da0c48c4Sopenharmony_ci * dwarf_siblingof.c (dwarf_siblingof): Check sibling attribute 1494da0c48c4Sopenharmony_ci is after current DIE. 1495da0c48c4Sopenharmony_ci 1496da0c48c4Sopenharmony_ci2015-01-04 Mark Wielaard <mjw@redhat.com> 1497da0c48c4Sopenharmony_ci 1498da0c48c4Sopenharmony_ci * cfi.c (enough_registers): Check reg < INT32_MAX / sizeof 1499da0c48c4Sopenharmony_ci (dwarf_frame_register). 1500da0c48c4Sopenharmony_ci 1501da0c48c4Sopenharmony_ci2015-01-02 Mark Wielaard <mjw@redhat.com> 1502da0c48c4Sopenharmony_ci 1503da0c48c4Sopenharmony_ci * dwarf_getcfi_elf.c (parse_eh_frame_hdr): Add size check. 1504da0c48c4Sopenharmony_ci (getcfi_gnu_eh_frame): Remove size check. Check d_buf is not NULL. 1505da0c48c4Sopenharmony_ci (getcfi_scn_eh_frame): Check d_buf is not NULL. 1506da0c48c4Sopenharmony_ci 1507da0c48c4Sopenharmony_ci2015-01-02 Mark Wielaard <mjw@redhat.com> 1508da0c48c4Sopenharmony_ci 1509da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): Check dbg is not 1510da0c48c4Sopenharmony_ci NULL for DW_OP_call_ref and DW_OP_GNU_implicit_pointer. For 1511da0c48c4Sopenharmony_ci DW_OP_addr if dbg is NULL then read argument directly. 1512da0c48c4Sopenharmony_ci 1513da0c48c4Sopenharmony_ci2015-01-14 Jason P. Leasure <jpleasu@super.org> 1514da0c48c4Sopenharmony_ci 1515da0c48c4Sopenharmony_ci * dwarf_formref_die.c (dwarf_formref_die): Offset is cu->type_offset 1516da0c48c4Sopenharmony_ci plus cu->start. 1517da0c48c4Sopenharmony_ci 1518da0c48c4Sopenharmony_ci2014-12-27 Mark Wielaard <mjw@redhat.com> 1519da0c48c4Sopenharmony_ci 1520da0c48c4Sopenharmony_ci * dwarf_siblingof.c (dwarf_siblingof): Check sibling attribute offset 1521da0c48c4Sopenharmony_ci still falls inside CU data. 1522da0c48c4Sopenharmony_ci 1523da0c48c4Sopenharmony_ci2015-01-11 Mark Wielaard <mjw@redhat.com> 1524da0c48c4Sopenharmony_ci 1525da0c48c4Sopenharmony_ci * dwarf_func_inline.c (dwarf_func_inline_instances): Call 1526da0c48c4Sopenharmony_ci __libdw_visit_scopes with NULL imports. 1527da0c48c4Sopenharmony_ci * dwarf_getfuncs.c (dwarf_getfuncs): Likewise. 1528da0c48c4Sopenharmony_ci * dwarf_getscopes.c (pc_record): Likewise. 1529da0c48c4Sopenharmony_ci (dwarf_getscopes): Likewise. 1530da0c48c4Sopenharmony_ci * dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise. 1531da0c48c4Sopenharmony_ci * libdwP.h (__libdw_visit_scopes): Add imports argument. 1532da0c48c4Sopenharmony_ci * libdw_visit_scopes.c (__libdw_visit_scopes): Likewise. Add new 1533da0c48c4Sopenharmony_ci function imports_contains. Push and pop imports around walk_children 1534da0c48c4Sopenharmony_ci when processing DW_TAG_imported_unit. 1535da0c48c4Sopenharmony_ci 1536da0c48c4Sopenharmony_ci2014-12-18 Ulrich Drepper <drepper@gmail.com> 1537da0c48c4Sopenharmony_ci 1538da0c48c4Sopenharmony_ci * Makefile.am: Suppress output of textrel_check command. 1539da0c48c4Sopenharmony_ci 1540da0c48c4Sopenharmony_ci2014-12-16 Mark Wielaard <mjw@redhat.com> 1541da0c48c4Sopenharmony_ci 1542da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Check diridx is valid under 1543da0c48c4Sopenharmony_ci DW_LNE_define_file. 1544da0c48c4Sopenharmony_ci 1545da0c48c4Sopenharmony_ci2014-12-16 Mark Wielaard <mjw@redhat.com> 1546da0c48c4Sopenharmony_ci 1547da0c48c4Sopenharmony_ci * dwarf_getpubnames.c (dwarf_getpubnames): Make sure there is enough 1548da0c48c4Sopenharmony_ci space to read die offset. 1549da0c48c4Sopenharmony_ci 1550da0c48c4Sopenharmony_ci2014-12-16 Mark Wielaard <mjw@redhat.com> 1551da0c48c4Sopenharmony_ci 1552da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Correct overflow check for 1553da0c48c4Sopenharmony_ci unit_length. 1554da0c48c4Sopenharmony_ci 1555da0c48c4Sopenharmony_ci2014-12-15 Mark Wielaard <mjw@redhat.com> 1556da0c48c4Sopenharmony_ci 1557da0c48c4Sopenharmony_ci * dwarf_getpubnames.c (get_offsets): Make sure whole unit fall inside 1558da0c48c4Sopenharmony_ci section data. Set error to DWARF_E_NO_ENTRY if cnt is zero. 1559da0c48c4Sopenharmony_ci (dwarf_getpubnames): Make sure section data contains string zero 1560da0c48c4Sopenharmony_ci terminator. 1561da0c48c4Sopenharmony_ci 1562da0c48c4Sopenharmony_ci2014-12-16 Mark Wielaard <mjw@redhat.com> 1563da0c48c4Sopenharmony_ci 1564da0c48c4Sopenharmony_ci * memory-access.h (__libdw_get_sleb128): Unroll the first step to help 1565da0c48c4Sopenharmony_ci the compiler optimize for the common single-byte case. 1566da0c48c4Sopenharmony_ci 1567da0c48c4Sopenharmony_ci2014-12-15 Josh Stone <jistone@redhat.com> 1568da0c48c4Sopenharmony_ci 1569da0c48c4Sopenharmony_ci * memory-access.h (__libdw_max_len_leb128): New. 1570da0c48c4Sopenharmony_ci (__libdw_get_uleb128): Use __libdw_max_len_leb128. 1571da0c48c4Sopenharmony_ci (__libdw_get_sleb128): Likewise. 1572da0c48c4Sopenharmony_ci 1573da0c48c4Sopenharmony_ci2014-12-14 Mark Wielaard <mjw@redhat.com> 1574da0c48c4Sopenharmony_ci 1575da0c48c4Sopenharmony_ci * cfi.c (execute_cfi): Add program bounds checks. 1576da0c48c4Sopenharmony_ci * dwarf_child.c (__libdw_find_attr): Add attrp bounds checks. 1577da0c48c4Sopenharmony_ci * dwarf_formblock.c (dwarf_formblock): Call get_uleb128 with endp. 1578da0c48c4Sopenharmony_ci * dwarf_formref.c (__libdw_formref): Add datap bounds checks. 1579da0c48c4Sopenharmony_ci * dwarf_formsdata.c (dwarf_formsdata): Likewise. 1580da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Likewise. 1581da0c48c4Sopenharmony_ci * dwarf_frame_register.c (dwarf_frame_register): Call get_uleb128 1582da0c48c4Sopenharmony_ci with end of data buf. 1583da0c48c4Sopenharmony_ci * dwarf_getabbrev.c (__libdw_getabbrev): Add abbrevp bounds checks. 1584da0c48c4Sopenharmony_ci * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Assume get_uleb128 1585da0c48c4Sopenharmony_ci call gets enough data. 1586da0c48c4Sopenharmony_ci * dwarf_getattrs,c (dwarf_getattrs): Call get_uleb128 with endp. 1587da0c48c4Sopenharmony_ci * dwarf_getlocation.c (store_implicit_value): Call get_uleb128 1588da0c48c4Sopenharmony_ci with enough data. 1589da0c48c4Sopenharmony_ci (__libdw_intern_expression): Call get_uleb128/get_sleb128 with 1590da0c48c4Sopenharmony_ci end_data. 1591da0c48c4Sopenharmony_ci * dwarf_getmacros.c (get_table_for_offset): Add nforms bounds check. 1592da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Bounds check linep and call 1593da0c48c4Sopenharmony_ci get_uleb128 with lineendp. 1594da0c48c4Sopenharmony_ci * dwarf_hasattr.c (dwarf_hasattr): Bounds check attrp and call 1595da0c48c4Sopenharmony_ci get_uleb128 with endp. 1596da0c48c4Sopenharmony_ci * dwarf_next_cfi.c (dwarf_next_cfi): Bounds check bytes and call 1597da0c48c4Sopenharmony_ci get_uleb128/get_sleb128 with limit. 1598da0c48c4Sopenharmony_ci * encoded-value.h (read_encoded_value): Assume get_uleb128 and 1599da0c48c4Sopenharmony_ci get_sleb128 get called with enough data. 1600da0c48c4Sopenharmony_ci * fde.c (intern_fde): Call get_uleb128 with instructions_end. 1601da0c48c4Sopenharmony_ci * libdwP.h (__libdw_dieabbrev): Call get_uleb128 with die->cu->endp. 1602da0c48c4Sopenharmony_ci * libdw_form.c (__libdw_form_val_compute_len): Call get_uleb128 with 1603da0c48c4Sopenharmony_ci endp. 1604da0c48c4Sopenharmony_ci * memory-access.h (__libdw_get_uleb128): Take an extra endp. 1605da0c48c4Sopenharmony_ci Don't call get_uleb128_step if out of data. 1606da0c48c4Sopenharmony_ci (__libdw_get_sleb128): Likewise for get_sleb128_step. 1607da0c48c4Sopenharmony_ci 1608da0c48c4Sopenharmony_ci2014-12-12 Mark Wielaard <mjw@redhat.com> 1609da0c48c4Sopenharmony_ci 1610da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf): Add fake_loc_cu. 1611da0c48c4Sopenharmony_ci (cu_data): Removed. 1612da0c48c4Sopenharmony_ci (DIE_OFFSET_FROM_CU_OFFSET): Don't use cu_data, use cu_sec_idx. 1613da0c48c4Sopenharmony_ci (__libdw_form_val_compute_len): Drop dbg and endp arguments. 1614da0c48c4Sopenharmony_ci (__libdw_form_val_len): Likewise. 1615da0c48c4Sopenharmony_ci * libdw_form.c (__libdw_form_val_compute_len): Likewise. 1616da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Don't use cu_data, use 1617da0c48c4Sopenharmony_ci the already found data buffer directly. 1618da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (valid_p): Setup fake_loc_cu. 1619da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end): Free fake_loc_cu. 1620da0c48c4Sopenharmony_ci * dwarf_child.c (__libdw_find_attr): Call __libdw_form_val_len with 1621da0c48c4Sopenharmony_ci just cu. 1622da0c48c4Sopenharmony_ci * dwarf_getattrs.c (dwarf_getattrs): Likewise. 1623da0c48c4Sopenharmony_ci * dwarf_formblock.c (dwarf_formblock): Add bounds checking. 1624da0c48c4Sopenharmony_ci * dwarf_getlocation_attr.c (attr_form_cu): New function. 1625da0c48c4Sopenharmony_ci (dwarf_getlocation_attr): Use attr_form_cu to set result->cu. 1626da0c48c4Sopenharmony_ci (getlocation): Handle empty blocks immediately. 1627da0c48c4Sopenharmony_ci * dwarf_getlocation_implicit_pointer.c (empty_cu): New static var. 1628da0c48c4Sopenharmony_ci (__libdw_empty_loc_attr): Drop cu argument, use empty_cu. 1629da0c48c4Sopenharmony_ci (dwarf_getlocation_implicit_pointer): Call __libdw_empty_loc_attr with 1630da0c48c4Sopenharmony_ci one argument. 1631da0c48c4Sopenharmony_ci * dwarf_getmacros.c (read_macros): Also setup startp and endp for 1632da0c48c4Sopenharmony_ci fake_cu. Call __libdw_form_val_len with just fake_cu. 1633da0c48c4Sopenharmony_ci * dwarf_formref_die.c (dwarf_formref_die): Don't use cu_data, get 1634da0c48c4Sopenharmony_ci datap and size directly from cu startp and endp. 1635da0c48c4Sopenharmony_ci 1636da0c48c4Sopenharmony_ci2014-12-11 Mark Wielaard <mjw@redhat.com> 1637da0c48c4Sopenharmony_ci 1638da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Sanity check offset. 1639da0c48c4Sopenharmony_ci 1640da0c48c4Sopenharmony_ci2014-12-13 Mark Wielaard <mjw@redhat.com> 1641da0c48c4Sopenharmony_ci 1642da0c48c4Sopenharmony_ci * dwarf_getaranges.c (compare_aranges): Make sure Dwarf_Addr 1643da0c48c4Sopenharmony_ci difference doesn't wrap around before returning as int. 1644da0c48c4Sopenharmony_ci 1645da0c48c4Sopenharmony_ci2014-12-11 Josh Stone <jistone@redhat.com> 1646da0c48c4Sopenharmony_ci 1647da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (struct linelist): Add sequence. 1648da0c48c4Sopenharmony_ci (compare_lines): Take linelists, and break ties by sequence. 1649da0c48c4Sopenharmony_ci (read_srclines): Use linelists for sorting. 1650da0c48c4Sopenharmony_ci (read_srclines::add_new_line): Set sequence. 1651da0c48c4Sopenharmony_ci 1652da0c48c4Sopenharmony_ci2014-12-10 Josh Stone <jistone@redhat.com> 1653da0c48c4Sopenharmony_ci 1654da0c48c4Sopenharmony_ci * libdwP.h (Dwarf_CU): Add startp and endp boundaries. 1655da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Set startp and endp. 1656da0c48c4Sopenharmony_ci * dwarf_child.c (dwarf_child): Use cu->endp. 1657da0c48c4Sopenharmony_ci * dwarf_cuoffset.c (dwarf_cuoffset): Use cu->startp. 1658da0c48c4Sopenharmony_ci * dwarf_dieoffset.c (dwarf_dieoffset): Use cu->startp. 1659da0c48c4Sopenharmony_ci * dwarf_siblingof.c (dwarf_siblingof): Use both. 1660da0c48c4Sopenharmony_ci 1661da0c48c4Sopenharmony_ci2014-12-10 Josh Stone <jistone@redhat.com> 1662da0c48c4Sopenharmony_ci 1663da0c48c4Sopenharmony_ci * dwarf_hasattr.c (dwarf_hasattr): Just walk abbrev for presence. 1664da0c48c4Sopenharmony_ci 1665da0c48c4Sopenharmony_ci2014-12-10 Josh Stone <jistone@redhat.com> 1666da0c48c4Sopenharmony_ci 1667da0c48c4Sopenharmony_ci * libdwP.h (__libdw_dieabbrev): New die->abbrev lookup function. 1668da0c48c4Sopenharmony_ci * dwarf_child.c (__libdw_find_attr, dwarf_child): Use it. 1669da0c48c4Sopenharmony_ci * dwarf_getattrs.c (dwarf_getattrs): Likewise. 1670da0c48c4Sopenharmony_ci * dwarf_haschildren.c (dwarf_haschildren): Likewise. 1671da0c48c4Sopenharmony_ci * dwarf_tag.c (dwarf_tag): Likewise. 1672da0c48c4Sopenharmony_ci 1673da0c48c4Sopenharmony_ci2014-12-04 Mark Wielaard <mjw@redhat.com> 1674da0c48c4Sopenharmony_ci 1675da0c48c4Sopenharmony_ci * libdwP.h (__libdw_form_val_compute_len): Add endp argument. 1676da0c48c4Sopenharmony_ci (__libdw_form_val_len): Likewise and check len doesn't overflow. 1677da0c48c4Sopenharmony_ci * libdw_form.c (__libdw_form_val_compute_len): Likewise. 1678da0c48c4Sopenharmony_ci * dwarf_child.c (__libdw_find_attr): Call __libdw_form_val_len 1679da0c48c4Sopenharmony_ci with endp. 1680da0c48c4Sopenharmony_ci * dwarf_getattrs.c (dwarf_getattrs): Likewise. 1681da0c48c4Sopenharmony_ci * dwarf_getmacros.c (read_macros): Likewise and check for errors. 1682da0c48c4Sopenharmony_ci 1683da0c48c4Sopenharmony_ci2014-12-02 Petr Machata <pmachata@redhat.com> 1684da0c48c4Sopenharmony_ci 1685da0c48c4Sopenharmony_ci * dwarf_getmacros.c (token_from_offset, offset_from_token): New 1686da0c48c4Sopenharmony_ci helper functions. 1687da0c48c4Sopenharmony_ci (do_dwarf_getmacros_die): Merge into dwarf_getmacros. 1688da0c48c4Sopenharmony_ci * libdw.h (DWARF_GETMACROS_START): New macro. 1689da0c48c4Sopenharmony_ci 1690da0c48c4Sopenharmony_ci2014-11-27 Mark Wielaard <mjw@redhat.com> 1691da0c48c4Sopenharmony_ci 1692da0c48c4Sopenharmony_ci * Makefile.am (libdw.so): Use textrel_check. 1693da0c48c4Sopenharmony_ci 1694da0c48c4Sopenharmony_ci2014-11-27 Mark Wielaard <mjw@redhat.com> 1695da0c48c4Sopenharmony_ci 1696da0c48c4Sopenharmony_ci * dwarf_getcfi_elf.c (getcfi_gnu_eh_frame): Initialize 1697da0c48c4Sopenharmony_ci search_table_entries and search_table_encoding. 1698da0c48c4Sopenharmony_ci 1699da0c48c4Sopenharmony_ci2014-11-24 Mark Wielaard <mjw@redhat.com> 1700da0c48c4Sopenharmony_ci 1701da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Check line_range is not zero 1702da0c48c4Sopenharmony_ci before usage. 1703da0c48c4Sopenharmony_ci 1704da0c48c4Sopenharmony_ci2014-11-23 Mark Wielaard <mjw@redhat.com> 1705da0c48c4Sopenharmony_ci 1706da0c48c4Sopenharmony_ci * dwarf_attr.c (dwarf_attr): Check __libdw_find_attr return value. 1707da0c48c4Sopenharmony_ci * dwarf_hasattr.c (dwarf_hasattr): Likewise. 1708da0c48c4Sopenharmony_ci * dwarf_siblingof.c (dwarf_siblingof): Likewise. 1709da0c48c4Sopenharmony_ci 1710da0c48c4Sopenharmony_ci2014-11-23 Mark Wielaard <mjw@redhat.com> 1711da0c48c4Sopenharmony_ci 1712da0c48c4Sopenharmony_ci * dwarf_getabbrev.c (__libdw_getabbrev): Don't assert on bad DWARF. 1713da0c48c4Sopenharmony_ci Set libdw errno and return NULL. 1714da0c48c4Sopenharmony_ci 1715da0c48c4Sopenharmony_ci2014-11-24 Mark Wielaard <mjw@redhat.com> 1716da0c48c4Sopenharmony_ci 1717da0c48c4Sopenharmony_ci * dwarf.h (DW_LANG_C_plus_plus_11): Added. 1718da0c48c4Sopenharmony_ci (DW_LANG_C11): Likewise. 1719da0c48c4Sopenharmony_ci (DW_LANG_C_plus_plus_14): Likewise. 1720da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (array_size): Handle DW_LANG_C11, 1721da0c48c4Sopenharmony_ci DW_LANG_C_plus_plus_11, DW_LANG_C_plus_plus_14 and DW_LANG_Go 1722da0c48c4Sopenharmony_ci lower bound. 1723da0c48c4Sopenharmony_ci * dwarf_getfuncs.c (dwarf_getfuncs): Set c_cu to true for 1724da0c48c4Sopenharmony_ci DW_LANG_C11. 1725da0c48c4Sopenharmony_ci 1726da0c48c4Sopenharmony_ci2014-11-26 Mark Wielaard <mjw@redhat.com> 1727da0c48c4Sopenharmony_ci 1728da0c48c4Sopenharmony_ci * dwarf.h (DW_AT_noreturn): Added. 1729da0c48c4Sopenharmony_ci 1730da0c48c4Sopenharmony_ci2014-11-11 Mark Wielaard <mjw@redhat.com> 1731da0c48c4Sopenharmony_ci 1732da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): Do address_size comparison 1733da0c48c4Sopenharmony_ci explicitly as uint8_t. 1734da0c48c4Sopenharmony_ci (__libdw_getsrclines): Add internal_function to declaration. 1735da0c48c4Sopenharmony_ci 1736da0c48c4Sopenharmony_ci2014-09-10 Petr Machata <pmachata@redhat.com> 1737da0c48c4Sopenharmony_ci 1738da0c48c4Sopenharmony_ci * dwarf_macro_getparamcnt.c: New file. 1739da0c48c4Sopenharmony_ci * dwarf_macro_param.c: New file. 1740da0c48c4Sopenharmony_ci * dwarf_macro_getsrcfiles.c: New file. 1741da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add the new files. 1742da0c48c4Sopenharmony_ci * libdwP.h (struct files_lines_s): New structure. 1743da0c48c4Sopenharmony_ci (DWARF_E_INVALID_OPCODE): New enumerator. 1744da0c48c4Sopenharmony_ci (struct Dwarf): New fields macro_ops, files_lines. 1745da0c48c4Sopenharmony_ci (Dwarf_Macro_Op_Proto, Dwarf_Macro_Op_Table): New structures for 1746da0c48c4Sopenharmony_ci keeping macro opcode prototypes in. 1747da0c48c4Sopenharmony_ci (Dwarf_Macro_s): Redefine from scratch. 1748da0c48c4Sopenharmony_ci (__libdw_getsrclines, __libdw_getcompdir, libdw_macro_nforms): New 1749da0c48c4Sopenharmony_ci internal interfaces. 1750da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add a message for 1751da0c48c4Sopenharmony_ci DWARF_E_INVALID_OPCODE. 1752da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end): Destroy struct Dwarf.macro_ops and 1753da0c48c4Sopenharmony_ci files_lines. 1754da0c48c4Sopenharmony_ci * libdw.h (dwarf_getmacros_off, dwarf_macro_getparamcnt) 1755da0c48c4Sopenharmony_ci (dwarf_macro_getsrcfiles, dwarf_macro_param): New public 1756da0c48c4Sopenharmony_ci interfaces. 1757da0c48c4Sopenharmony_ci * dwarf_getmacros.c (dwarf_getmacros_off): New function, 1758da0c48c4Sopenharmony_ci (get_offset_from, macro_op_compare, build_table) 1759da0c48c4Sopenharmony_ci (init_macinfo_table, get_macinfo_table, get_table_for_offset) 1760da0c48c4Sopenharmony_ci (cache_op_table, read_macros, gnu_macros_getmacros_off) 1761da0c48c4Sopenharmony_ci (macro_info_getmacros_off, do_dwarf_getmacros_die): New helper 1762da0c48c4Sopenharmony_ci functions. 1763da0c48c4Sopenharmony_ci (dwarf_getmacros): Adjust to dispatch to the new interfaces. 1764da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (read_srclines): New function with guts 1765da0c48c4Sopenharmony_ci taken from dwarf_getsrclines. 1766da0c48c4Sopenharmony_ci (__libdw_getsrclines): Likewise. 1767da0c48c4Sopenharmony_ci (__libdw_getcompdir, files_lines_compare): New functions. 1768da0c48c4Sopenharmony_ci (dwarf_getsrclines): Make it dispatch to the new interfaces. 1769da0c48c4Sopenharmony_ci * dwarf_macro_param1.c (dwarf_macro_param1): Adjust to dispatch to 1770da0c48c4Sopenharmony_ci the new interfaces. 1771da0c48c4Sopenharmony_ci * dwarf_macro_param2.c (dwarf_macro_param2): Likewise. 1772da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.161): New. Add dwarf_getmacros_off, 1773da0c48c4Sopenharmony_ci dwarf_macro_getsrcfiles, dwarf_macro_getparamcnt, dwarf_macro_param. 1774da0c48c4Sopenharmony_ci 1775da0c48c4Sopenharmony_ci2014-10-06 Mark Wielaard <mjw@redhat.com> 1776da0c48c4Sopenharmony_ci 1777da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_peel_type.c. 1778da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (get_type): Use dwarf_peel_type. 1779da0c48c4Sopenharmony_ci (aggregate_size): Likewise. Add old and new version. 1780da0c48c4Sopenharmony_ci * dwarf_peel_type.c: New file. 1781da0c48c4Sopenharmony_ci * libdw.h (dwarf_peel_type): New function declaration. 1782da0c48c4Sopenharmony_ci * libdwP.h (dwarf_peel_type): New internal declaration. 1783da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.161): New section. 1784da0c48c4Sopenharmony_ci 1785da0c48c4Sopenharmony_ci2014-10-15 Petr Machata <pmachata@redhat.com> 1786da0c48c4Sopenharmony_ci 1787da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_Files_s.cu): Drop field. 1788da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Don't set it. 1789da0c48c4Sopenharmony_ci 1790da0c48c4Sopenharmony_ci2014-10-05 Mark Wielaard <mjw@redhat.com> 1791da0c48c4Sopenharmony_ci 1792da0c48c4Sopenharmony_ci * dwarf.h: Add DW_AT_GNU_deleted. 1793da0c48c4Sopenharmony_ci 1794da0c48c4Sopenharmony_ci2014-10-02 Mark Wielaard <mjw@redhat.com> 1795da0c48c4Sopenharmony_ci 1796da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (aggregate_size): Return CU address_size 1797da0c48c4Sopenharmony_ci for sizeless DW_TAG_pointer_type, DW_TAG_reference_type or 1798da0c48c4Sopenharmony_ci DW_TAG_rvalue_reference_type. 1799da0c48c4Sopenharmony_ci 1800da0c48c4Sopenharmony_ci2014-09-12 Petr Machata <pmachata@redhat.com> 1801da0c48c4Sopenharmony_ci 1802da0c48c4Sopenharmony_ci * memory-access.h (read_ubyte_unaligned_inc): Allow only 4- and 1803da0c48c4Sopenharmony_ci 8-byte quantities. Consequently, rename to... 1804da0c48c4Sopenharmony_ci (read_addr_unaligned_inc): ... this. 1805da0c48c4Sopenharmony_ci (read_sbyte_unaligned_inc, read_ubyte_unaligned): Drop. 1806da0c48c4Sopenharmony_ci (read_sbyte_unaligned): Drop. 1807da0c48c4Sopenharmony_ci 1808da0c48c4Sopenharmony_ci2014-09-10 Petr Machata <pmachata@redhat.com> 1809da0c48c4Sopenharmony_ci 1810da0c48c4Sopenharmony_ci * dwarf_getlocation.c (attr_ok): Also accept 1811da0c48c4Sopenharmony_ci DW_AT_GNU_call_site_value, DW_AT_GNU_call_site_data_value, 1812da0c48c4Sopenharmony_ci DW_AT_GNU_call_site_target, DW_AT_GNU_call_site_target_clobbered. 1813da0c48c4Sopenharmony_ci 1814da0c48c4Sopenharmony_ci2014-08-15 Mark Wielaard <mjw@redhat.com> 1815da0c48c4Sopenharmony_ci 1816da0c48c4Sopenharmony_ci * dwarf_cu_die.c: New file. 1817da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_cu_die.c. 1818da0c48c4Sopenharmony_ci * libdw.h (dwarf_cu_die): New function declaration. 1819da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.160): Add dwarf_cu_die. 1820da0c48c4Sopenharmony_ci 1821da0c48c4Sopenharmony_ci2014-08-15 Mark Wielaard <mjw@redhat.com> 1822da0c48c4Sopenharmony_ci 1823da0c48c4Sopenharmony_ci * dwarf_cu_getdwarf.c: New file. 1824da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_cu_getdwarf.c. 1825da0c48c4Sopenharmony_ci * libdw.h (Dwarf_CU): New typedef. 1826da0c48c4Sopenharmony_ci (dwarf_cu_getdwarf): New function declaration. 1827da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.160): New. Add dwarf_cu_getdwarf. 1828da0c48c4Sopenharmony_ci 1829da0c48c4Sopenharmony_ci2014-06-18 Mark Wielaard <mjw@redhat.com> 1830da0c48c4Sopenharmony_ci 1831da0c48c4Sopenharmony_ci * dwarf.h: Remove DW_TAG_mutable_type. 1832da0c48c4Sopenharmony_ci 1833da0c48c4Sopenharmony_ci2014-05-02 Mark Wielaard <mjw@redhat.com> 1834da0c48c4Sopenharmony_ci 1835da0c48c4Sopenharmony_ci * libdwP.h (__check_build_id): Removed now unused. 1836da0c48c4Sopenharmony_ci 1837da0c48c4Sopenharmony_ci2014-05-01 Mark Wielaard <mjw@redhat.com> 1838da0c48c4Sopenharmony_ci 1839da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf): Remove free_alt. 1840da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end): Don't check free_alt, don't end alt_dwarf. 1841da0c48c4Sopenharmony_ci * dwarf_setalt.c (dwarf_setalt): Don't check or set free_alt. 1842da0c48c4Sopenharmony_ci 1843da0c48c4Sopenharmony_ci2014-04-30 Mark Wielaard <mjw@redhat.com> 1844da0c48c4Sopenharmony_ci 1845da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.159): Add dwelf_elf_gnu_build_id. 1846da0c48c4Sopenharmony_ci 1847da0c48c4Sopenharmony_ci2014-04-15 Florian Weimer <fweimer@redhat.com> 1848da0c48c4Sopenharmony_ci 1849da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (__check_build_id, try_debugaltlink) 1850da0c48c4Sopenharmony_ci (open_debugaltlink): Move to libdwfl. 1851da0c48c4Sopenharmony_ci (check_section): Do not locate alternate debuginfo. 1852da0c48c4Sopenharmony_ci 1853da0c48c4Sopenharmony_ci2014-04-24 Florian Weimer <fweimer@redhat.com> 1854da0c48c4Sopenharmony_ci 1855da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.159): Export dwelf_dwarf_gnu_debugaltlink. 1856da0c48c4Sopenharmony_ci 1857da0c48c4Sopenharmony_ci2014-04-22 Florian Weimer <fweimer@redhat.com> 1858da0c48c4Sopenharmony_ci 1859da0c48c4Sopenharmony_ci * dwarf_getalt.c, dwarf_setalt.c: New files. 1860da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add them. 1861da0c48c4Sopenharmony_ci * libdw.h (dwarf_getalt, dwarf_setalt): Add function declarations. 1862da0c48c4Sopenharmony_ci * libdwP.h (dwarf_getalt, dwarf_setalt): Add internal function 1863da0c48c4Sopenharmony_ci declarations. 1864da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.159): Export the two new functions. 1865da0c48c4Sopenharmony_ci 1866da0c48c4Sopenharmony_ci2014-04-15 Florian Weimer <fweimer@redhat.com> 1867da0c48c4Sopenharmony_ci 1868da0c48c4Sopenharmony_ci * libdwP.h (enum IDX_gnu_debugaltlink): New. 1869da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_scnnames): Increase string size and add 1870da0c48c4Sopenharmony_ci .gnu_debugaltlink. 1871da0c48c4Sopenharmony_ci (check_section): Obtain .gnu_debugaltlink section from the 1872da0c48c4Sopenharmony_ci setiondata array. 1873da0c48c4Sopenharmony_ci 1874da0c48c4Sopenharmony_ci2014-04-11 Mark Wielaard <mjw@redhat.com> 1875da0c48c4Sopenharmony_ci 1876da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.159): New. Add dwelf_elf_gnu_debuglink. 1877da0c48c4Sopenharmony_ci * Makefile.am (libdw.so): Depend on libdwelf_pic.a. 1878da0c48c4Sopenharmony_ci (libdwelf_objects): New variable. 1879da0c48c4Sopenharmony_ci (libdw_a_LIBADD): Add libdwelf objects. 1880da0c48c4Sopenharmony_ci 1881da0c48c4Sopenharmony_ci2014-04-22 Mark Wielaard <mjw@redhat.com> 1882da0c48c4Sopenharmony_ci 1883da0c48c4Sopenharmony_ci * memory-access.h (get_sleb128_step): Remove undefined behavior 1884da0c48c4Sopenharmony_ci of left shifting a signed value. Replace it with a multiplication. 1885da0c48c4Sopenharmony_ci 1886da0c48c4Sopenharmony_ci2014-04-13 Mark Wielaard <mjw@redhat.com> 1887da0c48c4Sopenharmony_ci 1888da0c48c4Sopenharmony_ci * Makefile.am: Remove !MUDFLAP conditions. 1889da0c48c4Sopenharmony_ci 1890da0c48c4Sopenharmony_ci2014-04-09 Mark Wielaard <mjw@redhat.com> 1891da0c48c4Sopenharmony_ci 1892da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Check for unsigned overflow 1893da0c48c4Sopenharmony_ci before calling malloc to uncompress data. 1894da0c48c4Sopenharmony_ci 1895da0c48c4Sopenharmony_ci2014-03-03 Jan Kratochvil <jan.kratochvil@redhat.com> 1896da0c48c4Sopenharmony_ci 1897da0c48c4Sopenharmony_ci Fix abort() on missing section headers. 1898da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Replace abort call by goto err. 1899da0c48c4Sopenharmony_ci New label err to return NULL. 1900da0c48c4Sopenharmony_ci 1901da0c48c4Sopenharmony_ci2014-02-05 Josh Stone <jistone@redhat.com> 1902da0c48c4Sopenharmony_ci 1903da0c48c4Sopenharmony_ci * dwarf_decl_file.c (dwarf_decl_file): Read the idx as unsigned. 1904da0c48c4Sopenharmony_ci * dwarf_decl_line.c (__libdw_attr_intval): Read the line/column as 1905da0c48c4Sopenharmony_ci unsigned. Change the range assert to DWARF_E_INVALID_DWARF. 1906da0c48c4Sopenharmony_ci 1907da0c48c4Sopenharmony_ci2013-12-30 Mark Wielaard <mjw@redhat.com> 1908da0c48c4Sopenharmony_ci 1909da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.158): Add dwfl_core_file_attach and 1910da0c48c4Sopenharmony_ci dwfl_linux_proc_attach. 1911da0c48c4Sopenharmony_ci 1912da0c48c4Sopenharmony_ci2013-12-20 Mark Wielaard <mjw@redhat.com> 1913da0c48c4Sopenharmony_ci 1914da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.158): Add dwfl_getthread_frames. 1915da0c48c4Sopenharmony_ci 1916da0c48c4Sopenharmony_ci2013-12-18 Mark Wielaard <mjw@redhat.com> 1917da0c48c4Sopenharmony_ci 1918da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.158): Remove dwfl_module_addrsym_elf and 1919da0c48c4Sopenharmony_ci dwfl_module_getsym_elf. Add dwfl_module_addrinfo and 1920da0c48c4Sopenharmony_ci dwfl_module_getsym_info. 1921da0c48c4Sopenharmony_ci 1922da0c48c4Sopenharmony_ci2013-12-16 Mark Wielaard <mjw@redhat.com> 1923da0c48c4Sopenharmony_ci 1924da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.158): Add dwfl_module_getsymtab_first_global. 1925da0c48c4Sopenharmony_ci 1926da0c48c4Sopenharmony_ci2013-12-10 Josh Stone <jistone@redhat.com> 1927da0c48c4Sopenharmony_ci 1928da0c48c4Sopenharmony_ci * memory-access.h (get_uleb128_rest_return): Removed. 1929da0c48c4Sopenharmony_ci (get_sleb128_rest_return): Removed. 1930da0c48c4Sopenharmony_ci (get_uleb128_step): Make this a self-contained block. 1931da0c48c4Sopenharmony_ci (get_sleb128_step): Ditto, and use a bitfield to extend signs. 1932da0c48c4Sopenharmony_ci (get_uleb128): Make this wholly implemented by __libdw_get_uleb128. 1933da0c48c4Sopenharmony_ci (get_sleb128): Make this wholly implemented by __libdw_get_sleb128. 1934da0c48c4Sopenharmony_ci (__libdw_get_uleb128): Simplify and inline for all callers. 1935da0c48c4Sopenharmony_ci (__libdw_get_sleb128): Ditto. 1936da0c48c4Sopenharmony_ci * dwarf_getlocation.c (store_implicit_value): Void the unused uleb128. 1937da0c48c4Sopenharmony_ci * memory-access.c: Delete file. 1938da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Remove it. 1939da0c48c4Sopenharmony_ci (DEFS): Remove the now unused -DIS_LIBDW. 1940da0c48c4Sopenharmony_ci 1941da0c48c4Sopenharmony_ci2013-12-09 Josh Stone <jistone@redhat.com> 1942da0c48c4Sopenharmony_ci 1943da0c48c4Sopenharmony_ci * libdw_form.c (__libdw_form_val_compute_len): Renamed function from 1944da0c48c4Sopenharmony_ci __libdw_form_val_len, now handling only non-constant form lengths. 1945da0c48c4Sopenharmony_ci * libdwP.h (__libdw_form_val_len): New inlined function. 1946da0c48c4Sopenharmony_ci 1947da0c48c4Sopenharmony_ci2013-12-09 Mark Wielaard <mjw@redhat.com> 1948da0c48c4Sopenharmony_ci 1949da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): Handle empty 1950da0c48c4Sopenharmony_ci location expressions. 1951da0c48c4Sopenharmony_ci * dwarf_getlocation_attr.c (dwarf_getlocation_attr): When no 1952da0c48c4Sopenharmony_ci location found, return empty location expression. 1953da0c48c4Sopenharmony_ci * dwarf_getlocation_implicit_pointer.c 1954da0c48c4Sopenharmony_ci (dwarf_getlocation_implicit_pointer): Likewise. 1955da0c48c4Sopenharmony_ci (__libdw_empty_loc_attr): New internal function. 1956da0c48c4Sopenharmony_ci * libdwP.h (__libdw_empty_loc_attr): Define. 1957da0c48c4Sopenharmony_ci 1958da0c48c4Sopenharmony_ci2013-11-27 Mark Wielaard <mjw@redhat.com> 1959da0c48c4Sopenharmony_ci 1960da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.158): Add dwfl_module_addrsym_elf and 1961da0c48c4Sopenharmony_ci dwfl_module_getsym_elf. 1962da0c48c4Sopenharmony_ci 1963da0c48c4Sopenharmony_ci2013-11-26 Mark Wielaard <mjw@redhat.com> 1964da0c48c4Sopenharmony_ci 1965da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.156): Move dwfl_attach_state, dwfl_pid, 1966da0c48c4Sopenharmony_ci dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread, 1967da0c48c4Sopenharmony_ci dwfl_thread_state_registers, dwfl_thread_state_register_pc, 1968da0c48c4Sopenharmony_ci dwfl_getthreads, dwfl_thread_getframes and dwfl_frame_pc to ... 1969da0c48c4Sopenharmony_ci (ELFUTILS_0.158): ... here. 1970da0c48c4Sopenharmony_ci 1971da0c48c4Sopenharmony_ci2013-11-09 Mark Wielaard <mjw@redhat.com> 1972da0c48c4Sopenharmony_ci 1973da0c48c4Sopenharmony_ci * dwarf_getaranges.c (dwarf_getaranges): Read segment_size and 1974da0c48c4Sopenharmony_ci check that it is zero. 1975da0c48c4Sopenharmony_ci 1976da0c48c4Sopenharmony_ci2013-11-07 Jan Kratochvil <jan.kratochvil@redhat.com> 1977da0c48c4Sopenharmony_ci 1978da0c48c4Sopenharmony_ci * cfi.h (struct Dwarf_Frame_s): Make the comment more specific. 1979da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.156): Add dwfl_attach_state, dwfl_pid, 1980da0c48c4Sopenharmony_ci dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread, 1981da0c48c4Sopenharmony_ci dwfl_thread_state_registers, dwfl_thread_state_register_pc, 1982da0c48c4Sopenharmony_ci dwfl_getthreads, dwfl_thread_getframes and dwfl_frame_pc. 1983da0c48c4Sopenharmony_ci 1984da0c48c4Sopenharmony_ci2013-11-01 Michael Forney <mforney@mforney.org> 1985da0c48c4Sopenharmony_ci 1986da0c48c4Sopenharmony_ci * Makefile.am (libdwfl_objects): New definition. 1987da0c48c4Sopenharmony_ci (libdw_a_LIBADD): Use libdwfl_objects. 1988da0c48c4Sopenharmony_ci 1989da0c48c4Sopenharmony_ci2013-11-01 Michael Forney <mforney@mforney.org> 1990da0c48c4Sopenharmony_ci 1991da0c48c4Sopenharmony_ci * Makefile.am: Use READELF. 1992da0c48c4Sopenharmony_ci 1993da0c48c4Sopenharmony_ci2013-10-30 Jan Kratochvil <jan.kratochvil@redhat.com> 1994da0c48c4Sopenharmony_ci 1995da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.158): New. 1996da0c48c4Sopenharmony_ci 1997da0c48c4Sopenharmony_ci2013-10-10 Mark Wielaard <mjw@redhat.com> 1998da0c48c4Sopenharmony_ci 1999da0c48c4Sopenharmony_ci * dwarf_getfuncs.c (struct visitor_info): Rename start_offset to 2000da0c48c4Sopenharmony_ci start_addr and rename last_offset to last_addr. Now both void *. 2001da0c48c4Sopenharmony_ci (tree_visitor): Use start_add and die_addr instead of start_offset 2002da0c48c4Sopenharmony_ci and die_offset. 2003da0c48c4Sopenharmony_ci (dwarf_getfuncs): Use last_addr instead of last_offset. 2004da0c48c4Sopenharmony_ci 2005da0c48c4Sopenharmony_ci2013-10-06 Mark Wielaard <mjw@redhat.com> 2006da0c48c4Sopenharmony_ci 2007da0c48c4Sopenharmony_ci * cfi.c (execute_cfi): Make sure DW_CFA_expression and 2008da0c48c4Sopenharmony_ci DW_CFA_val_expression are not used with abi_cfi. 2009da0c48c4Sopenharmony_ci 2010da0c48c4Sopenharmony_ci2013-10-03 Josh Stone <jistone@redhat.com> 2011da0c48c4Sopenharmony_ci 2012da0c48c4Sopenharmony_ci * dwarf_formref_die.c (dwarf_formref_die): Don't hash the sig8 here. 2013da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): Since this never revisits 2014da0c48c4Sopenharmony_ci a unit, make sure to always hash the sig8 here, so none are missed. 2015da0c48c4Sopenharmony_ci 2016da0c48c4Sopenharmony_ci2013-09-29 Mark Wielaard <mjw@redhat.com> 2017da0c48c4Sopenharmony_ci 2018da0c48c4Sopenharmony_ci * dwarf_getlocation.c (store_implicit_value): Cast op->number2 to 2019da0c48c4Sopenharmony_ci uintptr_t before casting to char *. 2020da0c48c4Sopenharmony_ci (__libdw_intern_expression): Cast data to uintptr_t before casting 2021da0c48c4Sopenharmony_ci to Dwarf_Word. 2022da0c48c4Sopenharmony_ci * dwarf_getlocation_attr.c (dwarf_getlocation_attr): Cast 2023da0c48c4Sopenharmony_ci op->number2 to uintptr_t before casting to char *. 2024da0c48c4Sopenharmony_ci 2025da0c48c4Sopenharmony_ci2013-09-24 Josh Stone <jistone@redhat.com> 2026da0c48c4Sopenharmony_ci 2027da0c48c4Sopenharmony_ci * libdw_visit_scopes.c (classify_die): Removed. 2028da0c48c4Sopenharmony_ci (may_have_scopes): New function to replace classify_die. There's no 2029da0c48c4Sopenharmony_ci need for full classification; just find tags that may contain scopes. 2030da0c48c4Sopenharmony_ci (__libdw_visit_scopes): Use a direct tag comparison for imported 2031da0c48c4Sopenharmony_ci units, and use may_have_scopes to test if recursion is needed. 2032da0c48c4Sopenharmony_ci 2033da0c48c4Sopenharmony_ci2013-09-20 Mark Wielaard <mjw@redhat.com> 2034da0c48c4Sopenharmony_ci 2035da0c48c4Sopenharmony_ci * dwarf_getfuncs.c (visitor_info): New struct. 2036da0c48c4Sopenharmony_ci (tree_visitor): New function. 2037da0c48c4Sopenharmony_ci (dwarf_getfuncs): Use __libdw_visit_scopes with tree_visitor. 2038da0c48c4Sopenharmony_ci * libdw.h (dwarf_getfuncs): Expand function documentation. 2039da0c48c4Sopenharmony_ci 2040da0c48c4Sopenharmony_ci2013-09-12 Mark Wielaard <mjw@redhat.com> 2041da0c48c4Sopenharmony_ci 2042da0c48c4Sopenharmony_ci * fde.c (intern_fde): Free fde and set libdw errno when start 2043da0c48c4Sopenharmony_ci or end could not be read. 2044da0c48c4Sopenharmony_ci 2045da0c48c4Sopenharmony_ci2013-08-24 Mark Wielaard <mjw@redhat.com> 2046da0c48c4Sopenharmony_ci 2047da0c48c4Sopenharmony_ci * dwarf_getlocation.c (store_implicit_value): Don't take data 2048da0c48c4Sopenharmony_ci as argument, get block data from op number2. Return false when 2049da0c48c4Sopenharmony_ci block data length and op number don't match up. 2050da0c48c4Sopenharmony_ci (__libdw_intern_expression): Store start of block for 2051da0c48c4Sopenharmony_ci DW_OP_implicit_value and DW_OP_GNU_entry_value instead of 2052da0c48c4Sopenharmony_ci relative data offset. Also store block start (including length) 2053da0c48c4Sopenharmony_ci for DW_OP_GNU_const_type. Don't pass data to store_implicit_value. 2054da0c48c4Sopenharmony_ci * dwarf_getlocation_attr.c: New file. 2055da0c48c4Sopenharmony_ci * dwarf_getlocation_die.c: Likewise. 2056da0c48c4Sopenharmony_ci * libdw.h (dwarf_getlocation_die): New function definition. 2057da0c48c4Sopenharmony_ci (dwarf_getlocation_attr): Likewise. 2058da0c48c4Sopenharmony_ci * libdwP.h: Declare internal dwarf_getlocation_die. 2059da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.157): Add dwarf_getlocation_die and 2060da0c48c4Sopenharmony_ci dwarf_getlocation_attr. 2061da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_getlocation_die.c and 2062da0c48c4Sopenharmony_ci dwarf_getlocation_attr.c. 2063da0c48c4Sopenharmony_ci 2064da0c48c4Sopenharmony_ci2013-08-23 Mark Wielaard <mjw@redhat.com> 2065da0c48c4Sopenharmony_ci 2066da0c48c4Sopenharmony_ci * dwarf_getlocation.c (attr_ok): Also accept DW_AT_segment. 2067da0c48c4Sopenharmony_ci (attr_base_address): New function. 2068da0c48c4Sopenharmony_ci (initial_offset_base): New function. 2069da0c48c4Sopenharmony_ci (getlocations_addr): New function. Taken from... 2070da0c48c4Sopenharmony_ci (dwarf_getlocation_addr): here. Use new initial_offset_base and 2071da0c48c4Sopenharmony_ci getlocations_addr. 2072da0c48c4Sopenharmony_ci (dwarf_getlocations): New function. 2073da0c48c4Sopenharmony_ci * libdw.h (dwarf_getlocations): New function definition. 2074da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.157): New. 2075da0c48c4Sopenharmony_ci 2076da0c48c4Sopenharmony_ci2013-07-02 Mark Wielaard <mjw@redhat.com> 2077da0c48c4Sopenharmony_ci 2078da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Add new stack allocation 2079da0c48c4Sopenharmony_ci limit MAX_STACK_ALLOC. After MAX_STACK_ALLOC lines use malloc in 2080da0c48c4Sopenharmony_ci NEW_LINE macro. Free malloced line records if any at the end. 2081da0c48c4Sopenharmony_ci 2082da0c48c4Sopenharmony_ci2013-07-02 Mark Wielaard <mjw@redhat.com> 2083da0c48c4Sopenharmony_ci 2084da0c48c4Sopenharmony_ci * dwarf_getcfi_elf.c (getcfi_shdr): Check sh_type == SHT_PROGBITS. 2085da0c48c4Sopenharmony_ci 2086da0c48c4Sopenharmony_ci2013-06-26 Mark Wielaard <mjw@redhat.com> 2087da0c48c4Sopenharmony_ci 2088da0c48c4Sopenharmony_ci * libdw_visit_scopes.c (__libdw_visit_scopes): Don't reject root 2089da0c48c4Sopenharmony_ci DIEs without children. Return an error whenever dwarf_child or 2090da0c48c4Sopenharmony_ci dwarf_siblingof return an error. Don't call recurse and increase 2091da0c48c4Sopenharmony_ci the depth for an imported unit. Walk the children of an imported 2092da0c48c4Sopenharmony_ci unit as if they are logical children of the parent root DIE. 2093da0c48c4Sopenharmony_ci 2094da0c48c4Sopenharmony_ci2013-05-03 Mark Wielaard <mjw@redhat.com> 2095da0c48c4Sopenharmony_ci 2096da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Only set end_sequence 2097da0c48c4Sopenharmony_ci when nlinelist > 0. 2098da0c48c4Sopenharmony_ci 2099da0c48c4Sopenharmony_ci2013-04-28 Jan Kratochvil <jan.kratochvil@redhat.com> 2100da0c48c4Sopenharmony_ci 2101da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.156): New. 2102da0c48c4Sopenharmony_ci 2103da0c48c4Sopenharmony_ci2013-04-24 Mark Wielaard <mjw@redhat.com> 2104da0c48c4Sopenharmony_ci 2105da0c48c4Sopenharmony_ci * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES. 2106da0c48c4Sopenharmony_ci 2107da0c48c4Sopenharmony_ci2013-04-10 Mark Wielaard <mjw@redhat.com> 2108da0c48c4Sopenharmony_ci 2109da0c48c4Sopenharmony_ci * dwarf_formref_die.c (dwarf_formref_die): Reference size is only 2110da0c48c4Sopenharmony_ci equal to address size when we have a DW_FORM_ref_addr for DWARF 2111da0c48c4Sopenharmony_ci version 2. 2112da0c48c4Sopenharmony_ci 2113da0c48c4Sopenharmony_ci2013-03-25 Mark Wielaard <mjw@redhat.com> 2114da0c48c4Sopenharmony_ci 2115da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Mark highest address as 2116da0c48c4Sopenharmony_ci end_sequence. 2117da0c48c4Sopenharmony_ci 2118da0c48c4Sopenharmony_ci2013-03-12 Mark Wielaard <mjw@redhat.com> 2119da0c48c4Sopenharmony_ci 2120da0c48c4Sopenharmony_ci * dwarf_getsrcfiles.c (dwarf_getsrcfiles): Allow DW_TAG_partial_unit. 2121da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Likewise. 2122da0c48c4Sopenharmony_ci 2123da0c48c4Sopenharmony_ci2013-02-15 Mark Wielaard <mjw@redhat.com> 2124da0c48c4Sopenharmony_ci 2125da0c48c4Sopenharmony_ci * dwarf_formstring.c (dwarf_formstring): Check dbg_ret->sectiondata, 2126da0c48c4Sopenharmony_ci not dbg->sectiondata. 2127da0c48c4Sopenharmony_ci 2128da0c48c4Sopenharmony_ci2013-01-07 Roland McGrath <roland@hack.frob.com> 2129da0c48c4Sopenharmony_ci 2130da0c48c4Sopenharmony_ci * memory-access.h 2131da0c48c4Sopenharmony_ci [ALLOW_UNALIGNED] (read_8ubyte_unaligned_noncvt): New macro. 2132da0c48c4Sopenharmony_ci [!ALLOW_UNALIGNED] (read_8ubyte_unaligned_noncvt): New inline function. 2133da0c48c4Sopenharmony_ci 2134da0c48c4Sopenharmony_ci2012-12-18 Mark Wielaard <mjw@redhat.com> 2135da0c48c4Sopenharmony_ci 2136da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (valid_p): Call Dwarf_Sig8_Hash_free if invalid. 2137da0c48c4Sopenharmony_ci (check_section): Likewise on error. 2138da0c48c4Sopenharmony_ci (scngrp_read): Likewise. 2139da0c48c4Sopenharmony_ci (dwarf_begin_elf): Likewise. 2140da0c48c4Sopenharmony_ci 2141da0c48c4Sopenharmony_ci2012-10-09 Petr Machata <pmachata@redhat.com> 2142da0c48c4Sopenharmony_ci 2143da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): Handle 2144da0c48c4Sopenharmony_ci DW_OP_GNU_parameter_ref, DW_OP_GNU_convert, DW_OP_GNU_reinterpret, 2145da0c48c4Sopenharmony_ci DW_OP_GNU_regval_type, DW_OP_GNU_entry_value, 2146da0c48c4Sopenharmony_ci DW_OP_GNU_deref_type, DW_OP_GNU_const_type. 2147da0c48c4Sopenharmony_ci 2148da0c48c4Sopenharmony_ci2012-10-08 Jan Kratochvil <jan.kratochvil@redhat.com> 2149da0c48c4Sopenharmony_ci 2150da0c48c4Sopenharmony_ci * cfi.c: New include system.h. 2151da0c48c4Sopenharmony_ci (execute_cfi) (enough_registers): Clear new memory after realloc. 2152da0c48c4Sopenharmony_ci 2153da0c48c4Sopenharmony_ci2012-10-08 Jan Kratochvil <jan.kratochvil@redhat.com> 2154da0c48c4Sopenharmony_ci 2155da0c48c4Sopenharmony_ci * fde.c (__libdw_find_fde): Change <fde != NULL> to likely. Return 2156da0c48c4Sopenharmony_ci DWARF_E_NO_MATCH if .eh_frame_hdr points to FDE which is too short for 2157da0c48c4Sopenharmony_ci searched PC. 2158da0c48c4Sopenharmony_ci 2159da0c48c4Sopenharmony_ci2012-10-08 Jan Kratochvil <jan.kratochvil@redhat.com> 2160da0c48c4Sopenharmony_ci 2161da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression) <cfap>: Make new 2162da0c48c4Sopenharmony_ci loclist element DW_OP_call_frame_cfa before decoding the opcodes. 2163da0c48c4Sopenharmony_ci Remove the later DW_OP_call_frame_cfa push to RESULT. 2164da0c48c4Sopenharmony_ci 2165da0c48c4Sopenharmony_ci2012-10-08 Jan Kratochvil <jan.kratochvil@redhat.com> 2166da0c48c4Sopenharmony_ci 2167da0c48c4Sopenharmony_ci Code cleanup. 2168da0c48c4Sopenharmony_ci * fde.c (binary_search_fde): Remove always true <address >= start> 2169da0c48c4Sopenharmony_ci conditional. Move L initialization upwards. 2170da0c48c4Sopenharmony_ci 2171da0c48c4Sopenharmony_ci2012-08-24 Mark Wielaard <mjw@redhat.com> 2172da0c48c4Sopenharmony_ci 2173da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Only probe for dwz multi files 2174da0c48c4Sopenharmony_ci when ENABLE_DWZ is defined. 2175da0c48c4Sopenharmony_ci * libdwP.h (__check_build_id): Only declare when ENABLE_DWZ is 2176da0c48c4Sopenharmony_ci defined. 2177da0c48c4Sopenharmony_ci 2178da0c48c4Sopenharmony_ci2012-08-16 Mark Wielaard <mjw@redhat.com> 2179da0c48c4Sopenharmony_ci 2180da0c48c4Sopenharmony_ci * Makefile.am (EXTRA_DIST): Add known-dwarf.h. 2181da0c48c4Sopenharmony_ci * dwarf.h (DW_LANG_Go): Update comment. 2182da0c48c4Sopenharmony_ci (DW_LANG_Mips_Assembler): Likewise. 2183da0c48c4Sopenharmony_ci 2184da0c48c4Sopenharmony_ci2012-06-27 Mark Wielaard <mjw@redhat.com> 2185da0c48c4Sopenharmony_ci 2186da0c48c4Sopenharmony_ci * dwarf.h: Add DW_FORM_GNU_ref_alt and DW_FORM_GNU_strp_alt. 2187da0c48c4Sopenharmony_ci * dwarf_begin.c (dwarf_begin): Add INTDEF. 2188da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (__check_build_id): New internal_function. 2189da0c48c4Sopenharmony_ci (try_debugaltlink): New function. 2190da0c48c4Sopenharmony_ci (open_debugaltlink): Likewise. 2191da0c48c4Sopenharmony_ci (check_section): Try open_debugaltlink for .gnu_debugaltlink. 2192da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end): Free the alternative Dwarf descriptor if 2193da0c48c4Sopenharmony_ci necessary. 2194da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add DWARF_E_NO_ALT_DEBUGLINK. 2195da0c48c4Sopenharmony_ci * dwarf_formref.c (__libdw_formref): Using DW_FORM_GNU_ref_alt 2196da0c48c4Sopenharmony_ci is an error here. 2197da0c48c4Sopenharmony_ci * dwarf_formref_die.c (dwarf_formref_die): Handle DW_FORM_GNU_ref_alt. 2198da0c48c4Sopenharmony_ci * dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_GNU_strp_alt. 2199da0c48c4Sopenharmony_ci * dwarf_formudata.c (__libdw_formptr): Adjust __libdw_read_offset 2200da0c48c4Sopenharmony_ci calls. 2201da0c48c4Sopenharmony_ci * dwarf_getpubnames.c (get_offsets): Adjust __libdw_read_offset call. 2202da0c48c4Sopenharmony_ci * libdwP.h: Add DWARF_E_NO_ALT_DEBUGLINK. 2203da0c48c4Sopenharmony_ci (struct Dwarf): Add alt_dwarf and free_alt fields. 2204da0c48c4Sopenharmony_ci (__libdw_read_offset): Add dbg_ret argument, use to check with 2205da0c48c4Sopenharmony_ci __libdw_offset_in_section. 2206da0c48c4Sopenharmony_ci (__check_build_id): New function declaration. 2207da0c48c4Sopenharmony_ci (dwarf_begin): Define as INTDECL. 2208da0c48c4Sopenharmony_ci * libdw_form.c (__libdw_form_val_len): Handle DW_FORM_GNU_ref_alt 2209da0c48c4Sopenharmony_ci and DW_FORM_GNU_strp_alt. 2210da0c48c4Sopenharmony_ci 2211da0c48c4Sopenharmony_ci2012-07-19 Mark Wielaard <mjw@redhat.com> 2212da0c48c4Sopenharmony_ci 2213da0c48c4Sopenharmony_ci * dwarf.h: Add DW_OP_GNU_parameter_ref. 2214da0c48c4Sopenharmony_ci 2215da0c48c4Sopenharmony_ci2012-07-24 Mark Wielaard <mjw@redhat.com> 2216da0c48c4Sopenharmony_ci 2217da0c48c4Sopenharmony_ci * dwarf.h: Correct spelling of DW_LANG_ObjC. 2218da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c (array_size): Use correct spelling of 2219da0c48c4Sopenharmony_ci DW_LANG_ObjC. 2220da0c48c4Sopenharmony_ci 2221da0c48c4Sopenharmony_ci2012-07-24 Mark Wielaard <mjw@redhat.com> 2222da0c48c4Sopenharmony_ci 2223da0c48c4Sopenharmony_ci * dwarf.h: Add DW_ATE_UTF. 2224da0c48c4Sopenharmony_ci 2225da0c48c4Sopenharmony_ci2012-06-27 Mark Wielaard <mjw@redhat.com> 2226da0c48c4Sopenharmony_ci 2227da0c48c4Sopenharmony_ci * dwarf.h: Add DW_MACRO_GNU .debug_macro type encodings. 2228da0c48c4Sopenharmony_ci 2229da0c48c4Sopenharmony_ci2012-06-26 Mark Wielaard <mjw@redhat.com> 2230da0c48c4Sopenharmony_ci 2231da0c48c4Sopenharmony_ci * libdwP.h: Add IDX_debug_macro. 2232da0c48c4Sopenharmony_ci * dwarf.h: Add DW_AT_GNU_macros. 2233da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_scnnames): Add .debug_macro. 2234da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Recognize DW_AT_GNU_macros. 2235da0c48c4Sopenharmony_ci 2236da0c48c4Sopenharmony_ci2012-04-27 Mark Wielaard <mjw@redhat.com> 2237da0c48c4Sopenharmony_ci 2238da0c48c4Sopenharmony_ci * libdw/dwarf_highpc.c (dwarf_highpc): Handle DW_AT_high_pc being 2239da0c48c4Sopenharmony_ci a constant offset from DW_AT_low_pc. 2240da0c48c4Sopenharmony_ci 2241da0c48c4Sopenharmony_ci2012-03-19 Tom Tromey <tromey@redhat.com> 2242da0c48c4Sopenharmony_ci 2243da0c48c4Sopenharmony_ci * libdw_findcu.c (findcu_cb): Move earlier. 2244da0c48c4Sopenharmony_ci (__libdw_intern_next_unit): Add new CU to search tree here... 2245da0c48c4Sopenharmony_ci (__libdw_findcu): ... not here. 2246da0c48c4Sopenharmony_ci 2247da0c48c4Sopenharmony_ci2012-01-31 Mark Wielaard <mjw@redhat.com> 2248da0c48c4Sopenharmony_ci 2249da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Handle DW_FORM_sec_offset. 2250da0c48c4Sopenharmony_ci 2251da0c48c4Sopenharmony_ci2011-11-31 Mark Wielaard <mjw@redhat.com> 2252da0c48c4Sopenharmony_ci 2253da0c48c4Sopenharmony_ci * Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk. 2254da0c48c4Sopenharmony_ci 2255da0c48c4Sopenharmony_ci2011-07-14 Mark Wielaard <mjw@redhat.com> 2256da0c48c4Sopenharmony_ci 2257da0c48c4Sopenharmony_ci * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info. 2258da0c48c4Sopenharmony_ci 2259da0c48c4Sopenharmony_ci2011-05-16 Jakub Jelinek <jakub@redhat.com> 2260da0c48c4Sopenharmony_ci 2261da0c48c4Sopenharmony_ci * dwarf.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type, 2262da0c48c4Sopenharmony_ci DW_OP_GNU_deref_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret): 2263da0c48c4Sopenharmony_ci New. 2264da0c48c4Sopenharmony_ci 2265da0c48c4Sopenharmony_ci2011-04-26 Mark Wielaard <mjw@redhat.com> 2266da0c48c4Sopenharmony_ci 2267da0c48c4Sopenharmony_ci * dwarf_child (dwarf_child): Sanity check end of section against 2268da0c48c4Sopenharmony_ci cu_data () of die->cu. 2269da0c48c4Sopenharmony_ci 2270da0c48c4Sopenharmony_ci2011-03-22 Mark Wielaard <mjw@redhat.com> 2271da0c48c4Sopenharmony_ci 2272da0c48c4Sopenharmony_ci * dwarf.h: Add DW_TAG_GNU_call_site, 2273da0c48c4Sopenharmony_ci DW_TAG_GNU_call_site_parameter, 2274da0c48c4Sopenharmony_ci DW_AT_GNU_call_site_value, 2275da0c48c4Sopenharmony_ci DW_AT_GNU_call_site_data_value, 2276da0c48c4Sopenharmony_ci DW_AT_GNU_call_site_target, 2277da0c48c4Sopenharmony_ci DW_AT_GNU_call_site_target_clobbered, 2278da0c48c4Sopenharmony_ci DW_AT_GNU_tail_call, 2279da0c48c4Sopenharmony_ci DW_AT_GNU_all_tail_call_sites, 2280da0c48c4Sopenharmony_ci DW_AT_GNU_all_call_sites, 2281da0c48c4Sopenharmony_ci DW_AT_GNU_all_source_call_sites, 2282da0c48c4Sopenharmony_ci and DW_OP_GNU_entry_value. 2283da0c48c4Sopenharmony_ci 2284da0c48c4Sopenharmony_ci2011-03-10 Petr Machata <pmachata@redhat.com> 2285da0c48c4Sopenharmony_ci 2286da0c48c4Sopenharmony_ci * libdw/dwarf_tag.c (__libdw_findabbrev): Reject requests for 2287da0c48c4Sopenharmony_ci abbreviation with code 0. 2288da0c48c4Sopenharmony_ci 2289da0c48c4Sopenharmony_ci2011-03-09 Petr Machata <pmachata@redhat.com> 2290da0c48c4Sopenharmony_ci 2291da0c48c4Sopenharmony_ci * libdw/dwarf_child.c (dwarf_child): Check for section overrun. 2292da0c48c4Sopenharmony_ci 2293da0c48c4Sopenharmony_ci2011-02-23 Roland McGrath <roland@redhat.com> 2294da0c48c4Sopenharmony_ci 2295da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf) [USE_ZLIB]: New member sectiondata_gzip_mask. 2296da0c48c4Sopenharmony_ci Declare __libdw_free_zdata. 2297da0c48c4Sopenharmony_ci * dwarf_end.c [USE_ZLIB] (__libdw_free_zdata): New function. 2298da0c48c4Sopenharmony_ci (dwarf_end): Call it. 2299da0c48c4Sopenharmony_ci 2300da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (valid_p): Likewise. 2301da0c48c4Sopenharmony_ci (check_section, scngrp_read): Likewise. 2302da0c48c4Sopenharmony_ci (check_section) [USE_ZLIB]: Grok .z* flavors of sections. 2303da0c48c4Sopenharmony_ci 2304da0c48c4Sopenharmony_ci2010-10-13 Roland McGrath <roland@redhat.com> 2305da0c48c4Sopenharmony_ci 2306da0c48c4Sopenharmony_ci * dwarf.h: Add DW_LANG_Go. 2307da0c48c4Sopenharmony_ci 2308da0c48c4Sopenharmony_ci2010-10-05 Roland McGrath <roland@redhat.com> 2309da0c48c4Sopenharmony_ci 2310da0c48c4Sopenharmony_ci * dwarf_getaranges.c: Use malloc rather than alloca, 2311da0c48c4Sopenharmony_ci since the total number of elements can be quite huge. 2312da0c48c4Sopenharmony_ci 2313da0c48c4Sopenharmony_ci2010-07-26 Roland McGrath <roland@redhat.com> 2314da0c48c4Sopenharmony_ci 2315da0c48c4Sopenharmony_ci * dwarf_getlocation_implicit_pointer.c: New file. 2316da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 2317da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.149): New set. 2318da0c48c4Sopenharmony_ci Add dwarf_getlocation_implicit_pointer. 2319da0c48c4Sopenharmony_ci * libdw.h: Declare it. 2320da0c48c4Sopenharmony_ci 2321da0c48c4Sopenharmony_ci * dwarf_offdie.c (do_offdie): Renamed to __libdw_offdie, made global. 2322da0c48c4Sopenharmony_ci (dwarf_offdie, dwarf_offdie_types): Update callers. 2323da0c48c4Sopenharmony_ci * libdwP.h: Declare it. 2324da0c48c4Sopenharmony_ci 2325da0c48c4Sopenharmony_ci * dwarf.h: Add DW_OP_GNU_implicit_pointer. 2326da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): Handle it. 2327da0c48c4Sopenharmony_ci 2328da0c48c4Sopenharmony_ci2010-08-24 Roland McGrath <roland@redhat.com> 2329da0c48c4Sopenharmony_ci 2330da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.149): New set. Add dwfl_dwarf_line. 2331da0c48c4Sopenharmony_ci 2332da0c48c4Sopenharmony_ci2010-07-27 Roland McGrath <roland@redhat.com> 2333da0c48c4Sopenharmony_ci 2334da0c48c4Sopenharmony_ci * dwarf_formref_die.c: Fix sig8 hash insertion. 2335da0c48c4Sopenharmony_ci 2336da0c48c4Sopenharmony_ci2010-06-23 Roland McGrath <roland@redhat.com> 2337da0c48c4Sopenharmony_ci 2338da0c48c4Sopenharmony_ci * cfi.c (dwarf_cfi_validate_fde): Function removed. 2339da0c48c4Sopenharmony_ci * libdw.h: Remove it. 2340da0c48c4Sopenharmony_ci * libdw.map: Likewise. 2341da0c48c4Sopenharmony_ci 2342da0c48c4Sopenharmony_ci2010-06-22 Roland McGrath <roland@redhat.com> 2343da0c48c4Sopenharmony_ci 2344da0c48c4Sopenharmony_ci * dwarf_getlocation.c (check_constant_offset): data[48] are constant. 2345da0c48c4Sopenharmony_ci 2346da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Fix signed comparison warning in extended 2347da0c48c4Sopenharmony_ci opcode parsing. 2348da0c48c4Sopenharmony_ci 2349da0c48c4Sopenharmony_ci2010-06-21 Roland McGrath <roland@redhat.com> 2350da0c48c4Sopenharmony_ci 2351da0c48c4Sopenharmony_ci * dwarf.h: Add DW_TAG_GNU_* constants. 2352da0c48c4Sopenharmony_ci 2353da0c48c4Sopenharmony_ci * memory-access.h (get_sleb128_rest_return): Fix sign extension for 2354da0c48c4Sopenharmony_ci 10-byte case. 2355da0c48c4Sopenharmony_ci 2356da0c48c4Sopenharmony_ci2010-06-20 Roland McGrath <roland@redhat.com> 2357da0c48c4Sopenharmony_ci 2358da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_findcu): Take new flag argument, 2359da0c48c4Sopenharmony_ci to search TUs instead of CUs. 2360da0c48c4Sopenharmony_ci * libdwP.h: Update decl. 2361da0c48c4Sopenharmony_ci (struct Dwarf): New member tu_tree. 2362da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end): Clean up tu_tree. 2363da0c48c4Sopenharmony_ci * dwarf_offdie.c (do_offdie): New function, broken out of ... 2364da0c48c4Sopenharmony_ci (dwarf_offdie): ... here. 2365da0c48c4Sopenharmony_ci (dwarf_offdie_types): New function. 2366da0c48c4Sopenharmony_ci * libdw.h: Declare it. 2367da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.148): Add it. 2368da0c48c4Sopenharmony_ci 2369da0c48c4Sopenharmony_ci * libdwP.h (CUDIE): Use cu_data. 2370da0c48c4Sopenharmony_ci * dwarf_formblock.c: Likewise. 2371da0c48c4Sopenharmony_ci * dwarf_formref_die.c: Likewise. 2372da0c48c4Sopenharmony_ci * dwarf_diecu.c: Use CUDIE macro. 2373da0c48c4Sopenharmony_ci * dwarf_formaddr.c: Use cu_sec_idx. 2374da0c48c4Sopenharmony_ci 2375da0c48c4Sopenharmony_ci2010-06-16 Roland McGrath <roland@redhat.com> 2376da0c48c4Sopenharmony_ci 2377da0c48c4Sopenharmony_ci * dwarf_formref_die.c: Use dwarf_offdie only for DW_FORM_ref_addr, so 2378da0c48c4Sopenharmony_ci we don't repeat a CU lookup we've already done. Handle 2379da0c48c4Sopenharmony_ci DW_FORM_ref_sig8 using sig8_hash table and __libdw_intern_next_unit. 2380da0c48c4Sopenharmony_ci 2381da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_intern_next_unit): New function, 2382da0c48c4Sopenharmony_ci broken out of ... 2383da0c48c4Sopenharmony_ci (__libdw_findcu): ... here. Call it. 2384da0c48c4Sopenharmony_ci * libdwP.h: Declare it. 2385da0c48c4Sopenharmony_ci (struct Dwarf): New member next_tu_offset. 2386da0c48c4Sopenharmony_ci 2387da0c48c4Sopenharmony_ci * dwarf_sig8_hash.c: New file. 2388da0c48c4Sopenharmony_ci * dwarf_sig8_hash.h: New file. 2389da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them. 2390da0c48c4Sopenharmony_ci * dwarf_abbrev_hash.c: Include dwarf_sig8_hash.h before 2391da0c48c4Sopenharmony_ci defining NO_UNDEF. 2392da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf): New member sig8_hash. 2393da0c48c4Sopenharmony_ci * dwarf_begin_elf.c: Call Dwarf_Sig8_Hash_init on it. 2394da0c48c4Sopenharmony_ci * dwarf_end.c: Call Dwarf_Sig8_Hash_free on it. 2395da0c48c4Sopenharmony_ci 2396da0c48c4Sopenharmony_ci * dwarf_nextcu.c (dwarf_next_unit): New function, broken out of ... 2397da0c48c4Sopenharmony_ci (dwarf_nextcu): ... here. Call it. 2398da0c48c4Sopenharmony_ci * libdw.h: Declare it. 2399da0c48c4Sopenharmony_ci * libdwP.h: Add INTDECL. 2400da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_findcu): Use it instead of dwarf_nextcu. 2401da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.148): New set, add dwarf_next_unit. 2402da0c48c4Sopenharmony_ci 2403da0c48c4Sopenharmony_ci * libdwP.h (cu_sec_idx, cu_data): New functions. 2404da0c48c4Sopenharmony_ci Use .debug_types when CU is a TU. 2405da0c48c4Sopenharmony_ci * dwarf_cuoffset.c: Use that instead of assuming IDX_debug_info. 2406da0c48c4Sopenharmony_ci * dwarf_siblingof.c: Likewise. 2407da0c48c4Sopenharmony_ci * dwarf_formstring.c: Likewise. 2408da0c48c4Sopenharmony_ci * dwarf_formudata.c (__libdw_formptr, dwarf_formudata): Likewise. 2409da0c48c4Sopenharmony_ci * dwarf_getlocation.c (dwarf_getlocation): Likewise. 2410da0c48c4Sopenharmony_ci (dwarf_getlocation_addr): Likewise. 2411da0c48c4Sopenharmony_ci 2412da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_CU): Add new members type_offset, type_sig8. 2413da0c48c4Sopenharmony_ci (DIE_OFFSET_FROM_CU_OFFSET): Take flag argument; if true, compute 2414da0c48c4Sopenharmony_ci .debug_types header size instead of .debug_info header size. 2415da0c48c4Sopenharmony_ci (CUDIE): Use it. 2416da0c48c4Sopenharmony_ci * dwarf_diecu.c: Update caller. 2417da0c48c4Sopenharmony_ci * dwarf_getaranges.c: Likewise. 2418da0c48c4Sopenharmony_ci * dwarf_nextcu.c: Likewise. 2419da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_findcu): Initialize new members. 2420da0c48c4Sopenharmony_ci 2421da0c48c4Sopenharmony_ci * fde.c (fde_by_offset): Renamed to ... 2422da0c48c4Sopenharmony_ci (__libdw_fde_by_offset): ... this, made global and internal_function. 2423da0c48c4Sopenharmony_ci Don't take ADDRESS argument. 2424da0c48c4Sopenharmony_ci (__libdw_find_fde): Update caller. Do address sanity check here. 2425da0c48c4Sopenharmony_ci * cfi.h: Declare __libdw_fde_by_offset. 2426da0c48c4Sopenharmony_ci * cfi.c (dwarf_cfi_validate_fde): New function. 2427da0c48c4Sopenharmony_ci * libdw.h: Declare it. 2428da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.148): Add it. 2429da0c48c4Sopenharmony_ci 2430da0c48c4Sopenharmony_ci * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to 2431da0c48c4Sopenharmony_ci either DW_EH_PE_udata8 or DW_EH_PE_udata4. 2432da0c48c4Sopenharmony_ci 2433da0c48c4Sopenharmony_ci * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect. 2434da0c48c4Sopenharmony_ci Don't assume DW_EH_PE_aligned refers to native address size. 2435da0c48c4Sopenharmony_ci 2436da0c48c4Sopenharmony_ci * cfi.c (execute_cfi): Barf on CIE initial instructions changing the 2437da0c48c4Sopenharmony_ci address. 2438da0c48c4Sopenharmony_ci 2439da0c48c4Sopenharmony_ci2010-06-17 Roland McGrath <roland@redhat.com> 2440da0c48c4Sopenharmony_ci 2441da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_Line_s): Add members isa, discriminator, and 2442da0c48c4Sopenharmony_ci op_index. 2443da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Move NEW_FILE macro guts 2444da0c48c4Sopenharmony_ci into an inner inline function. Set new fields. Check all fields for 2445da0c48c4Sopenharmony_ci overflow when setting. 2446da0c48c4Sopenharmony_ci * dwarf_lineisa.c: New file. 2447da0c48c4Sopenharmony_ci * dwarf_linediscriminator.c: New file. 2448da0c48c4Sopenharmony_ci * dwarf_lineop_index.c: New file. 2449da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add them. 2450da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.148): Add them. 2451da0c48c4Sopenharmony_ci * libdw.h: Declare them. 2452da0c48c4Sopenharmony_ci 2453da0c48c4Sopenharmony_ci2010-06-16 Roland McGrath <roland@redhat.com> 2454da0c48c4Sopenharmony_ci 2455da0c48c4Sopenharmony_ci * dwarf_next_cfi.c: Fix version 4 return_address_register decoding. 2456da0c48c4Sopenharmony_ci 2457da0c48c4Sopenharmony_ci * fde.c (fde_by_offset): Renamed to ... 2458da0c48c4Sopenharmony_ci (__libdw_fde_by_offset): ... this, made global and internal_function. 2459da0c48c4Sopenharmony_ci Don't take ADDRESS argument. 2460da0c48c4Sopenharmony_ci (__libdw_find_fde): Update caller. Do address sanity check here. 2461da0c48c4Sopenharmony_ci * cfi.h: Declare __libdw_fde_by_offset. 2462da0c48c4Sopenharmony_ci * cfi.c (dwarf_cfi_validate_fde): New function. 2463da0c48c4Sopenharmony_ci * libdw.h: Declare it. 2464da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.148): Add it. 2465da0c48c4Sopenharmony_ci 2466da0c48c4Sopenharmony_ci * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to 2467da0c48c4Sopenharmony_ci either DW_EH_PE_udata8 or DW_EH_PE_udata4. 2468da0c48c4Sopenharmony_ci 2469da0c48c4Sopenharmony_ci * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect. 2470da0c48c4Sopenharmony_ci Don't assume DW_EH_PE_aligned refers to native address size. 2471da0c48c4Sopenharmony_ci 2472da0c48c4Sopenharmony_ci * cfi.c (execute_cfi): Barf on CIE initial instructions changing the 2473da0c48c4Sopenharmony_ci address. 2474da0c48c4Sopenharmony_ci 2475da0c48c4Sopenharmony_ci2010-06-15 Roland McGrath <roland@redhat.com> 2476da0c48c4Sopenharmony_ci 2477da0c48c4Sopenharmony_ci * dwarf_formref.c (__libdw_formref): Diagnose DW_FORM_ref_sig8 like 2478da0c48c4Sopenharmony_ci DW_FORM_ref_addr. 2479da0c48c4Sopenharmony_ci * dwarf_formref_die.c (dwarf_formref_die): Diagnose it the same way 2480da0c48c4Sopenharmony_ci here, since we don't support it yet. 2481da0c48c4Sopenharmony_ci 2482da0c48c4Sopenharmony_ci * dwarf_next_cfi.c: Handle version 4 format. 2483da0c48c4Sopenharmony_ci 2484da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Handle version 4 format. 2485da0c48c4Sopenharmony_ci 2486da0c48c4Sopenharmony_ci2010-06-01 Roland McGrath <roland@redhat.com> 2487da0c48c4Sopenharmony_ci 2488da0c48c4Sopenharmony_ci * libdwP.h: Remove unused IDX_debug_*names, add IDX_debug_types. 2489da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_scnnames): Likewise. 2490da0c48c4Sopenharmony_ci 2491da0c48c4Sopenharmony_ci * libdwP.h (CIE_VERSION): Remove unused macro. 2492da0c48c4Sopenharmony_ci 2493da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Fix version field test. 2494da0c48c4Sopenharmony_ci * libdwP.h (DWARF_VERSION): Remove useless macro. 2495da0c48c4Sopenharmony_ci 2496da0c48c4Sopenharmony_ci * dwarf_formudata.c (__libdw_formptr): Fix DW_FORM_sec_offset handling. 2497da0c48c4Sopenharmony_ci 2498da0c48c4Sopenharmony_ci * dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_exprloc. 2499da0c48c4Sopenharmony_ci 2500da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_findcu): Accept version 4. 2501da0c48c4Sopenharmony_ci 2502da0c48c4Sopenharmony_ci2010-05-31 Mark Wielaard <mjw@redhat.com> 2503da0c48c4Sopenharmony_ci 2504da0c48c4Sopenharmony_ci * cfi.h (dwarf_cfi_cie_p): Move definition from here, to .. 2505da0c48c4Sopenharmony_ci * libdw.h (dwarf_cfi_cie_p): ... here. 2506da0c48c4Sopenharmony_ci 2507da0c48c4Sopenharmony_ci2010-05-31 Mark Wielaard <mjw@redhat.com> 2508da0c48c4Sopenharmony_ci 2509da0c48c4Sopenharmony_ci * dwarf.h: Fix DW_LANG_Python constant. 2510da0c48c4Sopenharmony_ci 2511da0c48c4Sopenharmony_ci2010-05-28 Eduardo Santiago <santiago@redhat.com> 2512da0c48c4Sopenharmony_ci 2513da0c48c4Sopenharmony_ci * dwarf_getlocation.c (dwarf_getlocation): Do attr_ok check first 2514da0c48c4Sopenharmony_ci thing. 2515da0c48c4Sopenharmony_ci 2516da0c48c4Sopenharmony_ci2010-05-27 Roland McGrath <roland@redhat.com> 2517da0c48c4Sopenharmony_ci 2518da0c48c4Sopenharmony_ci * dwarf.h: Add DW_AT_enum_class, DW_AT_linkage_name, 2519da0c48c4Sopenharmony_ci DW_TAG_template_alias, DW_LANG_Python, DW_LNE_set_discriminator. 2520da0c48c4Sopenharmony_ci 2521da0c48c4Sopenharmony_ci2010-05-08 Roland McGrath <roland@redhat.com> 2522da0c48c4Sopenharmony_ci 2523da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): Take new argument 2524da0c48c4Sopenharmony_ci REF_SIZE. Use that to handle DW_OP_call_ref correctly. 2525da0c48c4Sopenharmony_ci (getlocation): Update caller. 2526da0c48c4Sopenharmony_ci * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise. 2527da0c48c4Sopenharmony_ci * dwarf_frame_register.c (dwarf_frame_register): Likewise. 2528da0c48c4Sopenharmony_ci * libdwP.h: Update decl. 2529da0c48c4Sopenharmony_ci 2530da0c48c4Sopenharmony_ci2010-04-26 Roland McGrath <roland@redhat.com> 2531da0c48c4Sopenharmony_ci 2532da0c48c4Sopenharmony_ci * cfi.h (struct Dwarf_Frame_s): Add cfa_invalid alternative in cfa_rule. 2533da0c48c4Sopenharmony_ci * cfi.c (execute_cfi): Set that instead of doing cfi_assert for 2534da0c48c4Sopenharmony_ci DW_CFA_def_cfa_{offset*,register} when a non-offset rule is in force. 2535da0c48c4Sopenharmony_ci * dwarf_frame_cfa.c (dwarf_frame_cfa): Handle cfa_invalid. 2536da0c48c4Sopenharmony_ci 2537da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): Take new arg CFAP. 2538da0c48c4Sopenharmony_ci Prepend DW_OP_call_frame_cfa if true. 2539da0c48c4Sopenharmony_ci (getlocation): Update caller. 2540da0c48c4Sopenharmony_ci * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise. 2541da0c48c4Sopenharmony_ci * dwarf_frame_register.c (dwarf_frame_register): Likewise. 2542da0c48c4Sopenharmony_ci * libdwP.h: Update decl. 2543da0c48c4Sopenharmony_ci 2544da0c48c4Sopenharmony_ci2010-04-22 Roland McGrath <roland@redhat.com> 2545da0c48c4Sopenharmony_ci 2546da0c48c4Sopenharmony_ci * cfi.c (execute_cfi): Never return without cleanup. 2547da0c48c4Sopenharmony_ci Free FS on failure. 2548da0c48c4Sopenharmony_ci (cie_cache_initial_state): Adjust caller to expect that free. 2549da0c48c4Sopenharmony_ci (__libdw_frame_at_address): Likewise. 2550da0c48c4Sopenharmony_ci 2551da0c48c4Sopenharmony_ci2010-03-10 Roland McGrath <roland@redhat.com> 2552da0c48c4Sopenharmony_ci 2553da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.146): New set. Add dwfl_core_file_report. 2554da0c48c4Sopenharmony_ci 2555da0c48c4Sopenharmony_ci2010-02-15 Roland McGrath <roland@redhat.com> 2556da0c48c4Sopenharmony_ci 2557da0c48c4Sopenharmony_ci * Makefile.am: Use config/eu.am for common stuff. 2558da0c48c4Sopenharmony_ci 2559da0c48c4Sopenharmony_ci2010-02-02 Mark Wielaard <mjw@redhat.com> 2560da0c48c4Sopenharmony_ci 2561da0c48c4Sopenharmony_ci * fde.c (intern_fde): Fix length check for sized_augmentation_data. 2562da0c48c4Sopenharmony_ci 2563da0c48c4Sopenharmony_ci2010-01-07 Roland McGrath <roland@redhat.com> 2564da0c48c4Sopenharmony_ci 2565da0c48c4Sopenharmony_ci * dwarf_getcfi_elf.c (getcfi_phdr): Use elf_getphdrnum. 2566da0c48c4Sopenharmony_ci 2567da0c48c4Sopenharmony_ci2010-01-05 Roland McGrath <roland@redhat.com> 2568da0c48c4Sopenharmony_ci 2569da0c48c4Sopenharmony_ci * dwarf_aggregate_size.c: New file. 2570da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 2571da0c48c4Sopenharmony_ci * libdw.h: Declare it. 2572da0c48c4Sopenharmony_ci * libdwP.h: Add INTDECL. 2573da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.144): New set. Add dwarf_aggregate_size. 2574da0c48c4Sopenharmony_ci 2575da0c48c4Sopenharmony_ci * dwarf_srclang.c: Add INTDEF. 2576da0c48c4Sopenharmony_ci * libdwP.h: Add INTDECL. 2577da0c48c4Sopenharmony_ci 2578da0c48c4Sopenharmony_ci * dwarf.h: Add some more DW_AT_GNU_* types from gcc. 2579da0c48c4Sopenharmony_ci 2580da0c48c4Sopenharmony_ci * dwarf.h: Add DW_AT_GNU_vector, DW_AT_GNU_template_name. 2581da0c48c4Sopenharmony_ci 2582da0c48c4Sopenharmony_ci2009-11-21 Roland McGrath <roland@redhat.com> 2583da0c48c4Sopenharmony_ci 2584da0c48c4Sopenharmony_ci * dwarf_getlocation.c (check_constant_offset): Return 1 for all 2585da0c48c4Sopenharmony_ci non-constant forms. 2586da0c48c4Sopenharmony_ci 2587da0c48c4Sopenharmony_ci2009-10-15 Roland McGrath <roland@redhat.com> 2588da0c48c4Sopenharmony_ci 2589da0c48c4Sopenharmony_ci * libdw_form.c (__libdw_form_val_len): Grok DW_FORM_sec_offset, 2590da0c48c4Sopenharmony_ci DW_FORM_exprloc, DW_FORM_flag_present, and DW_FORM_ref_sig8. 2591da0c48c4Sopenharmony_ci 2592da0c48c4Sopenharmony_ci2009-09-17 Roland McGrath <roland@redhat.com> 2593da0c48c4Sopenharmony_ci 2594da0c48c4Sopenharmony_ci * dwarf_getlocation.c (dwarf_getlocation_implicit_value): Make OP 2595da0c48c4Sopenharmony_ci argument a pointer to const. 2596da0c48c4Sopenharmony_ci * libdw.h: Update decl. 2597da0c48c4Sopenharmony_ci 2598da0c48c4Sopenharmony_ci2009-09-10 Roland McGrath <roland@redhat.com> 2599da0c48c4Sopenharmony_ci 2600da0c48c4Sopenharmony_ci * dwarf_getlocation.c (store_implicit_value): New function. 2601da0c48c4Sopenharmony_ci (__libdw_intern_expression): Use it, handle DW_OP_implicit_value. 2602da0c48c4Sopenharmony_ci (dwarf_getlocation_implicit_value): New function. 2603da0c48c4Sopenharmony_ci * libdw.h: Declare it. 2604da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.143): Add it. 2605da0c48c4Sopenharmony_ci 2606da0c48c4Sopenharmony_ci2009-09-09 Mark Wielaard <mjw@redhat.com> 2607da0c48c4Sopenharmony_ci 2608da0c48c4Sopenharmony_ci * dwarf_getcfi.c (dwarf_getcfi): Clear cfi->ebl. 2609da0c48c4Sopenharmony_ci 2610da0c48c4Sopenharmony_ci2009-08-21 Josh Stone <jistone@redhat.com> 2611da0c48c4Sopenharmony_ci 2612da0c48c4Sopenharmony_ci * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too. 2613da0c48c4Sopenharmony_ci 2614da0c48c4Sopenharmony_ci2009-08-10 Roland McGrath <roland@redhat.com> 2615da0c48c4Sopenharmony_ci 2616da0c48c4Sopenharmony_ci * dwarf_getscopevar.c: Use dwarf_diename. 2617da0c48c4Sopenharmony_ci 2618da0c48c4Sopenharmony_ci2009-08-09 Roland McGrath <roland@redhat.com> 2619da0c48c4Sopenharmony_ci 2620da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.143): New version set, 2621da0c48c4Sopenharmony_ci inherits from ELFUTILS_0.142. 2622da0c48c4Sopenharmony_ci * dwarf_arrayorder.c: Use OLD_VERSION and NEW_VERSION to define an 2623da0c48c4Sopenharmony_ci alias in the ELFUTILS_0.122 version set and the default in the new set. 2624da0c48c4Sopenharmony_ci * dwarf_srclang.c: Likewise. 2625da0c48c4Sopenharmony_ci * dwarf_decl_file.c: Likewise. 2626da0c48c4Sopenharmony_ci * dwarf_decl_line.c: Likewise. 2627da0c48c4Sopenharmony_ci * dwarf_decl_column.c: Likewise. 2628da0c48c4Sopenharmony_ci * dwarf_bytesize.c: Likewise. 2629da0c48c4Sopenharmony_ci * dwarf_bitsize.c: Likewise. 2630da0c48c4Sopenharmony_ci * dwarf_bitoffset.c: Likewise. 2631da0c48c4Sopenharmony_ci 2632da0c48c4Sopenharmony_ci2009-08-07 Roland McGrath <roland@redhat.com> 2633da0c48c4Sopenharmony_ci 2634da0c48c4Sopenharmony_ci * dwarf_arrayorder.c: Use dwarf_attr_integrate. 2635da0c48c4Sopenharmony_ci * dwarf_srclang.c: Likewise. 2636da0c48c4Sopenharmony_ci * dwarf_decl_file.c: Likewise. 2637da0c48c4Sopenharmony_ci * dwarf_decl_line.c (__libdw_attr_intval): Likewise. 2638da0c48c4Sopenharmony_ci * dwarf_bytesize.c: Likewise. 2639da0c48c4Sopenharmony_ci * dwarf_bitsize.c: Likewise. 2640da0c48c4Sopenharmony_ci * dwarf_bitoffset.c: Likewise. 2641da0c48c4Sopenharmony_ci 2642da0c48c4Sopenharmony_ci2009-07-22 Roland McGrath <roland@redhat.com> 2643da0c48c4Sopenharmony_ci 2644da0c48c4Sopenharmony_ci * dwarf_frame_cfa.c: Change calling convention. 2645da0c48c4Sopenharmony_ci * libdw.h: Update decl. 2646da0c48c4Sopenharmony_ci 2647da0c48c4Sopenharmony_ci * dwarf_frame_register.c: Change calling/return-value convention for 2648da0c48c4Sopenharmony_ci value-only results and undefined/same_value. 2649da0c48c4Sopenharmony_ci * libdw.h: Update decl. 2650da0c48c4Sopenharmony_ci 2651da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): Take new bool 2652da0c48c4Sopenharmony_ci argument, append DW_OP_stack_value if set. Don't take NOPS argument, 2653da0c48c4Sopenharmony_ci return that value instead. 2654da0c48c4Sopenharmony_ci (getlocation): Update caller. 2655da0c48c4Sopenharmony_ci * dwarf_frame_cfa.c: Likewise. 2656da0c48c4Sopenharmony_ci * libdwP.h: Update decl. 2657da0c48c4Sopenharmony_ci 2658da0c48c4Sopenharmony_ci2009-07-21 Roland McGrath <roland@redhat.com> 2659da0c48c4Sopenharmony_ci 2660da0c48c4Sopenharmony_ci * dwarf_getsrc_file.c: Ignore a CU that just has no DW_AT_stmt_list. 2661da0c48c4Sopenharmony_ci Fix loop iteration after skipping a bogus or useless CU. 2662da0c48c4Sopenharmony_ci 2663da0c48c4Sopenharmony_ci * dwarf_entry_breakpoints.c: Handle 0 dwarf_errno () as harmless 2664da0c48c4Sopenharmony_ci absence, not DWARF_E_NO_DEBUG_LINE. 2665da0c48c4Sopenharmony_ci 2666da0c48c4Sopenharmony_ci2009-07-20 Roland McGrath <roland@redhat.com> 2667da0c48c4Sopenharmony_ci 2668da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): 2669da0c48c4Sopenharmony_ci Handle DW_OP_stack_value. 2670da0c48c4Sopenharmony_ci 2671da0c48c4Sopenharmony_ci2009-07-16 Roland McGrath <roland@redhat.com> 2672da0c48c4Sopenharmony_ci 2673da0c48c4Sopenharmony_ci * dwarf_formudata.c (__libdw_formptr): Handle DW_FORM_sec_offset, 2674da0c48c4Sopenharmony_ci reject others when CU's version > 3. 2675da0c48c4Sopenharmony_ci 2676da0c48c4Sopenharmony_ci * dwarf_formflag.c: Handle DW_FORM_flag_present. 2677da0c48c4Sopenharmony_ci 2678da0c48c4Sopenharmony_ci * dwarf.h: Add DW_OP_{implicit,stack}_value from DWARF 4 draft. 2679da0c48c4Sopenharmony_ci Also DW_TAG_type_unit and DW_TAG_rvalue_reference_type. 2680da0c48c4Sopenharmony_ci Also DW_AT_signature, DW_AT_main_subprogram, DW_AT_data_bit_offset, 2681da0c48c4Sopenharmony_ci and DW_AT_const_expr. 2682da0c48c4Sopenharmony_ci Also DW_FORM_sec_offset, DW_FORM_exprloc, DW_FORM_flag_present, 2683da0c48c4Sopenharmony_ci and DW_FORM_ref_sig8. 2684da0c48c4Sopenharmony_ci 2685da0c48c4Sopenharmony_ci2009-07-15 Roland McGrath <roland@redhat.com> 2686da0c48c4Sopenharmony_ci 2687da0c48c4Sopenharmony_ci * dwarf_getlocation.c: Grok DW_OP_form_tls_address, 2688da0c48c4Sopenharmony_ci DW_OP_GNU_push_tls_address, and DW_OP_bit_piece. 2689da0c48c4Sopenharmony_ci 2690da0c48c4Sopenharmony_ci2009-07-13 Roland McGrath <roland@redhat.com> 2691da0c48c4Sopenharmony_ci 2692da0c48c4Sopenharmony_ci * dwarf_getlocation.c: Grok DW_OP_call_frame_cfa. 2693da0c48c4Sopenharmony_ci 2694da0c48c4Sopenharmony_ci2009-07-08 Roland McGrath <roland@redhat.com> 2695da0c48c4Sopenharmony_ci 2696da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.142): Add dwfl_module_dwarf_cfi, 2697da0c48c4Sopenharmony_ci dwfl_module_eh_cfi. 2698da0c48c4Sopenharmony_ci 2699da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf): Add member `cfi'. 2700da0c48c4Sopenharmony_ci * dwarf_end.c (dwarf_end): Call __libdw_destroy_frame_cache on it. 2701da0c48c4Sopenharmony_ci * dwarf_getcfi.c: New file. 2702da0c48c4Sopenharmony_ci * dwarf_getcfi_elf.c: New file. 2703da0c48c4Sopenharmony_ci * dwarf_cfi_end.c: New file. 2704da0c48c4Sopenharmony_ci * dwarf_cfi_addrframe.c: New file. 2705da0c48c4Sopenharmony_ci * dwarf_frame_cfa.c: New file. 2706da0c48c4Sopenharmony_ci * dwarf_frame_register.c: New file. 2707da0c48c4Sopenharmony_ci * dwarf_frame_return_address_register.c: New file. 2708da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add them. 2709da0c48c4Sopenharmony_ci * unwind.h: Declare those functions. 2710da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.142): Export them. 2711da0c48c4Sopenharmony_ci 2712da0c48c4Sopenharmony_ci * dwarf_getlocation.c (__libdw_intern_expression): New function, 2713da0c48c4Sopenharmony_ci broken out of ... 2714da0c48c4Sopenharmony_ci (getlocation): ... here, call it. 2715da0c48c4Sopenharmony_ci * libdwP.h: Declare it. 2716da0c48c4Sopenharmony_ci 2717da0c48c4Sopenharmony_ci * cie.c: New file. 2718da0c48c4Sopenharmony_ci * fde.c: New file. 2719da0c48c4Sopenharmony_ci * frame-cache.c: New file. 2720da0c48c4Sopenharmony_ci * cfi.c: New file. 2721da0c48c4Sopenharmony_ci * cfi.h: New file. 2722da0c48c4Sopenharmony_ci * encoded-value.h: New file. 2723da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them. 2724da0c48c4Sopenharmony_ci * libdwP.h: Add DWARF_E_INVALID_CFI to errors enum. 2725da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add element for it. 2726da0c48c4Sopenharmony_ci 2727da0c48c4Sopenharmony_ci * dwarf_next_cfi.c: New file. 2728da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 2729da0c48c4Sopenharmony_ci * libdw.h (Dwarf_CIE, Dwarf_FDE, Dwarf_CIE_Entry): New types. 2730da0c48c4Sopenharmony_ci Declare dwarf_next_cfi. 2731da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.142): New set, inherits from ELFUTILS_0.136. 2732da0c48c4Sopenharmony_ci Add dwarf_next_cfi. 2733da0c48c4Sopenharmony_ci 2734da0c48c4Sopenharmony_ci * memory-access.h [! ALLOW_UNALIGNED] 2735da0c48c4Sopenharmony_ci (read_2ubyte_unaligned): Renamed to ... 2736da0c48c4Sopenharmony_ci (read_2ubyte_unaligned_1): ... this. Take bool rather than Dwarf *. 2737da0c48c4Sopenharmony_ci (read_2ubyte_unaligned): Define as macro passing dbg->other_byte_order. 2738da0c48c4Sopenharmony_ci (read_2sbyte_unaligned): Likewise. 2739da0c48c4Sopenharmony_ci (read_4ubyte_unaligned): Likewise. 2740da0c48c4Sopenharmony_ci (read_4sbyte_unaligned): Likewise. 2741da0c48c4Sopenharmony_ci (read_8ubyte_unaligned): Likewise. 2742da0c48c4Sopenharmony_ci (read_8sbyte_unaligned): Likewise. 2743da0c48c4Sopenharmony_ci 2744da0c48c4Sopenharmony_ci * libdwP.h (IDX_eh_frame): Remove it. 2745da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_scnnames): Remove its element. 2746da0c48c4Sopenharmony_ci 2747da0c48c4Sopenharmony_ci2009-07-08 Roland McGrath <roland@redhat.com> 2748da0c48c4Sopenharmony_ci 2749da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_Line_s): Reorder members to pack better. 2750da0c48c4Sopenharmony_ci 2751da0c48c4Sopenharmony_ci * dwarf_getlocation.c (check_constant_offset): New function. 2752da0c48c4Sopenharmony_ci (dwarf_getlocation, dwarf_getlocation_addr): Call it to 2753da0c48c4Sopenharmony_ci handle DW_AT_data_member_location of data[48] as constant offset. 2754da0c48c4Sopenharmony_ci 2755da0c48c4Sopenharmony_ci2009-06-18 Roland McGrath <roland@redhat.com> 2756da0c48c4Sopenharmony_ci 2757da0c48c4Sopenharmony_ci * libdwP.h (__libdw_read_address_inc): Constify. 2758da0c48c4Sopenharmony_ci (__libdw_read_offset_inc): Likewise. 2759da0c48c4Sopenharmony_ci * dwarf_getaranges.c: Likewise. 2760da0c48c4Sopenharmony_ci * dwarf_getlocation.c: Likewise. 2761da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Likewise. 2762da0c48c4Sopenharmony_ci * dwarf_nextcu.c: Likewise. 2763da0c48c4Sopenharmony_ci 2764da0c48c4Sopenharmony_ci2009-05-05 Petr Machata <pmachata@redhat.com> 2765da0c48c4Sopenharmony_ci 2766da0c48c4Sopenharmony_ci * libdwP.h (__libdw_formptr): Declare new function. 2767da0c48c4Sopenharmony_ci * dwarf_formudata.c: Implement it here. 2768da0c48c4Sopenharmony_ci * dwarf_getlocation.c (dwarf_getlocation_addr): 2769da0c48c4Sopenharmony_ci Call it instead of hand-rolled offset handling code. 2770da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Likewise. 2771da0c48c4Sopenharmony_ci * dwarf_ranges.c (dwarf_ranges): Likewise. 2772da0c48c4Sopenharmony_ci 2773da0c48c4Sopenharmony_ci2009-05-04 Petr Machata <pmachata@redhat.com> 2774da0c48c4Sopenharmony_ci 2775da0c48c4Sopenharmony_ci * libdwP.h (__libdw_read_begin_end_pair_inc): Declare new function. 2776da0c48c4Sopenharmony_ci * dwarf_ranges.c: Implement it here. 2777da0c48c4Sopenharmony_ci (dwarf_ranges): Call it. 2778da0c48c4Sopenharmony_ci * dwarf_getlocation.c (dwarf_getlocation_addr): Call it also here. 2779da0c48c4Sopenharmony_ci 2780da0c48c4Sopenharmony_ci2009-04-23 Petr Machata <pmachata@redhat.com> 2781da0c48c4Sopenharmony_ci 2782da0c48c4Sopenharmony_ci * dwarf_formaddr.c (dwarf_formaddr): Call __libdw_read_* instead 2783da0c48c4Sopenharmony_ci of read_*ubyte_unaligned. 2784da0c48c4Sopenharmony_ci * dwarf_formref_die.c (dwarf_formref_die): Likewise. 2785da0c48c4Sopenharmony_ci * dwarf_formstring.c (dwarf_formstring): Likewise. 2786da0c48c4Sopenharmony_ci * dwarf_formudate.c (dwarf_formudata): Likewise. 2787da0c48c4Sopenharmony_ci * dwarf_getaranges.c (dwarf_getaranges): Likewise. 2788da0c48c4Sopenharmony_ci * dwarf_getlocation.c (dwarf_getlocation_addr): Likewise. 2789da0c48c4Sopenharmony_ci * dwarf_getpubnames.c (get_offsets): Likewise. 2790da0c48c4Sopenharmony_ci * dwarf_nextcu.c (dwarf_nextcu): Likewise. 2791da0c48c4Sopenharmony_ci 2792da0c48c4Sopenharmony_ci2009-04-23 Petr Machata <pmachata@redhat.com> 2793da0c48c4Sopenharmony_ci 2794da0c48c4Sopenharmony_ci * libdwP.h (__libdw_read_addr_inc, __libdw_read_off_inc, 2795da0c48c4Sopenharmony_ci __libdw_read_addr, __libdw_read_off): Add four new internal 2796da0c48c4Sopenharmony_ci functions. 2797da0c48c4Sopenharmony_ci 2798da0c48c4Sopenharmony_ci2009-05-07 Roland McGrath <roland@redhat.com> 2799da0c48c4Sopenharmony_ci 2800da0c48c4Sopenharmony_ci * dwarf_getmacros.c (dwarf_getmacros): Use absolute section offset in 2801da0c48c4Sopenharmony_ci return value and OFFSET argument, not CU-relative. Only fetch the 2802da0c48c4Sopenharmony_ci attribute data when called with OFFSET of 0. 2803da0c48c4Sopenharmony_ci 2804da0c48c4Sopenharmony_ci2009-05-07 Petr Machata <pmachata@redhat.com> 2805da0c48c4Sopenharmony_ci 2806da0c48c4Sopenharmony_ci * dwarf_getmacros.c (dwarf_getmacros): Take into account offset in 2807da0c48c4Sopenharmony_ci DW_AT_macro_info attribute of CU DIE. 2808da0c48c4Sopenharmony_ci 2809da0c48c4Sopenharmony_ci2009-04-15 Roland McGrath <roland@redhat.com> 2810da0c48c4Sopenharmony_ci 2811da0c48c4Sopenharmony_ci * dwarf.h (DW_CIE_ID): Removed. 2812da0c48c4Sopenharmony_ci (DW_CIE_ID_32, DW_CIE_ID_64): New constants replace it. 2813da0c48c4Sopenharmony_ci 2814da0c48c4Sopenharmony_ci2009-04-01 Roland McGrath <roland@redhat.com> 2815da0c48c4Sopenharmony_ci 2816da0c48c4Sopenharmony_ci * dwarf.h: Add DW_CFA_GNU_negative_offset_extended. 2817da0c48c4Sopenharmony_ci 2818da0c48c4Sopenharmony_ci2009-01-28 Roland McGrath <roland@redhat.com> 2819da0c48c4Sopenharmony_ci 2820da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_Line_s): Move out of struct Dwarf_Lines_s 2821da0c48c4Sopenharmony_ci defn so C++ doesn't scope the name to not match the Dwarf_Line typedef. 2822da0c48c4Sopenharmony_ci 2823da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_Files_s): Replace dbg field with cu field. 2824da0c48c4Sopenharmony_ci 2825da0c48c4Sopenharmony_ci2009-01-26 Roland McGrath <roland@redhat.com> 2826da0c48c4Sopenharmony_ci 2827da0c48c4Sopenharmony_ci * dwarf_ranges.c: Return 0 when no ranges or *_pc attrs at all. 2828da0c48c4Sopenharmony_ci 2829da0c48c4Sopenharmony_ci2009-01-25 Roland McGrath <roland@redhat.com> 2830da0c48c4Sopenharmony_ci 2831da0c48c4Sopenharmony_ci * dwarf_getattrs.c: Correctly skip attribute values when restarting. 2832da0c48c4Sopenharmony_ci 2833da0c48c4Sopenharmony_ci2009-01-23 Roland McGrath <roland@redhat.com> 2834da0c48c4Sopenharmony_ci 2835da0c48c4Sopenharmony_ci * Makefile.am ($(srcdir)/known-dwarf.h): Target renamed back. 2836da0c48c4Sopenharmony_ci Put these rules under if MAINTAINER_MODE. 2837da0c48c4Sopenharmony_ci 2838da0c48c4Sopenharmony_ci2009-01-22 Roland McGrath <roland@redhat.com> 2839da0c48c4Sopenharmony_ci 2840da0c48c4Sopenharmony_ci * dwarf.h: Add DW_OP_GNU_encoded_addr. 2841da0c48c4Sopenharmony_ci 2842da0c48c4Sopenharmony_ci2009-01-21 Roland McGrath <roland@redhat.com> 2843da0c48c4Sopenharmony_ci 2844da0c48c4Sopenharmony_ci * Makefile.am (CLEANFILES): Renamed to ... 2845da0c48c4Sopenharmony_ci (MOSTLYCLEANFILES): ... here. 2846da0c48c4Sopenharmony_ci (CLEANFILES): New variable, add known-dwarf.h. 2847da0c48c4Sopenharmony_ci 2848da0c48c4Sopenharmony_ci2009-01-17 Roland McGrath <roland@redhat.com> 2849da0c48c4Sopenharmony_ci 2850da0c48c4Sopenharmony_ci * Makefile.am (known-dwarf.h): Target renamed, not in $(srcdir). 2851da0c48c4Sopenharmony_ci Make it unconditional. 2852da0c48c4Sopenharmony_ci (BUILT_SOURCES): Updated. 2853da0c48c4Sopenharmony_ci 2854da0c48c4Sopenharmony_ci * dwarf.h: Add description comments for DW_LANG_* values. 2855da0c48c4Sopenharmony_ci 2856da0c48c4Sopenharmony_ci * Makefile.am [MAINTAINER_MODE] 2857da0c48c4Sopenharmony_ci ($(srcdir)/known-dwarf.h): New target. 2858da0c48c4Sopenharmony_ci (BUILT_SOURCES): Add it. 2859da0c48c4Sopenharmony_ci 2860da0c48c4Sopenharmony_ci * dwarf.h: Add DW_OP_GNU_push_tls_address, DW_OP_GNU_uninit. 2861da0c48c4Sopenharmony_ci 2862da0c48c4Sopenharmony_ci2009-01-10 Ulrich Drepper <drepper@redhat.com> 2863da0c48c4Sopenharmony_ci 2864da0c48c4Sopenharmony_ci * dwarf_error.c: Always use __thread. Remove all !USE_TLS code. 2865da0c48c4Sopenharmony_ci 2866da0c48c4Sopenharmony_ci2009-01-08 Roland McGrath <roland@redhat.com> 2867da0c48c4Sopenharmony_ci 2868da0c48c4Sopenharmony_ci * Makefile.am (libdw.so): Don't depend on $(zip_LIBS), just link it in. 2869da0c48c4Sopenharmony_ci 2870da0c48c4Sopenharmony_ci2008-01-06 Roland McGrath <roland@redhat.com> 2871da0c48c4Sopenharmony_ci 2872da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_Abbrev): Change type of 'has_children' to bool. 2873da0c48c4Sopenharmony_ci Reorder members. 2874da0c48c4Sopenharmony_ci * dwarf_haschildren.c: Return -1 for error case, not 0. 2875da0c48c4Sopenharmony_ci 2876da0c48c4Sopenharmony_ci * Makefile.am (libdw.so): Link in $(zip_LIBS). 2877da0c48c4Sopenharmony_ci 2878da0c48c4Sopenharmony_ci2009-01-06 Ulrich Drepper <drepper@redhat.com> 2879da0c48c4Sopenharmony_ci 2880da0c48c4Sopenharmony_ci * dwarf.h: Add definition for unwind and call frame information. 2881da0c48c4Sopenharmony_ci 2882da0c48c4Sopenharmony_ci * memory-access.h: Define read_ubyte_unaligned, read_sbyte_unaligned, 2883da0c48c4Sopenharmony_ci read_ubyte_unaligned_inc, and read_sbyte_unaligned_inc. 2884da0c48c4Sopenharmony_ci 2885da0c48c4Sopenharmony_ci2008-08-15 Roland McGrath <roland@redhat.com> 2886da0c48c4Sopenharmony_ci 2887da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.136): New version set, inherits from 2888da0c48c4Sopenharmony_ci ELFUTILS_0.130. Add dwfl_addrsegment, dwfl_report_segment. 2889da0c48c4Sopenharmony_ci 2890da0c48c4Sopenharmony_ci2008-01-21 Ulrich Drepper <drepper@redhat.com> 2891da0c48c4Sopenharmony_ci 2892da0c48c4Sopenharmony_ci * dwarf_child.c: Minor optimizations. 2893da0c48c4Sopenharmony_ci * dwarf_getattrs.c: Likewise. 2894da0c48c4Sopenharmony_ci * dwarf_getpubnames.c: Likewise. 2895da0c48c4Sopenharmony_ci * dwarf_siblingof.c: Likewise. 2896da0c48c4Sopenharmony_ci * dwarf_tag.c: Likewise. 2897da0c48c4Sopenharmony_ci 2898da0c48c4Sopenharmony_ci2008-01-18 Ulrich Drepper <drepper@redhat.com> 2899da0c48c4Sopenharmony_ci 2900da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match 2901da0c48c4Sopenharmony_ci of DWARF_VERSION comparison, just fail if the file's version is newer. 2902da0c48c4Sopenharmony_ci 2903da0c48c4Sopenharmony_ci2008-01-17 Nick Clifton <nickc@redhat.com> 2904da0c48c4Sopenharmony_ci 2905da0c48c4Sopenharmony_ci * dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define. 2906da0c48c4Sopenharmony_ci (DWARF3_LENGTH_MAX_ESCAPE_CODE): New define. 2907da0c48c4Sopenharmony_ci (DWARF3_LENGTH_64_BIT): New define. 2908da0c48c4Sopenharmony_ci * dwarf_getaranges (dwarf_getaranges): Use the new definitions. 2909da0c48c4Sopenharmony_ci * dwarf_getpubnames: Include dwarf.h. 2910da0c48c4Sopenharmony_ci (get_offsets): Use the new definitions. 2911da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions. 2912da0c48c4Sopenharmony_ci * dwarf_nextcu.c: Include dwarf.h. Correct comment. 2913da0c48c4Sopenharmony_ci (dwarf_nextcu): Use the new definitions. 2914da0c48c4Sopenharmony_ci 2915da0c48c4Sopenharmony_ci * libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro. 2916da0c48c4Sopenharmony_ci * dwarf_diecu.c (dwarf_diecu): Use the new macro. 2917da0c48c4Sopenharmony_ci * dwarf_getaranges (dwarf_getaranges): Use the new macro. 2918da0c48c4Sopenharmony_ci * dwarf_nextcu.c (dwarf_nextcu): Use the new macro. 2919da0c48c4Sopenharmony_ci 2920da0c48c4Sopenharmony_ci * dwarf_getpubnames (get_offsets): Replace assertion with test and 2921da0c48c4Sopenharmony_ci error return. 2922da0c48c4Sopenharmony_ci 2923da0c48c4Sopenharmony_ci * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE. 2924da0c48c4Sopenharmony_ci 2925da0c48c4Sopenharmony_ci * dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer. 2926da0c48c4Sopenharmony_ci Set the address in the return structure to the address of the next 2927da0c48c4Sopenharmony_ci non-sibling die, if there is no sibling and the return pointer is 2928da0c48c4Sopenharmony_ci not the same as the die pointer. 2929da0c48c4Sopenharmony_ci * libdw.h: Expand the description of the dwarf_siblingof prototype. 2930da0c48c4Sopenharmony_ci 2931da0c48c4Sopenharmony_ci * dwarf_child.c: Fix typo in comment. 2932da0c48c4Sopenharmony_ci 2933da0c48c4Sopenharmony_ci * libdwP.h (DWARF_VERSION): Change to 3. 2934da0c48c4Sopenharmony_ci 2935da0c48c4Sopenharmony_ci * dwarf_formref.c (__libdw_formref.c): Handle attributes which do 2936da0c48c4Sopenharmony_ci not have a initialised valp pointer. 2937da0c48c4Sopenharmony_ci 2938da0c48c4Sopenharmony_ci * dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when 2939da0c48c4Sopenharmony_ci the end of the attributes is reached. When the callback fails, 2940da0c48c4Sopenharmony_ci return the address of the failing attribute, not the address of 2941da0c48c4Sopenharmony_ci its successor. 2942da0c48c4Sopenharmony_ci * libdw.h: Expand the description of the dwarf_getattrs prototype. 2943da0c48c4Sopenharmony_ci 2944da0c48c4Sopenharmony_ci * dwarf_child.c (__libdw_find_attr): Use the new definition. 2945da0c48c4Sopenharmony_ci (dwarf_child): Likewise. 2946da0c48c4Sopenharmony_ci * dwarf_tag.c (__libdw_findabbrev): Likewise. 2947da0c48c4Sopenharmony_ci (dwarf_tag): Likewise. 2948da0c48c4Sopenharmony_ci 2949da0c48c4Sopenharmony_ci2008-01-08 Roland McGrath <roland@redhat.com> 2950da0c48c4Sopenharmony_ci 2951da0c48c4Sopenharmony_ci * Makefile.am (euinclude): Variable removed. 2952da0c48c4Sopenharmony_ci (pkginclude_HEADERS): Set this instead of euinclude_HEADERS. 2953da0c48c4Sopenharmony_ci (libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir). 2954da0c48c4Sopenharmony_ci 2955da0c48c4Sopenharmony_ci2007-10-17 Roland McGrath <roland@redhat.com> 2956da0c48c4Sopenharmony_ci 2957da0c48c4Sopenharmony_ci * libdw.h (__deprecated_attribute__): New macro. 2958da0c48c4Sopenharmony_ci (dwarf_formref): Mark it deprecated. 2959da0c48c4Sopenharmony_ci * dwarf_formref.c (__libdw_formref): New function, broken out of ... 2960da0c48c4Sopenharmony_ci (dwarf_formref): ... here. Call it. Remove INTDEF. 2961da0c48c4Sopenharmony_ci * libdwP.h: Remove INTDECL. 2962da0c48c4Sopenharmony_ci Declare __libdw_formref. 2963da0c48c4Sopenharmony_ci * dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead. 2964da0c48c4Sopenharmony_ci * dwarf_formref_die.c: Likewise. Handle DW_FORM_ref_addr here. 2965da0c48c4Sopenharmony_ci 2966da0c48c4Sopenharmony_ci * libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result, 2967da0c48c4Sopenharmony_ci needs to check CU->version. 2968da0c48c4Sopenharmony_ci 2969da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_CU): New member `version'. 2970da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_findcu): Initialize it. 2971da0c48c4Sopenharmony_ci 2972da0c48c4Sopenharmony_ci * dwarf_child.c: Return 1 for null entry as first child. 2973da0c48c4Sopenharmony_ci 2974da0c48c4Sopenharmony_ci2007-10-05 Roland McGrath <roland@redhat.com> 2975da0c48c4Sopenharmony_ci 2976da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections. 2977da0c48c4Sopenharmony_ci 2978da0c48c4Sopenharmony_ci * libdw.h (__extern_inline): Rename to __libdw_extern_inline. 2979da0c48c4Sopenharmony_ci [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses. 2980da0c48c4Sopenharmony_ci 2981da0c48c4Sopenharmony_ci2007-10-03 Roland McGrath <roland@redhat.com> 2982da0c48c4Sopenharmony_ci 2983da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf 2984da0c48c4Sopenharmony_ci and dwfl_build_id_find_debuginfo. 2985da0c48c4Sopenharmony_ci 2986da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.130): New version set, inherits from 2987da0c48c4Sopenharmony_ci ELFUTILS_0.127. Add dwfl_module_build_id, dwfl_module_report_build_id. 2988da0c48c4Sopenharmony_ci 2989da0c48c4Sopenharmony_ci2007-10-02 Roland McGrath <roland@redhat.com> 2990da0c48c4Sopenharmony_ci 2991da0c48c4Sopenharmony_ci * libdw_visit_scopes.c (classify_die): Return walk for class_type and 2992da0c48c4Sopenharmony_ci structure_type. 2993da0c48c4Sopenharmony_ci 2994da0c48c4Sopenharmony_ci2007-08-07 Roland McGrath <roland@redhat.com> 2995da0c48c4Sopenharmony_ci 2996da0c48c4Sopenharmony_ci * dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when 2997da0c48c4Sopenharmony_ci error code is DWARF_E_NOERROR (0). 2998da0c48c4Sopenharmony_ci 2999da0c48c4Sopenharmony_ci * dwarf_getscopes.c (pc_record): Always bail early if DIE->prune. 3000da0c48c4Sopenharmony_ci Fix typo in __libdw_visit_scopes argument. 3001da0c48c4Sopenharmony_ci 3002da0c48c4Sopenharmony_ci * dwarf_getscopes.c (pc_match): Check dwarf_haspc error return, 3003da0c48c4Sopenharmony_ci swallow DWARF_E_NO_DEBUG_RANGES but not other errors. 3004da0c48c4Sopenharmony_ci 3005da0c48c4Sopenharmony_ci2007-07-03 Roland McGrath <roland@redhat.com> 3006da0c48c4Sopenharmony_ci 3007da0c48c4Sopenharmony_ci * libdw.h (__extern_inline): New macro. 3008da0c48c4Sopenharmony_ci [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it. 3009da0c48c4Sopenharmony_ci 3010da0c48c4Sopenharmony_ci2007-04-16 Roland McGrath <roland@redhat.com> 3011da0c48c4Sopenharmony_ci 3012da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section. 3013da0c48c4Sopenharmony_ci 3014da0c48c4Sopenharmony_ci2007-04-05 Roland McGrath <roland@redhat.com> 3015da0c48c4Sopenharmony_ci 3016da0c48c4Sopenharmony_ci * dwarf_getsrcdirs.c: New file. 3017da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3018da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_getsrcdirs. 3019da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.127): Add it. 3020da0c48c4Sopenharmony_ci 3021da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_Files_s): New member ndirs. 3022da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to 3023da0c48c4Sopenharmony_ci zero before we use it to check for DWARF_E_INVALID_DIR_IDX. 3024da0c48c4Sopenharmony_ci Save DIRARRAY in the Dwarf_Files. 3025da0c48c4Sopenharmony_ci 3026da0c48c4Sopenharmony_ci * dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN 3027da0c48c4Sopenharmony_ci address to check for all-ones base address entry. Check directly. 3028da0c48c4Sopenharmony_ci Reported by Sébastien Dugué <sebastien.dugue@bull.net>. 3029da0c48c4Sopenharmony_ci 3030da0c48c4Sopenharmony_ci2007-03-25 Roland McGrath <roland@redhat.com> 3031da0c48c4Sopenharmony_ci 3032da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (check_section): Return Dwarf * instead of void. 3033da0c48c4Sopenharmony_ci Return NULL when freeing RESULT on error. 3034da0c48c4Sopenharmony_ci (global_read, scngrp_read): Check return value from check_section, 3035da0c48c4Sopenharmony_ci break out of loop after it has freed RESULT. 3036da0c48c4Sopenharmony_ci (valid_p): Handle null argument. 3037da0c48c4Sopenharmony_ci 3038da0c48c4Sopenharmony_ci2007-03-12 Roland McGrath <roland@redhat.com> 3039da0c48c4Sopenharmony_ci 3040da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add. 3041da0c48c4Sopenharmony_ci 3042da0c48c4Sopenharmony_ci2007-03-04 Roland McGrath <roland@redhat.com> 3043da0c48c4Sopenharmony_ci 3044da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.127): New version set, inherits from 3045da0c48c4Sopenharmony_ci ELFUTILS_0.126. Add dwfl_module_addrsym. 3046da0c48c4Sopenharmony_ci 3047da0c48c4Sopenharmony_ci2007-02-10 Roland McGrath <roland@redhat.com> 3048da0c48c4Sopenharmony_ci 3049da0c48c4Sopenharmony_ci * dwarf.h (DW_OP_fbreg): Comment fix. 3050da0c48c4Sopenharmony_ci 3051da0c48c4Sopenharmony_ci2007-02-03 Roland McGrath <roland@redhat.com> 3052da0c48c4Sopenharmony_ci 3053da0c48c4Sopenharmony_ci * dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf. 3054da0c48c4Sopenharmony_ci * libdw.map (ELFUTILS_0.126): New version set, inherits from 3055da0c48c4Sopenharmony_ci ELFUTILS_0.122. Move dwarf_getelf there; it was never truly 3056da0c48c4Sopenharmony_ci exported in the past. 3057da0c48c4Sopenharmony_ci 3058da0c48c4Sopenharmony_ci2006-12-17 Roland McGrath <roland@redhat.com> 3059da0c48c4Sopenharmony_ci 3060da0c48c4Sopenharmony_ci * dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base 3061da0c48c4Sopenharmony_ci address when the CU is missing attributes due to buggy GCC. 3062da0c48c4Sopenharmony_ci 3063da0c48c4Sopenharmony_ci2006-08-29 Roland McGrath <roland@redhat.com> 3064da0c48c4Sopenharmony_ci 3065da0c48c4Sopenharmony_ci * Makefile.am (CLEANFILES): Add libdw.so.$(VERSION). 3066da0c48c4Sopenharmony_ci 3067da0c48c4Sopenharmony_ci * libdw.h (dwarf_diecu): Add __nonnull_attribute__. 3068da0c48c4Sopenharmony_ci (dwarf_child): Don't list arg 1 in __nonnull_attribute__. 3069da0c48c4Sopenharmony_ci 3070da0c48c4Sopenharmony_ci * libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure 3071da0c48c4Sopenharmony_ci result is aligned. Adjust NEWP->remaining here for this allocation. 3072da0c48c4Sopenharmony_ci * libdwP.h: Update decl. 3073da0c48c4Sopenharmony_ci (libdw_alloc): Update caller. 3074da0c48c4Sopenharmony_ci 3075da0c48c4Sopenharmony_ci2006-07-12 Ulrich Drepper <drepper@redhat.com> 3076da0c48c4Sopenharmony_ci 3077da0c48c4Sopenharmony_ci * dwarf_child.c: Adjust for internal_function_def removal. 3078da0c48c4Sopenharmony_ci * dwarf_getabbrev.c: Likewise. 3079da0c48c4Sopenharmony_ci * dwarf_tag.c: Likewise. 3080da0c48c4Sopenharmony_ci * libdw_form.c: Likewise. 3081da0c48c4Sopenharmony_ci * memory-access.c: Likewise. 3082da0c48c4Sopenharmony_ci 3083da0c48c4Sopenharmony_ci2006-06-28 Roland McGrath <roland@redhat.com> 3084da0c48c4Sopenharmony_ci 3085da0c48c4Sopenharmony_ci * libdw.map: Export dwfl_linecu, dwfl_line_comp_dir. 3086da0c48c4Sopenharmony_ci 3087da0c48c4Sopenharmony_ci * libdw.map: Bump to 0.122; export dwfl_module_getsymtab and 3088da0c48c4Sopenharmony_ci dwfl_module_getsym. 3089da0c48c4Sopenharmony_ci 3090da0c48c4Sopenharmony_ci2006-05-27 Ulrich Drepper <drepper@redhat.com> 3091da0c48c4Sopenharmony_ci 3092da0c48c4Sopenharmony_ci * libdw.h: Add extern "C". 3093da0c48c4Sopenharmony_ci 3094da0c48c4Sopenharmony_ci2006-05-22 Ulrich Drepper <drepper@redhat.com> 3095da0c48c4Sopenharmony_ci 3096da0c48c4Sopenharmony_ci * dwarf_getaranges.c (dwarf_getaranges): Handle files without 3097da0c48c4Sopenharmony_ci aranges information. 3098da0c48c4Sopenharmony_ci 3099da0c48c4Sopenharmony_ci2006-05-21 Ulrich Drepper <drepper@redhat.com> 3100da0c48c4Sopenharmony_ci 3101da0c48c4Sopenharmony_ci * libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs, 3102da0c48c4Sopenharmony_ci dwarf_haschildren. 3103da0c48c4Sopenharmony_ci 3104da0c48c4Sopenharmony_ci2006-02-28 Roland McGrath <roland@redhat.com> 3105da0c48c4Sopenharmony_ci 3106da0c48c4Sopenharmony_ci * dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*, 3107da0c48c4Sopenharmony_ci DW_OP_* values, to match DWARF 3.0. Add new DW_DS_*, DW_END_* 3108da0c48c4Sopenharmony_ci values from DWARF 3.0. 3109da0c48c4Sopenharmony_ci 3110da0c48c4Sopenharmony_ci2006-02-22 Roland McGrath <roland@redhat.com> 3111da0c48c4Sopenharmony_ci 3112da0c48c4Sopenharmony_ci * libdw.map: Bump to 0.120; export dwfl_version. 3113da0c48c4Sopenharmony_ci 3114da0c48c4Sopenharmony_ci2005-12-22 Roland McGrath <roland@redhat.com> 3115da0c48c4Sopenharmony_ci 3116da0c48c4Sopenharmony_ci * libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report. 3117da0c48c4Sopenharmony_ci 3118da0c48c4Sopenharmony_ci2005-12-12 Roland McGrath <roland@redhat.com> 3119da0c48c4Sopenharmony_ci 3120da0c48c4Sopenharmony_ci * dwarf_ranges.c: Copy CU base address-finding code from 3121da0c48c4Sopenharmony_ci dwarf_getlocation. 3122da0c48c4Sopenharmony_ci 3123da0c48c4Sopenharmony_ci2005-12-09 Roland McGrath <roland@redhat.com> 3124da0c48c4Sopenharmony_ci 3125da0c48c4Sopenharmony_ci * dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys. 3126da0c48c4Sopenharmony_ci Delay CU base lookup until it's needed. 3127da0c48c4Sopenharmony_ci If CU base lookup fails with no error, flag invalid DWARF. 3128da0c48c4Sopenharmony_ci 3129da0c48c4Sopenharmony_ci2005-11-25 Roland McGrath <roland@redhat.com> 3130da0c48c4Sopenharmony_ci 3131da0c48c4Sopenharmony_ci * libdw.map: Bump to 0.118; export dwfl_module_register_names. 3132da0c48c4Sopenharmony_ci 3133da0c48c4Sopenharmony_ci2005-11-15 Roland McGrath <roland@redhat.com> 3134da0c48c4Sopenharmony_ci 3135da0c48c4Sopenharmony_ci * Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic. 3136da0c48c4Sopenharmony_ci 3137da0c48c4Sopenharmony_ci2005-11-13 Roland McGrath <roland@redhat.com> 3138da0c48c4Sopenharmony_ci 3139da0c48c4Sopenharmony_ci * libdw.map: Bump to 0.117; export dwfl_module_return_value_location. 3140da0c48c4Sopenharmony_ci 3141da0c48c4Sopenharmony_ci2005-10-27 Roland McGrath <roland@redhat.com> 3142da0c48c4Sopenharmony_ci 3143da0c48c4Sopenharmony_ci * dwarf_entry_breakpoints.c (search_range): Fix binary search code; 3144da0c48c4Sopenharmony_ci don't match end_sequence markers. 3145da0c48c4Sopenharmony_ci 3146da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (compare_lines): Sort end_sequence markers 3147da0c48c4Sopenharmony_ci before normal records at the same address. 3148da0c48c4Sopenharmony_ci * dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence 3149da0c48c4Sopenharmony_ci marker. 3150da0c48c4Sopenharmony_ci 3151da0c48c4Sopenharmony_ci2005-10-26 Roland McGrath <roland@redhat.com> 3152da0c48c4Sopenharmony_ci 3153da0c48c4Sopenharmony_ci * dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func. 3154da0c48c4Sopenharmony_ci * dwarf_func_file.c: Renamed to ... 3155da0c48c4Sopenharmony_ci * dwarf_decl_file.c: ... here. 3156da0c48c4Sopenharmony_ci * dwarf_func_col.c: Renamed to ... 3157da0c48c4Sopenharmony_ci * dwarf_decl_column.c: ... here. 3158da0c48c4Sopenharmony_ci * dwarf_func_line.c: Renamed to ... 3159da0c48c4Sopenharmony_ci * dwarf_decl_line.c: ... here. 3160da0c48c4Sopenharmony_ci (dwarf_func_line): Renamed to ... 3161da0c48c4Sopenharmony_ci (dwarf_decl_line): ... this. Take a Dwarf_Die * argument. 3162da0c48c4Sopenharmony_ci (__libdw_func_intval): Renamed __libdw_attr_intval. 3163da0c48c4Sopenharmony_ci * dwarf_func_name.c: File removed. 3164da0c48c4Sopenharmony_ci * dwarf_func_lowpc.c: File removed. 3165da0c48c4Sopenharmony_ci * dwarf_func_highpc.c: File removed. 3166da0c48c4Sopenharmony_ci * dwarf_func_entrypc.c: File removed. 3167da0c48c4Sopenharmony_ci * dwarf_func_die.c: File removed. 3168da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Updated. 3169da0c48c4Sopenharmony_ci * libdw.h: Update decls. 3170da0c48c4Sopenharmony_ci (Dwarf_Func): Type removed. 3171da0c48c4Sopenharmony_ci * libdwP.h: Update decls. 3172da0c48c4Sopenharmony_ci (struct Dwarf_Func_s): Type removed. 3173da0c48c4Sopenharmony_ci * libdw.map: Updated. 3174da0c48c4Sopenharmony_ci 3175da0c48c4Sopenharmony_ci * libdwP.h (CUDIE): New macro. 3176da0c48c4Sopenharmony_ci * dwarf_getlocation.c (dwarf_getlocation_addr): Use it. 3177da0c48c4Sopenharmony_ci * dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise. 3178da0c48c4Sopenharmony_ci * dwarf_ranges.c (dwarf_ranges): Likewise. 3179da0c48c4Sopenharmony_ci 3180da0c48c4Sopenharmony_ci * dwarf_getloclist.c: Renamed to ... 3181da0c48c4Sopenharmony_ci * dwarf_getlocation.c: ... here. 3182da0c48c4Sopenharmony_ci (getloclist): Renamed to getlocation. 3183da0c48c4Sopenharmony_ci (dwarf_getloclist): Renamed to dwarf_getlocation. 3184da0c48c4Sopenharmony_ci (dwarf_addrloclists): Renamed to dwarf_getlocation_addr. 3185da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Updated. 3186da0c48c4Sopenharmony_ci * libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation. 3187da0c48c4Sopenharmony_ci (dwarf_addrloclists): Renamed dwarf_getlocation_addr. 3188da0c48c4Sopenharmony_ci (Dwarf_Loc): Renamed Dwarf_Op. 3189da0c48c4Sopenharmony_ci * libdwP.h (struct loc_s): Update use. 3190da0c48c4Sopenharmony_ci * libdw.map: Update map. 3191da0c48c4Sopenharmony_ci 3192da0c48c4Sopenharmony_ci * dwarf_entry_breakpoints.c: Use the second line record within the 3193da0c48c4Sopenharmony_ci function, regardless of its source location data. 3194da0c48c4Sopenharmony_ci 3195da0c48c4Sopenharmony_ci2005-10-25 Roland McGrath <roland@redhat.com> 3196da0c48c4Sopenharmony_ci 3197da0c48c4Sopenharmony_ci * dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too. 3198da0c48c4Sopenharmony_ci 3199da0c48c4Sopenharmony_ci * libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints. 3200da0c48c4Sopenharmony_ci 3201da0c48c4Sopenharmony_ci2005-10-14 Roland McGrath <roland@redhat.com> 3202da0c48c4Sopenharmony_ci 3203da0c48c4Sopenharmony_ci * dwarf_diecu.c (dwarf_diecu): New file. 3204da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3205da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_diecu. 3206da0c48c4Sopenharmony_ci * libdw.map: Export it. 3207da0c48c4Sopenharmony_ci 3208da0c48c4Sopenharmony_ci * libdw.map: Bump to 0.116; export dwarf_ranges. 3209da0c48c4Sopenharmony_ci 3210da0c48c4Sopenharmony_ci2005-09-20 Roland McGrath <roland@redhat.com> 3211da0c48c4Sopenharmony_ci 3212da0c48c4Sopenharmony_ci * dwarf_haspc.c: Use dwarf_ranges. 3213da0c48c4Sopenharmony_ci * dwarf_entry_breakpoints.c: Likewise. 3214da0c48c4Sopenharmony_ci 3215da0c48c4Sopenharmony_ci * dwarf_ranges.c: New file. 3216da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3217da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_ranges. 3218da0c48c4Sopenharmony_ci * libdwP.h: Add INTDECL. 3219da0c48c4Sopenharmony_ci 3220da0c48c4Sopenharmony_ci2005-09-14 Roland McGrath <roland@redhat.com> 3221da0c48c4Sopenharmony_ci 3222da0c48c4Sopenharmony_ci * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in 3223da0c48c4Sopenharmony_ci prologue_end marker scanning loop. 3224da0c48c4Sopenharmony_ci 3225da0c48c4Sopenharmony_ci2005-09-11 Roland McGrath <roland@redhat.com> 3226da0c48c4Sopenharmony_ci 3227da0c48c4Sopenharmony_ci * dwarf.h: Comment typo fix. 3228da0c48c4Sopenharmony_ci 3229da0c48c4Sopenharmony_ci2005-09-07 Roland McGrath <roland@redhat.com> 3230da0c48c4Sopenharmony_ci 3231da0c48c4Sopenharmony_ci * dwarf_entry_breakpoints.c: New file. 3232da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3233da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_entry_breakpoints. 3234da0c48c4Sopenharmony_ci 3235da0c48c4Sopenharmony_ci * dwarf_entrypc.c: New file. 3236da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3237da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_entrypc. 3238da0c48c4Sopenharmony_ci * libdwP.h: Add INTDECL. 3239da0c48c4Sopenharmony_ci 3240da0c48c4Sopenharmony_ci2005-08-28 Ulrich Drepper <drepper@redhat.com> 3241da0c48c4Sopenharmony_ci 3242da0c48c4Sopenharmony_ci * Makefile.am: Use $(LINK) not $(CC) when creating DSO. 3243da0c48c4Sopenharmony_ci (%.os): Use COMPILE.os. 3244da0c48c4Sopenharmony_ci (COMPILE.os): Filter out gconv options. 3245da0c48c4Sopenharmony_ci 3246da0c48c4Sopenharmony_ci2005-08-27 Roland McGrath <roland@redhat.com> 3247da0c48c4Sopenharmony_ci 3248da0c48c4Sopenharmony_ci * dwarf_getscopes.c (dwarf_getscopes): Rewritten using 3249da0c48c4Sopenharmony_ci __libdw_visit_scopes. 3250da0c48c4Sopenharmony_ci 3251da0c48c4Sopenharmony_ci * dwarf_getscopes_die.c: New file. 3252da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3253da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_getscopes_die. 3254da0c48c4Sopenharmony_ci * libdw.map: Bump to 0.115 and add it. 3255da0c48c4Sopenharmony_ci 3256da0c48c4Sopenharmony_ci * libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct 3257da0c48c4Sopenharmony_ci containing a DIE and its parent pointer, instead of just Dwarf_Die. 3258da0c48c4Sopenharmony_ci Take two functions for both preorder and postorder visitors. 3259da0c48c4Sopenharmony_ci * libdwP.h: Update decl. 3260da0c48c4Sopenharmony_ci (struct Dwarf_Die_Chain): New type. 3261da0c48c4Sopenharmony_ci * dwarf_func_inline.c: Update uses. 3262da0c48c4Sopenharmony_ci 3263da0c48c4Sopenharmony_ci * dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate. 3264da0c48c4Sopenharmony_ci Add INTDEF. 3265da0c48c4Sopenharmony_ci * libdwP.h: Add INTDECL. 3266da0c48c4Sopenharmony_ci * dwarf_func_name.c (dwarf_func_name): Use dwarf_diename. 3267da0c48c4Sopenharmony_ci 3268da0c48c4Sopenharmony_ci2005-08-23 Roland McGrath <roland@redhat.com> 3269da0c48c4Sopenharmony_ci 3270da0c48c4Sopenharmony_ci * dwarf_attr_integrate.c (dwarf_attr_integrate): Treat 3271da0c48c4Sopenharmony_ci DW_AT_specification the same as DW_AT_abstract_origin. 3272da0c48c4Sopenharmony_ci 3273da0c48c4Sopenharmony_ci2005-08-20 Roland McGrath <roland@redhat.com> 3274da0c48c4Sopenharmony_ci 3275da0c48c4Sopenharmony_ci * libdw.map: Add dwfl_cumodule, remove dwfl_linecu. 3276da0c48c4Sopenharmony_ci Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address, 3277da0c48c4Sopenharmony_ci and dwfl_report_offline. 3278da0c48c4Sopenharmony_ci 3279da0c48c4Sopenharmony_ci2005-08-19 Roland McGrath <roland@redhat.com> 3280da0c48c4Sopenharmony_ci 3281da0c48c4Sopenharmony_ci * libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes. 3282da0c48c4Sopenharmony_ci Add dwfl_module_relocate_address, dwfl_module_relocations, 3283da0c48c4Sopenharmony_ci dwfl_module_relocation_info. 3284da0c48c4Sopenharmony_ci 3285da0c48c4Sopenharmony_ci2005-08-18 Roland McGrath <roland@redhat.com> 3286da0c48c4Sopenharmony_ci 3287da0c48c4Sopenharmony_ci * dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as 3288da0c48c4Sopenharmony_ci outermost scope in the results. 3289da0c48c4Sopenharmony_ci 3290da0c48c4Sopenharmony_ci2005-08-15 Roland McGrath <roland@redhat.com> 3291da0c48c4Sopenharmony_ci 3292da0c48c4Sopenharmony_ci * dwarf_func_inline.c: New file. 3293da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3294da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances. 3295da0c48c4Sopenharmony_ci * libdw.map: Add them. 3296da0c48c4Sopenharmony_ci 3297da0c48c4Sopenharmony_ci * dwarf_func_die.c: New file. 3298da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3299da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_func_die. 3300da0c48c4Sopenharmony_ci * libdw.map: Add it. Bump version to ELFUTILS_0.114. 3301da0c48c4Sopenharmony_ci 3302da0c48c4Sopenharmony_ci2005-08-10 Ulrich Drepper <drepper@redhat.com> 3303da0c48c4Sopenharmony_ci 3304da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming 3305da0c48c4Sopenharmony_ci of DW_LNS_set_epilog_begin. 3306da0c48c4Sopenharmony_ci 3307da0c48c4Sopenharmony_ci2005-08-09 Roland McGrath <roland@redhat.com> 3308da0c48c4Sopenharmony_ci 3309da0c48c4Sopenharmony_ci * dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin. 3310da0c48c4Sopenharmony_ci 3311da0c48c4Sopenharmony_ci * dwarf_end.c: Add INTDEF. 3312da0c48c4Sopenharmony_ci * dwarf_error.c (dwarf_errmsg): Likewise. 3313da0c48c4Sopenharmony_ci * libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs. 3314da0c48c4Sopenharmony_ci 3315da0c48c4Sopenharmony_ci2005-08-01 Roland McGrath <roland@redhat.com> 3316da0c48c4Sopenharmony_ci 3317da0c48c4Sopenharmony_ci * dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset. 3318da0c48c4Sopenharmony_ci * dwarf_getabbrev.c (__libdw_getabbrev): Likewise. 3319da0c48c4Sopenharmony_ci 3320da0c48c4Sopenharmony_ci2005-07-28 Ulrich Drepper <drepper@redhat.com> 3321da0c48c4Sopenharmony_ci 3322da0c48c4Sopenharmony_ci * Makefile.am (libdw.so): No need to link with libeu.a anymore. 3323da0c48c4Sopenharmony_ci (libdw_a_LIBADD): Add all files from libdwfl.a. 3324da0c48c4Sopenharmony_ci 3325da0c48c4Sopenharmony_ci2005-07-27 Roland McGrath <roland@redhat.com> 3326da0c48c4Sopenharmony_ci 3327da0c48c4Sopenharmony_ci * Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in, 3328da0c48c4Sopenharmony_ci along with ../libebl/libebl.a and ../lib/libeu.a; 3329da0c48c4Sopenharmony_ci depend on ../libelf/libelf.so. 3330da0c48c4Sopenharmony_ci (libdw_so_LDADD): New variable. 3331da0c48c4Sopenharmony_ci * libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map. 3332da0c48c4Sopenharmony_ci 3333da0c48c4Sopenharmony_ci * libdw.map: Define an empty base version and move all symbols to 3334da0c48c4Sopenharmony_ci version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet. 3335da0c48c4Sopenharmony_ci 3336da0c48c4Sopenharmony_ci2005-07-23 Ulrich Drepper <drepper@redhat.com> 3337da0c48c4Sopenharmony_ci 3338da0c48c4Sopenharmony_ci * dwarf_error.c: Add internal alias for dwarf_errno. 3339da0c48c4Sopenharmony_ci * libdwP.h: Declare __dwarf_errno_internal. 3340da0c48c4Sopenharmony_ci * dwarf_getloclist.c: Use INTDEF for dwarf_errno. 3341da0c48c4Sopenharmony_ci 3342da0c48c4Sopenharmony_ci * dwarf_error.c [USE_TLS]: Actually use __thread in definition of 3343da0c48c4Sopenharmony_ci global_error. 3344da0c48c4Sopenharmony_ci 3345da0c48c4Sopenharmony_ci2005-06-01 Roland McGrath <roland@redhat.com> 3346da0c48c4Sopenharmony_ci 3347da0c48c4Sopenharmony_ci * dwarf_getaranges.c (dwarf_getaranges): Sort result array. 3348da0c48c4Sopenharmony_ci * dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search. 3349da0c48c4Sopenharmony_ci 3350da0c48c4Sopenharmony_ci2005-06-08 Roland McGrath <roland@redhat.com> 3351da0c48c4Sopenharmony_ci 3352da0c48c4Sopenharmony_ci * memory-access.h (get_uleb128_step, get_uleb128): Remove casts. 3353da0c48c4Sopenharmony_ci (get_sleb128_step, get_sleb128): Likewise. 3354da0c48c4Sopenharmony_ci * dwarf_getattrs.c (dwarf_getattrs): Add consts. 3355da0c48c4Sopenharmony_ci * dwarf_getloclist.c (getloclist): Likewise. 3356da0c48c4Sopenharmony_ci * dwarf_formblock.c (dwarf_formblock): Likewise. 3357da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Likewise. 3358da0c48c4Sopenharmony_ci * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise. 3359da0c48c4Sopenharmony_ci * dwarf_formref.c (dwarf_formref): Likewise. 3360da0c48c4Sopenharmony_ci * dwarf_formsdata.c (dwarf_formsdata): Likewise. 3361da0c48c4Sopenharmony_ci * dwarf_formudata.c (dwarf_formudata): Likewise. 3362da0c48c4Sopenharmony_ci * dwarf_haschildren.c (dwarf_haschildren): Likewise. 3363da0c48c4Sopenharmony_ci * dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise. 3364da0c48c4Sopenharmony_ci * dwarf_tag.c (dwarf_tag): Likewise. 3365da0c48c4Sopenharmony_ci * dwarf_getabbrev.c (__libdw_getabbrev): Likewise. 3366da0c48c4Sopenharmony_ci * memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise. 3367da0c48c4Sopenharmony_ci * libdw_form.c (__libdw_form_val_len): Likewise. 3368da0c48c4Sopenharmony_ci * libdwP.h: Update decl. 3369da0c48c4Sopenharmony_ci 3370da0c48c4Sopenharmony_ci2005-06-04 Roland McGrath <roland@redhat.com> 3371da0c48c4Sopenharmony_ci 3372da0c48c4Sopenharmony_ci * memory-access.h (get_uleb128_rest_return): New macro. 3373da0c48c4Sopenharmony_ci [! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it. 3374da0c48c4Sopenharmony_ci (get_sleb128_rest_return): New macro. 3375da0c48c4Sopenharmony_ci [! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it. 3376da0c48c4Sopenharmony_ci * memory-access.c: New file. 3377da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3378da0c48c4Sopenharmony_ci (DEFS): Add -DIS_LIBDW. 3379da0c48c4Sopenharmony_ci 3380da0c48c4Sopenharmony_ci2005-05-31 Roland McGrath <roland@redhat.com> 3381da0c48c4Sopenharmony_ci 3382da0c48c4Sopenharmony_ci * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to 3383da0c48c4Sopenharmony_ci formref offset. 3384da0c48c4Sopenharmony_ci 3385da0c48c4Sopenharmony_ci2005-05-30 Roland McGrath <roland@redhat.com> 3386da0c48c4Sopenharmony_ci 3387da0c48c4Sopenharmony_ci * dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base 3388da0c48c4Sopenharmony_ci address if DW_AT_low_pc is missing. Not to spec, but GCC generates it. 3389da0c48c4Sopenharmony_ci 3390da0c48c4Sopenharmony_ci * dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte 3391da0c48c4Sopenharmony_ci BEGIN value. Instead, match base address entries separately for 3392da0c48c4Sopenharmony_ci 32/64 size cases. 3393da0c48c4Sopenharmony_ci 3394da0c48c4Sopenharmony_ci2005-05-28 Roland McGrath <roland@redhat.com> 3395da0c48c4Sopenharmony_ci 3396da0c48c4Sopenharmony_ci * dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance 3397da0c48c4Sopenharmony_ci past location expression contents. 3398da0c48c4Sopenharmony_ci 3399da0c48c4Sopenharmony_ci2005-05-23 Roland McGrath <roland@redhat.com> 3400da0c48c4Sopenharmony_ci 3401da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Comment typo fix. 3402da0c48c4Sopenharmony_ci 3403da0c48c4Sopenharmony_ci * dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation. 3404da0c48c4Sopenharmony_ci * dwarf_getloclist.c (dwarf_addrloclists): Likewise. 3405da0c48c4Sopenharmony_ci 3406da0c48c4Sopenharmony_ci2005-05-22 Ulrich Drepper <drepper@redhat.com> 3407da0c48c4Sopenharmony_ci 3408da0c48c4Sopenharmony_ci * libdwP.h: Only use INTDECL for alias prototypes. 3409da0c48c4Sopenharmony_ci 3410da0c48c4Sopenharmony_ci2005-05-19 Roland McGrath <roland@redhat.com> 3411da0c48c4Sopenharmony_ci 3412da0c48c4Sopenharmony_ci * dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too. 3413da0c48c4Sopenharmony_ci 3414da0c48c4Sopenharmony_ci * dwarf_getscopevar.c: New file. 3415da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3416da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_getscopevar. 3417da0c48c4Sopenharmony_ci 3418da0c48c4Sopenharmony_ci * dwarf_getsrcfiles.c: Add INTDEF. 3419da0c48c4Sopenharmony_ci * dwarf_haschildren.c: Likewise. 3420da0c48c4Sopenharmony_ci * libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL. 3421da0c48c4Sopenharmony_ci 3422da0c48c4Sopenharmony_ci * dwarf_getscopes.c: New file. 3423da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3424da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_getscopes. 3425da0c48c4Sopenharmony_ci * libdw.map: Add it. 3426da0c48c4Sopenharmony_ci 3427da0c48c4Sopenharmony_ci2005-05-18 Roland McGrath <roland@redhat.com> 3428da0c48c4Sopenharmony_ci 3429da0c48c4Sopenharmony_ci * libdwP.h (IDX_debug_ranges): New enum constant. 3430da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges". 3431da0c48c4Sopenharmony_ci * libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant. 3432da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add it. 3433da0c48c4Sopenharmony_ci * dwarf_haspc.c: New file. 3434da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_haspc. 3435da0c48c4Sopenharmony_ci * libdw.map: Add it. 3436da0c48c4Sopenharmony_ci * libdwP.h: Add INTDECL. 3437da0c48c4Sopenharmony_ci 3438da0c48c4Sopenharmony_ci * dwarf_attr_integrate.c: New file. 3439da0c48c4Sopenharmony_ci * dwarf_hasattr_integrate.c: New file. 3440da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add them. 3441da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate. 3442da0c48c4Sopenharmony_ci * libdw.map: Add them. 3443da0c48c4Sopenharmony_ci 3444da0c48c4Sopenharmony_ci * dwarf_hasattr.c: Add INTDEF. 3445da0c48c4Sopenharmony_ci * libdwP.h: Add INTDECL for it. 3446da0c48c4Sopenharmony_ci 3447da0c48c4Sopenharmony_ci * dwarf_formref_die.c: New file. 3448da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add it. 3449da0c48c4Sopenharmony_ci * libdw.h (dwarf_formref_die): Declare it. 3450da0c48c4Sopenharmony_ci * libdwP.h (dwarf_formref_die): Add INTDECL. 3451da0c48c4Sopenharmony_ci * libdw.map: Add it. 3452da0c48c4Sopenharmony_ci 3453da0c48c4Sopenharmony_ci * dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out 3454da0c48c4Sopenharmony_ci of ... 3455da0c48c4Sopenharmony_ci (dwarf_getloclist): ... here. Call them. 3456da0c48c4Sopenharmony_ci (dwarf_addrloclists): New function. 3457da0c48c4Sopenharmony_ci * libdw.h: Declare it. 3458da0c48c4Sopenharmony_ci * libdw.map: Add it. 3459da0c48c4Sopenharmony_ci 3460da0c48c4Sopenharmony_ci * dwarf_getmacros.c (dwarf_getmacros): Don't bail at 3461da0c48c4Sopenharmony_ci DW_MACINFO_end_file. Recognize type 0 as terminator. 3462da0c48c4Sopenharmony_ci 3463da0c48c4Sopenharmony_ci2005-05-05 Roland McGrath <roland@redhat.com> 3464da0c48c4Sopenharmony_ci 3465da0c48c4Sopenharmony_ci * dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search. 3466da0c48c4Sopenharmony_ci 3467da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since 3468da0c48c4Sopenharmony_ci the line program does not produce all entries in ascending order. 3469da0c48c4Sopenharmony_ci 3470da0c48c4Sopenharmony_ci2005-04-25 Ulrich Drepper <drepper@redhat.com> 3471da0c48c4Sopenharmony_ci 3472da0c48c4Sopenharmony_ci * dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple 3473da0c48c4Sopenharmony_ci occurences (e.g., inlines) better. 3474da0c48c4Sopenharmony_ci 3475da0c48c4Sopenharmony_ci2005-04-24 Ulrich Drepper <drepper@redhat.com> 3476da0c48c4Sopenharmony_ci 3477da0c48c4Sopenharmony_ci * libdw.h (DWARF_END_ABBREV): Define. 3478da0c48c4Sopenharmony_ci * dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if 3479da0c48c4Sopenharmony_ci end is reached. 3480da0c48c4Sopenharmony_ci * dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end 3481da0c48c4Sopenharmony_ci of records reached. 3482da0c48c4Sopenharmony_ci * dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV 3483da0c48c4Sopenharmony_ci as error of __libdw_getabbrev. 3484da0c48c4Sopenharmony_ci 3485da0c48c4Sopenharmony_ci2005-04-04 Ulrich Drepper <drepper@redhat.com> 3486da0c48c4Sopenharmony_ci 3487da0c48c4Sopenharmony_ci * dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization. 3488da0c48c4Sopenharmony_ci 3489da0c48c4Sopenharmony_ci * dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of 3490da0c48c4Sopenharmony_ci results back to caller. 3491da0c48c4Sopenharmony_ci 3492da0c48c4Sopenharmony_ci2005-04-04 Roland McGrath <roland@redhat.com> 3493da0c48c4Sopenharmony_ci 3494da0c48c4Sopenharmony_ci * dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL. 3495da0c48c4Sopenharmony_ci 3496da0c48c4Sopenharmony_ci * dwarf_func_line.c (__libdw_func_intval): Use internal_function in 3497da0c48c4Sopenharmony_ci defn. 3498da0c48c4Sopenharmony_ci 3499da0c48c4Sopenharmony_ci2005-04-04 Ulrich Drepper <drepper@redhat.com> 3500da0c48c4Sopenharmony_ci 3501da0c48c4Sopenharmony_ci * dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE. 3502da0c48c4Sopenharmony_ci 3503da0c48c4Sopenharmony_ci * dwarf_getsrc_file.c: New file. 3504da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c. 3505da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_getsrc_file. 3506da0c48c4Sopenharmony_ci * libdw.map: Add dwarf_getsrc_file. 3507da0c48c4Sopenharmony_ci 3508da0c48c4Sopenharmony_ci2005-04-02 Ulrich Drepper <drepper@redhat.com> 3509da0c48c4Sopenharmony_ci 3510da0c48c4Sopenharmony_ci * dwarf_func_entrypc.c: New file. 3511da0c48c4Sopenharmony_ci * dwarf_func_col.c: New file. 3512da0c48c4Sopenharmony_ci * dwarf_func_line.c: New file. 3513da0c48c4Sopenharmony_ci * dwarf_func_file.c: New file. 3514da0c48c4Sopenharmony_ci * libdw.h: Add prototypes for new functions. 3515da0c48c4Sopenharmony_ci * libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line, 3516da0c48c4Sopenharmony_ci dwarf_func_file. 3517da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c, 3518da0c48c4Sopenharmony_ci dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c. 3519da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_Func_s): Add cudie element. 3520da0c48c4Sopenharmony_ci Declare __libdw_func_intval and __dwarf_formsdata_internal. 3521da0c48c4Sopenharmony_ci * dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object. 3522da0c48c4Sopenharmony_ci * dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs. 3523da0c48c4Sopenharmony_ci 3524da0c48c4Sopenharmony_ci * dwarf.h: Add some DWARF3 definitions. 3525da0c48c4Sopenharmony_ci 3526da0c48c4Sopenharmony_ci2005-04-01 Ulrich Drepper <drepper@redhat.com> 3527da0c48c4Sopenharmony_ci 3528da0c48c4Sopenharmony_ci * dwarf_getfuncs.c: New file. 3529da0c48c4Sopenharmony_ci * dwarf_func_highpc.c: New file. 3530da0c48c4Sopenharmony_ci * dwarf_func_lowpc.c: New file. 3531da0c48c4Sopenharmony_ci * dwarf_func_name.c: New file. 3532da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c, 3533da0c48c4Sopenharmony_ci dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c. 3534da0c48c4Sopenharmony_ci * libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc, 3535da0c48c4Sopenharmony_ci and dwarf_func_name. 3536da0c48c4Sopenharmony_ci * libdw.h: Add prototypes for new functions. 3537da0c48c4Sopenharmony_ci * dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs. 3538da0c48c4Sopenharmony_ci * dwarf_siblingof.c: Likewise. 3539da0c48c4Sopenharmony_ci * dwarf_dieoffset.c: Likewise. 3540da0c48c4Sopenharmony_ci * dwarf_highpc.c: Likewise. 3541da0c48c4Sopenharmony_ci * dwarf_lowpc.c: Likewise. 3542da0c48c4Sopenharmony_ci * libdwP.h: Add prototypes for internal functions. 3543da0c48c4Sopenharmony_ci Define Dwarf_Func_s structure. 3544da0c48c4Sopenharmony_ci 3545da0c48c4Sopenharmony_ci2005-03-29 Ulrich Drepper <drepper@redhat.com> 3546da0c48c4Sopenharmony_ci 3547da0c48c4Sopenharmony_ci * libdw.h: Add padding in Dwarf_die. 3548da0c48c4Sopenharmony_ci 3549da0c48c4Sopenharmony_ci * dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs. 3550da0c48c4Sopenharmony_ci * dwarf_attr.c: Likewise. 3551da0c48c4Sopenharmony_ci * dwarf_begin.c: Likewise. 3552da0c48c4Sopenharmony_ci * dwarf_begin_elf.c: Likewise. 3553da0c48c4Sopenharmony_ci * dwarf_bitoffset.c: Likewise. 3554da0c48c4Sopenharmony_ci * dwarf_bitsize.c: Likewise. 3555da0c48c4Sopenharmony_ci * dwarf_bytesize.c: Likewise. 3556da0c48c4Sopenharmony_ci * dwarf_diename.c: Likewise. 3557da0c48c4Sopenharmony_ci * dwarf_formaddr.c: Likewise. 3558da0c48c4Sopenharmony_ci * dwarf_formblock.c: Likewise. 3559da0c48c4Sopenharmony_ci * dwarf_formref.c: Likewise. 3560da0c48c4Sopenharmony_ci * dwarf_formstring.c: Likewise. 3561da0c48c4Sopenharmony_ci * dwarf_formudata.c: Likewise. 3562da0c48c4Sopenharmony_ci * dwarf_getarange_addr.c: Likewise. 3563da0c48c4Sopenharmony_ci * dwarf_getarangeinfo.c: Likewise. 3564da0c48c4Sopenharmony_ci * dwarf_getaranges.c: Likewise. 3565da0c48c4Sopenharmony_ci * dwarf_getloclist.c: Likewise. 3566da0c48c4Sopenharmony_ci * dwarf_getmacros.c: Likewise. 3567da0c48c4Sopenharmony_ci * dwarf_getsrc_die.c: Likewise. 3568da0c48c4Sopenharmony_ci * dwarf_getsrcfiles.c: Likewise. 3569da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Likewise. 3570da0c48c4Sopenharmony_ci * dwarf_highpc.c: Likewise. 3571da0c48c4Sopenharmony_ci * dwarf_lowpc.c: Likewise. 3572da0c48c4Sopenharmony_ci * dwarf_nextcu.c: Likewise. 3573da0c48c4Sopenharmony_ci * dwarf_offdie.c: Likewise. 3574da0c48c4Sopenharmony_ci * dwarf_siblingof.c: Likewise. 3575da0c48c4Sopenharmony_ci * dwarf_srclang.c: Likewise. 3576da0c48c4Sopenharmony_ci * dwarf_tag.c: Likewise. 3577da0c48c4Sopenharmony_ci * libdw_findcu.c: Likewise. 3578da0c48c4Sopenharmony_ci * libdwP.h: Add prototypes for internal functions. 3579da0c48c4Sopenharmony_ci 3580da0c48c4Sopenharmony_ci * dwarf_addrdie.c: New file. 3581da0c48c4Sopenharmony_ci * dwarf_macro_opcode.c: New file. 3582da0c48c4Sopenharmony_ci * dwarf_macro_param1.c: New file. 3583da0c48c4Sopenharmony_ci * dwarf_macro_param2.c: New file. 3584da0c48c4Sopenharmony_ci * libdw.h: Add declarations. Move Dwarf_Macro definition to libdwP.h. 3585da0c48c4Sopenharmony_ci * libdwP.h: Remove Dwarf_Macro definition. 3586da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c, 3587da0c48c4Sopenharmony_ci dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c. 3588da0c48c4Sopenharmony_ci * libdw.map: Add entries for new functions. 3589da0c48c4Sopenharmony_ci 3590da0c48c4Sopenharmony_ci2005-03-21 Ulrich Drepper <drepper@redhat.com> 3591da0c48c4Sopenharmony_ci 3592da0c48c4Sopenharmony_ci * libdw.h: Handle broken gcc < 4. 3593da0c48c4Sopenharmony_ci 3594da0c48c4Sopenharmony_ci2005-02-15 Ulrich Drepper <drepper@redhat.com> 3595da0c48c4Sopenharmony_ci 3596da0c48c4Sopenharmony_ci * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. 3597da0c48c4Sopenharmony_ci 3598da0c48c4Sopenharmony_ci * dwarf_begin_elf.c: Fix warnings. 3599da0c48c4Sopenharmony_ci * dwarf_dieoffset.c: Likewise. 3600da0c48c4Sopenharmony_ci * dwarf_end.c: Likewise. 3601da0c48c4Sopenharmony_ci * dwarf_error.c: Likewise. 3602da0c48c4Sopenharmony_ci * dwarf_getpubnames.c: Likewise. 3603da0c48c4Sopenharmony_ci 3604da0c48c4Sopenharmony_ci * libdwP.h: Add new error values. 3605da0c48c4Sopenharmony_ci * dwarf_error.c: Support new error values. 3606da0c48c4Sopenharmony_ci * dwarf_getpubnames.c: Check parameter value. 3607da0c48c4Sopenharmony_ci 3608da0c48c4Sopenharmony_ci2005-02-05 Ulrich Drepper <drepper@redhat.com> 3609da0c48c4Sopenharmony_ci 3610da0c48c4Sopenharmony_ci * Makefile.am: Check for text relocations in constructed DSO. 3611da0c48c4Sopenharmony_ci 3612da0c48c4Sopenharmony_ci * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. 3613da0c48c4Sopenharmony_ci 3614da0c48c4Sopenharmony_ci2005-02-04 Ulrich Drepper <drepper@redhat.com> 3615da0c48c4Sopenharmony_ci 3616da0c48c4Sopenharmony_ci * dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary 3617da0c48c4Sopenharmony_ci checks to not read over buffer boundaries for ill-formed DWARF data. 3618da0c48c4Sopenharmony_ci 3619da0c48c4Sopenharmony_ci2004-09-25 Ulrich Drepper <drepper@redhat.com> 3620da0c48c4Sopenharmony_ci 3621da0c48c4Sopenharmony_ci * dwarf_child.c: Make compile with gcc 4.0. 3622da0c48c4Sopenharmony_ci * dwarf_error.c: Likewise. 3623da0c48c4Sopenharmony_ci * dwarf_formblock.c: Likewise. 3624da0c48c4Sopenharmony_ci * dwarf_getabbrev.c: Likewise. 3625da0c48c4Sopenharmony_ci * dwarf_getattrs.c: Likewise. 3626da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Likewise. 3627da0c48c4Sopenharmony_ci * dwarf_tag.c: Likewise. 3628da0c48c4Sopenharmony_ci * libdw_form.c: Likewise. 3629da0c48c4Sopenharmony_ci 3630da0c48c4Sopenharmony_ci2004-01-20 Ulrich Drepper <drepper@redhat.com> 3631da0c48c4Sopenharmony_ci 3632da0c48c4Sopenharmony_ci * Makefile.am: Support building with mudflap. 3633da0c48c4Sopenharmony_ci 3634da0c48c4Sopenharmony_ci * dwarf_getloclist.c: Fix warnings gcc 3.4 spits out. 3635da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Likewise. 3636da0c48c4Sopenharmony_ci * dwarf_memory-access.h: Likewise. 3637da0c48c4Sopenharmony_ci 3638da0c48c4Sopenharmony_ci2004-01-19 Ulrich Drepper <drepper@redhat.com> 3639da0c48c4Sopenharmony_ci 3640da0c48c4Sopenharmony_ci * dwarf_getsrcfiles.c: Third parameter can be NULL. 3641da0c48c4Sopenharmony_ci 3642da0c48c4Sopenharmony_ci * libdw.h: Define Dwarf_macro. Declare dwarf_getmacros. 3643da0c48c4Sopenharmony_ci Third parameter of dwarf_getsrcfiles can be NULL. 3644da0c48c4Sopenharmony_ci 3645da0c48c4Sopenharmony_ci * libdw.map: Add dwarf_getmacros. 3646da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros. 3647da0c48c4Sopenharmony_ci * dwarf_getmacros.c: New file. 3648da0c48c4Sopenharmony_ci 3649da0c48c4Sopenharmony_ci2004-01-18 Ulrich Drepper <drepper@redhat.com> 3650da0c48c4Sopenharmony_ci 3651da0c48c4Sopenharmony_ci * libdw.h: Second parameter of dwarf_getaranges can be NULL. 3652da0c48c4Sopenharmony_ci 3653da0c48c4Sopenharmony_ci * dwarf_nextcu.c: Return -1 if dwarf parameter is NULL. 3654da0c48c4Sopenharmony_ci 3655da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: 3656da0c48c4Sopenharmony_ci Use read_2ubyte_unaligned_inc instead of _inc-less variant. 3657da0c48c4Sopenharmony_ci 3658da0c48c4Sopenharmony_ci * dwarf_getaranges.c: Allow naranges parameter to be NULL. 3659da0c48c4Sopenharmony_ci 3660da0c48c4Sopenharmony_ci * libdwP.h (_): Use elfutils domain. 3661da0c48c4Sopenharmony_ci 3662da0c48c4Sopenharmony_ci * dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction. 3663da0c48c4Sopenharmony_ci 3664da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Fix typo in comment. 3665da0c48c4Sopenharmony_ci 3666da0c48c4Sopenharmony_ci2004-01-17 Ulrich Drepper <drepper@redhat.com> 3667da0c48c4Sopenharmony_ci 3668da0c48c4Sopenharmony_ci * Makefile.am: Support building with mudflap. 3669da0c48c4Sopenharmony_ci 3670da0c48c4Sopenharmony_ci2004-01-16 Ulrich Drepper <drepper@redhat.com> 3671da0c48c4Sopenharmony_ci 3672da0c48c4Sopenharmony_ci * memory-access.h: Add lots of const in case a pointer passed is const. 3673da0c48c4Sopenharmony_ci 3674da0c48c4Sopenharmony_ci * dwarf_formflag.c: New file. 3675da0c48c4Sopenharmony_ci * dwarf_getattrs.c: New file. 3676da0c48c4Sopenharmony_ci * dwarf_error.c: Add new error value. 3677da0c48c4Sopenharmony_ci * libdw.h: Add prototypes for new functions. Adjust prototype for 3678da0c48c4Sopenharmony_ci dwarf_getpubnames. 3679da0c48c4Sopenharmony_ci * libdw.map: Add new functions. 3680da0c48c4Sopenharmony_ci * dwarf_getpubnames.c: Change type of return value and fourth parameter 3681da0c48c4Sopenharmony_ci to ptrdiff_t. 3682da0c48c4Sopenharmony_ci * libdwP.h: Add new error value. 3683da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and 3684da0c48c4Sopenharmony_ci dwarf_formflag.c. 3685da0c48c4Sopenharmony_ci 3686da0c48c4Sopenharmony_ci * dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL. 3687da0c48c4Sopenharmony_ci 3688da0c48c4Sopenharmony_ci2004-01-12 Ulrich Drepper <drepper@redhat.com> 3689da0c48c4Sopenharmony_ci 3690da0c48c4Sopenharmony_ci * dwarf_getarange_addr.c: New file 3691da0c48c4Sopenharmony_ci * dwarf_getarangeinfo.c: New file. 3692da0c48c4Sopenharmony_ci * dwarf_getaranges.c: New file. 3693da0c48c4Sopenharmony_ci * dwarf_onerange.c: New file. 3694da0c48c4Sopenharmony_ci * libdw.h: Declare new functions. Define Dwarf_Arange and 3695da0c48c4Sopenharmony_ci Dwarf_Aranges. 3696da0c48c4Sopenharmony_ci * libdw.map: Add new functions. 3697da0c48c4Sopenharmony_ci * libdwP.h: Add new errors. Add aranges member to struct Dwarf. 3698da0c48c4Sopenharmony_ci Define Dwarf_Aranges_s and Dwarf_Arange_s. 3699da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c, 3700da0c48c4Sopenharmony_ci dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c. 3701da0c48c4Sopenharmony_ci * dwarf_error.c: Add new message. 3702da0c48c4Sopenharmony_ci 3703da0c48c4Sopenharmony_ci2004-01-11 Ulrich Drepper <drepper@redhat.com> 3704da0c48c4Sopenharmony_ci 3705da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c, 3706da0c48c4Sopenharmony_ci dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c, 3707da0c48c4Sopenharmony_ci dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c. 3708da0c48c4Sopenharmony_ci * dwarf_error.c: Add another message. 3709da0c48c4Sopenharmony_ci * dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines 3710da0c48c4Sopenharmony_ci introduction. 3711da0c48c4Sopenharmony_ci * dwarf_filesrc.c: Likewise. 3712da0c48c4Sopenharmony_ci * dwarf_getsrcfiles.c: Likewise. 3713da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Likewise. 3714da0c48c4Sopenharmony_ci * dwarf_lineaddr.c: New file. 3715da0c48c4Sopenharmony_ci * dwarf_linebeginstatement.c: New file. 3716da0c48c4Sopenharmony_ci * dwarf_lineblock.c: New file. 3717da0c48c4Sopenharmony_ci * dwarf_linecol.c: New file. 3718da0c48c4Sopenharmony_ci * dwarf_lineendsequence.c: New file. 3719da0c48c4Sopenharmony_ci * dwarf_lineepiloguebegin.c: New file. 3720da0c48c4Sopenharmony_ci * dwarf_lineno.c: New file. 3721da0c48c4Sopenharmony_ci * dwarf_lineprologueend.c: New file. 3722da0c48c4Sopenharmony_ci * dwarf_onesrcline.c: New file. 3723da0c48c4Sopenharmony_ci * dwarf_lineno.c: Change interface to store result in object pointed 3724da0c48c4Sopenharmony_ci to by second parameter. 3725da0c48c4Sopenharmony_ci * libdw.h: Add prototypes for new functions. Change dwarf_lineno 3726da0c48c4Sopenharmony_ci prototype. Define Dwarf_Files and Dwarf_Lines. 3727da0c48c4Sopenharmony_ci * libdw.map: Add new functions. 3728da0c48c4Sopenharmony_ci * libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s. 3729da0c48c4Sopenharmony_ci * libdw_findcu.c: Don't initialize nlines field. 3730da0c48c4Sopenharmony_ci 3731da0c48c4Sopenharmony_ci * dwarf_siblingof: Little optimization. 3732da0c48c4Sopenharmony_ci 3733da0c48c4Sopenharmony_ci * dwarf_begin.c: Remember that the ELF descriptor must be closed. 3734da0c48c4Sopenharmony_ci * dwarf_end.c: Close ELF descriptor if free_elf is set. 3735da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf): Add free_elf field. 3736da0c48c4Sopenharmony_ci 3737da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and 3738da0c48c4Sopenharmony_ci dwarf_offabbrev.c. 3739da0c48c4Sopenharmony_ci * dwarf_getstring.c: New file. 3740da0c48c4Sopenharmony_ci * dwarf_offabbrev.c: New file. 3741da0c48c4Sopenharmony_ci * libdw.map: Add dwarf_getstring and dwarf_offabbrev. 3742da0c48c4Sopenharmony_ci * dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result 3743da0c48c4Sopenharmony_ci parameters. Don't allocate memory if not necessary and don't lookup 3744da0c48c4Sopenharmony_ci previous results if no CU given. 3745da0c48c4Sopenharmony_ci (dwarf_getabbrev): Adjust call to __libdw_getabbrev. 3746da0c48c4Sopenharmony_ci * dwarf_tag.c: Adjust call to __libdw_getabbrev. 3747da0c48c4Sopenharmony_ci * libdw.h: Declare dwarf_offabbrev and dwarf_getstring. 3748da0c48c4Sopenharmony_ci * libdwP.h: Change prototype for __libdw_getabbrev. 3749da0c48c4Sopenharmony_ci 3750da0c48c4Sopenharmony_ci * dwarf_getabbrevattr.c: Add offsetp parameter. Fill in before 3751da0c48c4Sopenharmony_ci returning if this is wanted. 3752da0c48c4Sopenharmony_ci 3753da0c48c4Sopenharmony_ci2004-01-09 Ulrich Drepper <drepper@redhat.com> 3754da0c48c4Sopenharmony_ci 3755da0c48c4Sopenharmony_ci * dwarf_nextcu.c: Add new parameter offset_sizep. Initialize it 3756da0c48c4Sopenharmony_ci with offset_size value. 3757da0c48c4Sopenharmony_ci * libdw.h: Adjust dwarf_nextcu prototype. 3758da0c48c4Sopenharmony_ci * libdwP.h (struct Dwarf_CU): Add offset_size member. 3759da0c48c4Sopenharmony_ci * libdw_findcu.c: Adjust dwarf_nextcu call. Initialize offset_size 3760da0c48c4Sopenharmony_ci member of new CU struct. 3761da0c48c4Sopenharmony_ci * dwarf_formstring.c: Depend on offset_size not address_size for 3762da0c48c4Sopenharmony_ci DW_FORM_strp handling. 3763da0c48c4Sopenharmony_ci * dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr. 3764da0c48c4Sopenharmony_ci 3765da0c48c4Sopenharmony_ci * dwarf_tag.c (__libdw_findabbrev): Return correct value for 3766da0c48c4Sopenharmony_ci failing lookup. 3767da0c48c4Sopenharmony_ci (dwarf_tag): Correctly recognize failed lookup. 3768da0c48c4Sopenharmony_ci 3769da0c48c4Sopenharmony_ci * dwarf_end.c (cu_free): Call tdestroy for locs member. Use new 3770da0c48c4Sopenharmony_ci function noop_free. 3771da0c48c4Sopenharmony_ci * dwarf_error.c: Add message for DWARF_E_NO_BLOCK. 3772da0c48c4Sopenharmony_ci * dwarf_formblock.c: New file. 3773da0c48c4Sopenharmony_ci * dwarf_getloclist.c: Rewrite to handle a single block. 3774da0c48c4Sopenharmony_ci * libdw.h: Define Dwarf_Block. Rename Dwarf_Loc members. Remove 3775da0c48c4Sopenharmony_ci Dwarf_Locdesc definition. Declare dwarf_formblock. Remove 3776da0c48c4Sopenharmony_ci dwarf_getloclistent declaration. 3777da0c48c4Sopenharmony_ci * libdw.map: Add dwarf_formblock, remove dwarf_getloclistent. 3778da0c48c4Sopenharmony_ci * libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK. 3779da0c48c4Sopenharmony_ci Add locs member to struct Dwarf_CU. 3780da0c48c4Sopenharmony_ci * libdw_fundcu.c: Initialize locs member of new CU. 3781da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c. 3782da0c48c4Sopenharmony_ci Remove dwarf_getloclistent.c. 3783da0c48c4Sopenharmony_ci 3784da0c48c4Sopenharmony_ci2004-01-07 Ulrich Drepper <drepper@redhat.com> 3785da0c48c4Sopenharmony_ci 3786da0c48c4Sopenharmony_ci * libdw.h: Use __nonnull__ attribute only for gcc >= 3.3. 3787da0c48c4Sopenharmony_ci * libdwP.h: Likewise. 3788da0c48c4Sopenharmony_ci 3789da0c48c4Sopenharmony_ci * dwarf_getloclist.c: New file. 3790da0c48c4Sopenharmony_ci * dwarf_getloclistent.c: New file. 3791da0c48c4Sopenharmony_ci * libdw.h: Define Dwarf_Loc and Dwarf_Locdesc. 3792da0c48c4Sopenharmony_ci Declare dwarf_getloclistent and dwarf_getloclist. 3793da0c48c4Sopenharmony_ci * libdw.map: Add dwarf_getloclistent and dwarf_getloclist. 3794da0c48c4Sopenharmony_ci * libdwP.h: Define DWARF_E_NO_LOCLIST. 3795da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and 3796da0c48c4Sopenharmony_ci dwarf_getloclist.c. 3797da0c48c4Sopenharmony_ci 3798da0c48c4Sopenharmony_ci * dwarf_error.c: More error messages. 3799da0c48c4Sopenharmony_ci 3800da0c48c4Sopenharmony_ci2004-01-06 Ulrich Drepper <drepper@redhat.com> 3801da0c48c4Sopenharmony_ci 3802da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Remove debugging support. 3803da0c48c4Sopenharmony_ci 3804da0c48c4Sopenharmony_ci * dwarf_getsrcfiles.c: New file. 3805da0c48c4Sopenharmony_ci * dwarf_filesrc.c: New file. 3806da0c48c4Sopenharmony_ci * libdw.h: Declare these functions. Define Dwarf_File. 3807da0c48c4Sopenharmony_ci * libdwP.c: Adjust Dwarf_File_s definition. 3808da0c48c4Sopenharmony_ci * libdw.map: Add these functions. 3809da0c48c4Sopenharmony_ci * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and 3810da0c48c4Sopenharmony_ci dwarf_filesrc.c. 3811da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: Initialize cu->files. 3812da0c48c4Sopenharmony_ci 3813da0c48c4Sopenharmony_ci2004-01-05 Ulrich Drepper <drepper@redhat.com> 3814da0c48c4Sopenharmony_ci 3815da0c48c4Sopenharmony_ci * libdw.h: Add more nonnull function attributes. 3816da0c48c4Sopenharmony_ci 3817da0c48c4Sopenharmony_ci * dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next. 3818da0c48c4Sopenharmony_ci * dwarf_end.c (cu_free): New function. 3819da0c48c4Sopenharmony_ci (dwarf_end): Also free CU tree. Correct freeing of memory blocks. 3820da0c48c4Sopenharmony_ci * dwarf_error.c (errmsgs): Add new messages. 3821da0c48c4Sopenharmony_ci * dwarf_getsrc_die.c: New file. 3822da0c48c4Sopenharmony_ci * dwarf_getsrclines.c: New file. 3823da0c48c4Sopenharmony_ci * dwarf_lineno.c: New file. 3824da0c48c4Sopenharmony_ci * dwarf_linesrc.c: New file. 3825da0c48c4Sopenharmony_ci * dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc 3826da0c48c4Sopenharmony_ci instead of the *_inc-less variants. 3827da0c48c4Sopenharmony_ci * libdw.h: Define Dwarf_Line. Add some function attributes. Declare 3828da0c48c4Sopenharmony_ci dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc. 3829da0c48c4Sopenharmony_ci * libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, 3830da0c48c4Sopenharmony_ci and dwarf_linesrc. 3831da0c48c4Sopenharmony_ci * libdwP.h: Add more error codes. 3832da0c48c4Sopenharmony_ci (struct Dwarf): Remove mem_tail.next member. 3833da0c48c4Sopenharmony_ci (Dwarf_File): Define type. 3834da0c48c4Sopenharmony_ci (struct Dwarf_Line_s): Define type. 3835da0c48c4Sopenharmony_ci (struct Dwarf_CU): Add lines and nlines members. 3836da0c48c4Sopenharmony_ci (libdw_alloc): Define local variable _tail and use it. 3837da0c48c4Sopenharmony_ci Add some function attributes. 3838da0c48c4Sopenharmony_ci * libdw_alloc.c (__libdw_allocate): Don't initialize next member. 3839da0c48c4Sopenharmony_ci * libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members. 3840da0c48c4Sopenharmony_ci * memory-access.h: Add unlikely for the endian conversion paths. 3841da0c48c4Sopenharmony_ci * Makefile.am (AM_CFLAGS): Add -std parameter. 3842da0c48c4Sopenharmony_ci (libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die, 3843da0c48c4Sopenharmony_ci dwarf_lineno, and dwarf_linesrc. 3844da0c48c4Sopenharmony_ci 3845da0c48c4Sopenharmony_ci2003-08-11 Ulrich Drepper <drepper@redhat.com> 3846da0c48c4Sopenharmony_ci 3847da0c48c4Sopenharmony_ci * Moved to CVS archive. 3848