1 2012-08-24 Mark Wielaard <mjw@redhat.com>
3 * dwarf_begin_elf.c (check_section): Only probe for dwz multi files
4 when ENABLE_DWZ is defined.
5 * libdwP.h (__check_build_id): Only declare when ENABLE_DWZ is
8 2012-08-16 Mark Wielaard <mjw@redhat.com>
10 * Makefile.am (EXTRA_DIST): Add known-dwarf.h.
11 * dwarf.h (DW_LANG_Go): Update comment.
12 (DW_LANG_Mips_Assembler): Likewise.
14 2012-06-27 Mark Wielaard <mjw@redhat.com>
16 * dwarf.h: Add DW_FORM_GNU_ref_alt and DW_FORM_GNU_strp_alt.
17 * dwarf_begin.c (dwarf_begin): Add INTDEF.
18 * dwarf_begin_elf.c (__check_build_id): New internal_function.
19 (try_debugaltlink): New function.
20 (open_debugaltlink): Likewise.
21 (check_section): Try open_debugaltlink for .gnu_debugaltlink.
22 * dwarf_end.c (dwarf_end): Free the alternative Dwarf descriptor if
24 * dwarf_error.c (errmsgs): Add DWARF_E_NO_ALT_DEBUGLINK.
25 * dwarf_formref.c (__libdw_formref): Using DW_FORM_GNU_ref_alt
27 * dwarf_formref_die.c (dwarf_formref_die): Handle DW_FORM_GNU_ref_alt.
28 * dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_GNU_strp_alt.
29 * dwarf_formudata.c (__libdw_formptr): Adjust __libdw_read_offset
31 * dwarf_getpubnames.c (get_offsets): Adjust __libdw_read_offset call.
32 * libdwP.h: Add DWARF_E_NO_ALT_DEBUGLINK.
33 (struct Dwarf): Add alt_dwarf and free_alt fields.
34 (__libdw_read_offset): Add dbg_ret argument, use to check with
35 __libdw_offset_in_section.
36 (__check_build_id): New function declaration.
37 (dwarf_begin): Define as INTDECL.
38 * libdw_form.c (__libdw_form_val_len): Handle DW_FORM_GNU_ref_alt
39 and DW_FORM_GNU_strp_alt.
41 2012-07-19 Mark Wielaard <mjw@redhat.com>
43 * dwarf.h: Add DW_OP_GNU_parameter_ref.
45 2012-07-24 Mark Wielaard <mjw@redhat.com>
47 * dwarf.h: Correct spelling of DW_LANG_ObjC.
48 * dwarf_aggregate_size.c (array_size): Use correct spelling of
51 2012-07-24 Mark Wielaard <mjw@redhat.com>
53 * dwarf.h: Add DW_ATE_UTF.
55 2012-06-27 Mark Wielaard <mjw@redhat.com>
57 * dwarf.h: Add DW_MACRO_GNU .debug_macro type encodings.
59 2012-06-26 Mark Wielaard <mjw@redhat.com>
61 * libdwP.h: Add IDX_debug_macro.
62 * dwarf.h: Add DW_AT_GNU_macros.
63 * dwarf_begin_elf.c (dwarf_scnnames): Add .debug_macro.
64 * dwarf_formudata.c (dwarf_formudata): Recognize DW_AT_GNU_macros.
66 2012-04-27 Mark Wielaard <mjw@redhat.com>
68 * libdw/dwarf_highpc.c (dwarf_highpc): Handle DW_AT_high_pc being
69 a constant offset from DW_AT_low_pc.
71 2012-03-19 Tom Tromey <tromey@redhat.com>
73 * libdw_findcu.c (findcu_cb): Move earlier.
74 (__libdw_intern_next_unit): Add new CU to search tree here...
75 (__libdw_findcu): ... not here.
77 2012-01-31 Mark Wielaard <mjw@redhat.com>
79 * dwarf_formudata.c (dwarf_formudata): Handle DW_FORM_sec_offset.
81 2011-11-31 Mark Wielaard <mjw@redhat.com>
83 * Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk.
85 2011-07-14 Mark Wielaard <mjw@redhat.com>
87 * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info.
89 2011-05-16 Jakub Jelinek <jakub@redhat.com>
91 * dwarf.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
92 DW_OP_GNU_deref_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret):
95 2011-04-26 Mark Wielaard <mjw@redhat.com>
97 * dwarf_child (dwarf_child): Sanity check end of section against
98 cu_data () of die->cu.
100 2011-03-22 Mark Wielaard <mjw@redhat.com>
102 * dwarf.h: Add DW_TAG_GNU_call_site,
103 DW_TAG_GNU_call_site_parameter,
104 DW_AT_GNU_call_site_value,
105 DW_AT_GNU_call_site_data_value,
106 DW_AT_GNU_call_site_target,
107 DW_AT_GNU_call_site_target_clobbered,
109 DW_AT_GNU_all_tail_call_sites,
110 DW_AT_GNU_all_call_sites,
111 DW_AT_GNU_all_source_call_sites,
112 and DW_OP_GNU_entry_value.
114 2011-03-10 Petr Machata <pmachata@redhat.com>
116 * libdw/dwarf_tag.c (__libdw_findabbrev): Reject requests for
117 abbreviation with code 0.
119 2011-03-09 Petr Machata <pmachata@redhat.com>
121 * libdw/dwarf_child.c (dwarf_child): Check for section overrun.
123 2011-02-23 Roland McGrath <roland@redhat.com>
125 * libdwP.h (struct Dwarf) [USE_ZLIB]: New member sectiondata_gzip_mask.
126 Declare __libdw_free_zdata.
127 * dwarf_end.c [USE_ZLIB] (__libdw_free_zdata): New function.
128 (dwarf_end): Call it.
130 * dwarf_begin_elf.c (valid_p): Likewise.
131 (check_section, scngrp_read): Likewise.
132 (check_section) [USE_ZLIB]: Grok .z* flavors of sections.
134 2010-10-13 Roland McGrath <roland@redhat.com>
136 * dwarf.h: Add DW_LANG_Go.
138 2010-10-05 Roland McGrath <roland@redhat.com>
140 * dwarf_getaranges.c: Use malloc rather than alloca,
141 since the total number of elements can be quite huge.
143 2010-07-26 Roland McGrath <roland@redhat.com>
145 * dwarf_getlocation_implicit_pointer.c: New file.
146 * Makefile.am (libdw_a_SOURCES): Add it.
147 * libdw.map (ELFUTILS_0.149): New set.
148 Add dwarf_getlocation_implicit_pointer.
149 * libdw.h: Declare it.
151 * dwarf_offdie.c (do_offdie): Renamed to __libdw_offdie, made global.
152 (dwarf_offdie, dwarf_offdie_types): Update callers.
153 * libdwP.h: Declare it.
155 * dwarf.h: Add DW_OP_GNU_implicit_pointer.
156 * dwarf_getlocation.c (__libdw_intern_expression): Handle it.
158 2010-08-24 Roland McGrath <roland@redhat.com>
160 * libdw.map (ELFUTILS_0.149): New set. Add dwfl_dwarf_line.
162 2010-07-27 Roland McGrath <roland@redhat.com>
164 * dwarf_formref_die.c: Fix sig8 hash insertion.
166 2010-06-23 Roland McGrath <roland@redhat.com>
168 * cfi.c (dwarf_cfi_validate_fde): Function removed.
169 * libdw.h: Remove it.
170 * libdw.map: Likewise.
172 2010-06-22 Roland McGrath <roland@redhat.com>
174 * dwarf_getlocation.c (check_constant_offset): data[48] are constant.
176 * dwarf_getsrclines.c: Fix signed comparison warning in extended
179 2010-06-21 Roland McGrath <roland@redhat.com>
181 * dwarf.h: Add DW_TAG_GNU_* constants.
183 * memory-access.h (get_sleb128_rest_return): Fix sign extension for
186 2010-06-20 Roland McGrath <roland@redhat.com>
188 * libdw_findcu.c (__libdw_findcu): Take new flag argument,
189 to search TUs instead of CUs.
190 * libdwP.h: Update decl.
191 (struct Dwarf): New member tu_tree.
192 * dwarf_end.c (dwarf_end): Clean up tu_tree.
193 * dwarf_offdie.c (do_offdie): New function, broken out of ...
194 (dwarf_offdie): ... here.
195 (dwarf_offdie_types): New function.
196 * libdw.h: Declare it.
197 * libdw.map (ELFUTILS_0.148): Add it.
199 * libdwP.h (CUDIE): Use cu_data.
200 * dwarf_formblock.c: Likewise.
201 * dwarf_formref_die.c: Likewise.
202 * dwarf_diecu.c: Use CUDIE macro.
203 * dwarf_formaddr.c: Use cu_sec_idx.
205 2010-06-16 Roland McGrath <roland@redhat.com>
207 * dwarf_formref_die.c: Use dwarf_offdie only for DW_FORM_ref_addr, so
208 we don't repeat a CU lookup we've already done. Handle
209 DW_FORM_ref_sig8 using sig8_hash table and __libdw_intern_next_unit.
211 * libdw_findcu.c (__libdw_intern_next_unit): New function,
213 (__libdw_findcu): ... here. Call it.
214 * libdwP.h: Declare it.
215 (struct Dwarf): New member next_tu_offset.
217 * dwarf_sig8_hash.c: New file.
218 * dwarf_sig8_hash.h: New file.
219 * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
220 * dwarf_abbrev_hash.c: Include dwarf_sig8_hash.h before
222 * libdwP.h (struct Dwarf): New member sig8_hash.
223 * dwarf_begin_elf.c: Call Dwarf_Sig8_Hash_init on it.
224 * dwarf_end.c: Call Dwarf_Sig8_Hash_free on it.
226 * dwarf_nextcu.c (dwarf_next_unit): New function, broken out of ...
227 (dwarf_nextcu): ... here. Call it.
228 * libdw.h: Declare it.
229 * libdwP.h: Add INTDECL.
230 * libdw_findcu.c (__libdw_findcu): Use it instead of dwarf_nextcu.
231 * libdw.map (ELFUTILS_0.148): New set, add dwarf_next_unit.
233 * libdwP.h (cu_sec_idx, cu_data): New functions.
234 Use .debug_types when CU is a TU.
235 * dwarf_cuoffset.c: Use that instead of assuming IDX_debug_info.
236 * dwarf_siblingof.c: Likewise.
237 * dwarf_formstring.c: Likewise.
238 * dwarf_formudata.c (__libdw_formptr, dwarf_formudata): Likewise.
239 * dwarf_getlocation.c (dwarf_getlocation): Likewise.
240 (dwarf_getlocation_addr): Likewise.
242 * libdwP.h (struct Dwarf_CU): Add new members type_offset, type_sig8.
243 (DIE_OFFSET_FROM_CU_OFFSET): Take flag argument; if true, compute
244 .debug_types header size instead of .debug_info header size.
246 * dwarf_diecu.c: Update caller.
247 * dwarf_getaranges.c: Likewise.
248 * dwarf_nextcu.c: Likewise.
249 * libdw_findcu.c (__libdw_findcu): Initialize new members.
251 * fde.c (fde_by_offset): Renamed to ...
252 (__libdw_fde_by_offset): ... this, made global and internal_function.
253 Don't take ADDRESS argument.
254 (__libdw_find_fde): Update caller. Do address sanity check here.
255 * cfi.h: Declare __libdw_fde_by_offset.
256 * cfi.c (dwarf_cfi_validate_fde): New function.
257 * libdw.h: Declare it.
258 * libdw.map (ELFUTILS_0.148): Add it.
260 * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
261 either DW_EH_PE_udata8 or DW_EH_PE_udata4.
263 * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
264 Don't assume DW_EH_PE_aligned refers to native address size.
266 * cfi.c (execute_cfi): Barf on CIE initial instructions changing the
269 2010-06-17 Roland McGrath <roland@redhat.com>
271 * libdwP.h (struct Dwarf_Line_s): Add members isa, discriminator, and
273 * dwarf_getsrclines.c (dwarf_getsrclines): Move NEW_FILE macro guts
274 into an inner inline function. Set new fields. Check all fields for
275 overflow when setting.
276 * dwarf_lineisa.c: New file.
277 * dwarf_linediscriminator.c: New file.
278 * dwarf_lineop_index.c: New file.
279 * Makefile.am (libdw_a_SOURCES): Add them.
280 * libdw.map (ELFUTILS_0.148): Add them.
281 * libdw.h: Declare them.
283 2010-06-16 Roland McGrath <roland@redhat.com>
285 * dwarf_next_cfi.c: Fix version 4 return_address_register decoding.
287 * fde.c (fde_by_offset): Renamed to ...
288 (__libdw_fde_by_offset): ... this, made global and internal_function.
289 Don't take ADDRESS argument.
290 (__libdw_find_fde): Update caller. Do address sanity check here.
291 * cfi.h: Declare __libdw_fde_by_offset.
292 * cfi.c (dwarf_cfi_validate_fde): New function.
293 * libdw.h: Declare it.
294 * libdw.map (ELFUTILS_0.148): Add it.
296 * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
297 either DW_EH_PE_udata8 or DW_EH_PE_udata4.
299 * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
300 Don't assume DW_EH_PE_aligned refers to native address size.
302 * cfi.c (execute_cfi): Barf on CIE initial instructions changing the
305 2010-06-15 Roland McGrath <roland@redhat.com>
307 * dwarf_formref.c (__libdw_formref): Diagnose DW_FORM_ref_sig8 like
309 * dwarf_formref_die.c (dwarf_formref_die): Diagnose it the same way
310 here, since we don't support it yet.
312 * dwarf_next_cfi.c: Handle version 4 format.
314 * dwarf_getsrclines.c: Handle version 4 format.
316 2010-06-01 Roland McGrath <roland@redhat.com>
318 * libdwP.h: Remove unused IDX_debug_*names, add IDX_debug_types.
319 * dwarf_begin_elf.c (dwarf_scnnames): Likewise.
321 * libdwP.h (CIE_VERSION): Remove unused macro.
323 * dwarf_getsrclines.c: Fix version field test.
324 * libdwP.h (DWARF_VERSION): Remove useless macro.
326 * dwarf_formudata.c (__libdw_formptr): Fix DW_FORM_sec_offset handling.
328 * dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_exprloc.
330 * libdw_findcu.c (__libdw_findcu): Accept version 4.
332 2010-05-31 Mark Wielaard <mjw@redhat.com>
334 * cfi.h (dwarf_cfi_cie_p): Move definition from here, to ..
335 * libdw.h (dwarf_cfi_cie_p): ... here.
337 2010-05-31 Mark Wielaard <mjw@redhat.com>
339 * dwarf.h: Fix DW_LANG_Python constant.
341 2010-05-28 Eduardo Santiago <santiago@redhat.com>
343 * dwarf_getlocation.c (dwarf_getlocation): Do attr_ok check first
346 2010-05-27 Roland McGrath <roland@redhat.com>
348 * dwarf.h: Add DW_AT_enum_class, DW_AT_linkage_name,
349 DW_TAG_template_alias, DW_LANG_Python, DW_LNE_set_discriminator.
351 2010-05-08 Roland McGrath <roland@redhat.com>
353 * dwarf_getlocation.c (__libdw_intern_expression): Take new argument
354 REF_SIZE. Use that to handle DW_OP_call_ref correctly.
355 (getlocation): Update caller.
356 * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
357 * dwarf_frame_register.c (dwarf_frame_register): Likewise.
358 * libdwP.h: Update decl.
360 2010-04-26 Roland McGrath <roland@redhat.com>
362 * cfi.h (struct Dwarf_Frame_s): Add cfa_invalid alternative in cfa_rule.
363 * cfi.c (execute_cfi): Set that instead of doing cfi_assert for
364 DW_CFA_def_cfa_{offset*,register} when a non-offset rule is in force.
365 * dwarf_frame_cfa.c (dwarf_frame_cfa): Handle cfa_invalid.
367 * dwarf_getlocation.c (__libdw_intern_expression): Take new arg CFAP.
368 Prepend DW_OP_call_frame_cfa if true.
369 (getlocation): Update caller.
370 * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
371 * dwarf_frame_register.c (dwarf_frame_register): Likewise.
372 * libdwP.h: Update decl.
374 2010-04-22 Roland McGrath <roland@redhat.com>
376 * cfi.c (execute_cfi): Never return without cleanup.
378 (cie_cache_initial_state): Adjust caller to expect that free.
379 (__libdw_frame_at_address): Likewise.
381 2010-03-10 Roland McGrath <roland@redhat.com>
383 * libdw.map (ELFUTILS_0.146): New set. Add dwfl_core_file_report.
385 2010-02-15 Roland McGrath <roland@redhat.com>
387 * Makefile.am: Use config/eu.am for common stuff.
389 2010-02-02 Mark Wielaard <mjw@redhat.com>
391 * fde.c (intern_fde): Fix length check for sized_augmentation_data.
393 2010-01-07 Roland McGrath <roland@redhat.com>
395 * dwarf_getcfi_elf.c (getcfi_phdr): Use elf_getphdrnum.
397 2010-01-05 Roland McGrath <roland@redhat.com>
399 * dwarf_aggregate_size.c: New file.
400 * Makefile.am (libdw_a_SOURCES): Add it.
401 * libdw.h: Declare it.
402 * libdwP.h: Add INTDECL.
403 * libdw.map (ELFUTILS_0.144): New set. Add dwarf_aggregate_size.
405 * dwarf_srclang.c: Add INTDEF.
406 * libdwP.h: Add INTDECL.
408 * dwarf.h: Add some more DW_AT_GNU_* types from gcc.
410 * dwarf.h: Add DW_AT_GNU_vector, DW_AT_GNU_template_name.
412 2009-11-21 Roland McGrath <roland@redhat.com>
414 * dwarf_getlocation.c (check_constant_offset): Return 1 for all
417 2009-10-15 Roland McGrath <roland@redhat.com>
419 * libdw_form.c (__libdw_form_val_len): Grok DW_FORM_sec_offset,
420 DW_FORM_exprloc, DW_FORM_flag_present, and DW_FORM_ref_sig8.
422 2009-09-17 Roland McGrath <roland@redhat.com>
424 * dwarf_getlocation.c (dwarf_getlocation_implicit_value): Make OP
425 argument a pointer to const.
426 * libdw.h: Update decl.
428 2009-09-10 Roland McGrath <roland@redhat.com>
430 * dwarf_getlocation.c (store_implicit_value): New function.
431 (__libdw_intern_expression): Use it, handle DW_OP_implicit_value.
432 (dwarf_getlocation_implicit_value): New function.
433 * libdw.h: Declare it.
434 * libdw.map (ELFUTILS_0.143): Add it.
436 2009-09-09 Mark Wielaard <mjw@redhat.com>
438 * dwarf_getcfi.c (dwarf_getcfi): Clear cfi->ebl.
440 2009-08-21 Josh Stone <jistone@redhat.com>
442 * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
444 2009-08-10 Roland McGrath <roland@redhat.com>
446 * dwarf_getscopevar.c: Use dwarf_diename.
448 2009-08-09 Roland McGrath <roland@redhat.com>
450 * libdw.map (ELFUTILS_0.143): New version set,
451 inherits from ELFUTILS_0.142.
452 * dwarf_arrayorder.c: Use OLD_VERSION and NEW_VERSION to define an
453 alias in the ELFUTILS_0.122 version set and the default in the new set.
454 * dwarf_srclang.c: Likewise.
455 * dwarf_decl_file.c: Likewise.
456 * dwarf_decl_line.c: Likewise.
457 * dwarf_decl_column.c: Likewise.
458 * dwarf_bytesize.c: Likewise.
459 * dwarf_bitsize.c: Likewise.
460 * dwarf_bitoffset.c: Likewise.
462 2009-08-07 Roland McGrath <roland@redhat.com>
464 * dwarf_arrayorder.c: Use dwarf_attr_integrate.
465 * dwarf_srclang.c: Likewise.
466 * dwarf_decl_file.c: Likewise.
467 * dwarf_decl_line.c (__libdw_attr_intval): Likewise.
468 * dwarf_bytesize.c: Likewise.
469 * dwarf_bitsize.c: Likewise.
470 * dwarf_bitoffset.c: Likewise.
472 2009-07-22 Roland McGrath <roland@redhat.com>
474 * dwarf_frame_cfa.c: Change calling convention.
475 * libdw.h: Update decl.
477 * dwarf_frame_register.c: Change calling/return-value convention for
478 value-only results and undefined/same_value.
479 * libdw.h: Update decl.
481 * dwarf_getlocation.c (__libdw_intern_expression): Take new bool
482 argument, append DW_OP_stack_value if set. Don't take NOPS argument,
483 return that value instead.
484 (getlocation): Update caller.
485 * dwarf_frame_cfa.c: Likewise.
486 * libdwP.h: Update decl.
488 2009-07-21 Roland McGrath <roland@redhat.com>
490 * dwarf_getsrc_file.c: Ignore a CU that just has no DW_AT_stmt_list.
491 Fix loop iteration after skipping a bogus or useless CU.
493 * dwarf_entry_breakpoints.c: Handle 0 dwarf_errno () as harmless
494 absence, not DWARF_E_NO_DEBUG_LINE.
496 2009-07-20 Roland McGrath <roland@redhat.com>
498 * dwarf_getlocation.c (__libdw_intern_expression):
499 Handle DW_OP_stack_value.
501 2009-07-16 Roland McGrath <roland@redhat.com>
503 * dwarf_formudata.c (__libdw_formptr): Handle DW_FORM_sec_offset,
504 reject others when CU's version > 3.
506 * dwarf_formflag.c: Handle DW_FORM_flag_present.
508 * dwarf.h: Add DW_OP_{implicit,stack}_value from DWARF 4 draft.
509 Also DW_TAG_type_unit and DW_TAG_rvalue_reference_type.
510 Also DW_AT_signature, DW_AT_main_subprogram, DW_AT_data_bit_offset,
511 and DW_AT_const_expr.
512 Also DW_FORM_sec_offset, DW_FORM_exprloc, DW_FORM_flag_present,
513 and DW_FORM_ref_sig8.
515 2009-07-15 Roland McGrath <roland@redhat.com>
517 * dwarf_getlocation.c: Grok DW_OP_form_tls_address,
518 DW_OP_GNU_push_tls_address, and DW_OP_bit_piece.
520 2009-07-13 Roland McGrath <roland@redhat.com>
522 * dwarf_getlocation.c: Grok DW_OP_call_frame_cfa.
524 2009-07-08 Roland McGrath <roland@redhat.com>
526 * libdw.map (ELFUTILS_0.142): Add dwfl_module_dwarf_cfi,
529 * libdwP.h (struct Dwarf): Add member `cfi'.
530 * dwarf_end.c (dwarf_end): Call __libdw_destroy_frame_cache on it.
531 * dwarf_getcfi.c: New file.
532 * dwarf_getcfi_elf.c: New file.
533 * dwarf_cfi_end.c: New file.
534 * dwarf_cfi_addrframe.c: New file.
535 * dwarf_frame_cfa.c: New file.
536 * dwarf_frame_register.c: New file.
537 * dwarf_frame_return_address_register.c: New file.
538 * Makefile.am (libdw_a_SOURCES): Add them.
539 * unwind.h: Declare those functions.
540 * libdw.map (ELFUTILS_0.142): Export them.
542 * dwarf_getlocation.c (__libdw_intern_expression): New function,
544 (getlocation): ... here, call it.
545 * libdwP.h: Declare it.
549 * frame-cache.c: New file.
552 * encoded-value.h: New file.
553 * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
554 * libdwP.h: Add DWARF_E_INVALID_CFI to errors enum.
555 * dwarf_error.c (errmsgs): Add element for it.
557 * dwarf_next_cfi.c: New file.
558 * Makefile.am (libdw_a_SOURCES): Add it.
559 * libdw.h (Dwarf_CIE, Dwarf_FDE, Dwarf_CIE_Entry): New types.
560 Declare dwarf_next_cfi.
561 * libdw.map (ELFUTILS_0.142): New set, inherits from ELFUTILS_0.136.
564 * memory-access.h [! ALLOW_UNALIGNED]
565 (read_2ubyte_unaligned): Renamed to ...
566 (read_2ubyte_unaligned_1): ... this. Take bool rather than Dwarf *.
567 (read_2ubyte_unaligned): Define as macro passing dbg->other_byte_order.
568 (read_2sbyte_unaligned): Likewise.
569 (read_4ubyte_unaligned): Likewise.
570 (read_4sbyte_unaligned): Likewise.
571 (read_8ubyte_unaligned): Likewise.
572 (read_8sbyte_unaligned): Likewise.
574 * libdwP.h (IDX_eh_frame): Remove it.
575 * dwarf_begin_elf.c (dwarf_scnnames): Remove its element.
577 2009-07-08 Roland McGrath <roland@redhat.com>
579 * libdwP.h (struct Dwarf_Line_s): Reorder members to pack better.
581 * dwarf_getlocation.c (check_constant_offset): New function.
582 (dwarf_getlocation, dwarf_getlocation_addr): Call it to
583 handle DW_AT_data_member_location of data[48] as constant offset.
585 2009-06-18 Roland McGrath <roland@redhat.com>
587 * libdwP.h (__libdw_read_address_inc): Constify.
588 (__libdw_read_offset_inc): Likewise.
589 * dwarf_getaranges.c: Likewise.
590 * dwarf_getlocation.c: Likewise.
591 * dwarf_getsrclines.c: Likewise.
592 * dwarf_nextcu.c: Likewise.
594 2009-05-05 Petr Machata <pmachata@redhat.com>
596 * libdwP.h (__libdw_formptr): Declare new function.
597 * dwarf_formudata.c: Implement it here.
598 * dwarf_getlocation.c (dwarf_getlocation_addr):
599 Call it instead of hand-rolled offset handling code.
600 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
601 * dwarf_ranges.c (dwarf_ranges): Likewise.
603 2009-05-04 Petr Machata <pmachata@redhat.com>
605 * libdwP.h (__libdw_read_begin_end_pair_inc): Declare new function.
606 * dwarf_ranges.c: Implement it here.
607 (dwarf_ranges): Call it.
608 * dwarf_getlocation.c (dwarf_getlocation_addr): Call it also here.
610 2009-04-23 Petr Machata <pmachata@redhat.com>
612 * dwarf_formaddr.c (dwarf_formaddr): Call __libdw_read_* instead
613 of read_*ubyte_unaligned.
614 * dwarf_formref_die.c (dwarf_formref_die): Likewise.
615 * dwarf_formstring.c (dwarf_formstring): Likewise.
616 * dwarf_formudate.c (dwarf_formudata): Likewise.
617 * dwarf_getaranges.c (dwarf_getaranges): Likewise.
618 * dwarf_getlocation.c (dwarf_getlocation_addr): Likewise.
619 * dwarf_getpubnames.c (get_offsets): Likewise.
620 * dwarf_nextcu.c (dwarf_nextcu): Likewise.
622 2009-04-23 Petr Machata <pmachata@redhat.com>
624 * libdwP.h (__libdw_read_addr_inc, __libdw_read_off_inc,
625 __libdw_read_addr, __libdw_read_off): Add four new internal
628 2009-05-07 Roland McGrath <roland@redhat.com>
630 * dwarf_getmacros.c (dwarf_getmacros): Use absolute section offset in
631 return value and OFFSET argument, not CU-relative. Only fetch the
632 attribute data when called with OFFSET of 0.
634 2009-05-07 Petr Machata <pmachata@redhat.com>
636 * dwarf_getmacros.c (dwarf_getmacros): Take into account offset in
637 DW_AT_macro_info attribute of CU DIE.
639 2009-04-15 Roland McGrath <roland@redhat.com>
641 * dwarf.h (DW_CIE_ID): Removed.
642 (DW_CIE_ID_32, DW_CIE_ID_64): New constants replace it.
644 2009-04-01 Roland McGrath <roland@redhat.com>
646 * dwarf.h: Add DW_CFA_GNU_negative_offset_extended.
648 2009-01-28 Roland McGrath <roland@redhat.com>
650 * libdwP.h (struct Dwarf_Line_s): Move out of struct Dwarf_Lines_s
651 defn so C++ doesn't scope the name to not match the Dwarf_Line typedef.
653 * libdwP.h (struct Dwarf_Files_s): Replace dbg field with cu field.
655 2009-01-26 Roland McGrath <roland@redhat.com>
657 * dwarf_ranges.c: Return 0 when no ranges or *_pc attrs at all.
659 2009-01-25 Roland McGrath <roland@redhat.com>
661 * dwarf_getattrs.c: Correctly skip attribute values when restarting.
663 2009-01-23 Roland McGrath <roland@redhat.com>
665 * Makefile.am ($(srcdir)/known-dwarf.h): Target renamed back.
666 Put these rules under if MAINTAINER_MODE.
668 2009-01-22 Roland McGrath <roland@redhat.com>
670 * dwarf.h: Add DW_OP_GNU_encoded_addr.
672 2009-01-21 Roland McGrath <roland@redhat.com>
674 * Makefile.am (CLEANFILES): Renamed to ...
675 (MOSTLYCLEANFILES): ... here.
676 (CLEANFILES): New variable, add known-dwarf.h.
678 2009-01-17 Roland McGrath <roland@redhat.com>
680 * Makefile.am (known-dwarf.h): Target renamed, not in $(srcdir).
681 Make it unconditional.
682 (BUILT_SOURCES): Updated.
684 * dwarf.h: Add description comments for DW_LANG_* values.
686 * Makefile.am [MAINTAINER_MODE]
687 ($(srcdir)/known-dwarf.h): New target.
688 (BUILT_SOURCES): Add it.
690 * dwarf.h: Add DW_OP_GNU_push_tls_address, DW_OP_GNU_uninit.
692 2009-01-10 Ulrich Drepper <drepper@redhat.com>
694 * dwarf_error.c: Always use __thread. Remove all !USE_TLS code.
696 2009-01-08 Roland McGrath <roland@redhat.com>
698 * Makefile.am (libdw.so): Don't depend on $(zip_LIBS), just link it in.
700 2008-01-06 Roland McGrath <roland@redhat.com>
702 * libdwP.h (struct Dwarf_Abbrev): Change type of 'has_children' to bool.
704 * dwarf_haschildren.c: Return -1 for error case, not 0.
706 * Makefile.am (libdw.so): Link in $(zip_LIBS).
708 2009-01-06 Ulrich Drepper <drepper@redhat.com>
710 * dwarf.h: Add definition for unwind and call frame information.
712 * memory-access.h: Define read_ubyte_unaligned, read_sbyte_unaligned,
713 read_ubyte_unaligned_inc, and read_sbyte_unaligned_inc.
715 2008-08-15 Roland McGrath <roland@redhat.com>
717 * libdw.map (ELFUTILS_0.136): New version set, inherits from
718 ELFUTILS_0.130. Add dwfl_addrsegment, dwfl_report_segment.
720 2008-01-21 Ulrich Drepper <drepper@redhat.com>
722 * dwarf_child.c: Minor optimizations.
723 * dwarf_getattrs.c: Likewise.
724 * dwarf_getpubnames.c: Likewise.
725 * dwarf_siblingof.c: Likewise.
726 * dwarf_tag.c: Likewise.
728 2008-01-18 Ulrich Drepper <drepper@redhat.com>
730 * dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match
731 of DWARF_VERSION comparison, just fail if the file's version is newer.
733 2008-01-17 Nick Clifton <nickc@redhat.com>
735 * dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define.
736 (DWARF3_LENGTH_MAX_ESCAPE_CODE): New define.
737 (DWARF3_LENGTH_64_BIT): New define.
738 * dwarf_getaranges (dwarf_getaranges): Use the new definitions.
739 * dwarf_getpubnames: Include dwarf.h.
740 (get_offsets): Use the new definitions.
741 * dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions.
742 * dwarf_nextcu.c: Include dwarf.h. Correct comment.
743 (dwarf_nextcu): Use the new definitions.
745 * libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro.
746 * dwarf_diecu.c (dwarf_diecu): Use the new macro.
747 * dwarf_getaranges (dwarf_getaranges): Use the new macro.
748 * dwarf_nextcu.c (dwarf_nextcu): Use the new macro.
750 * dwarf_getpubnames (get_offsets): Replace assertion with test and
753 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE.
755 * dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer.
756 Set the address in the return structure to the address of the next
757 non-sibling die, if there is no sibling and the return pointer is
758 not the same as the die pointer.
759 * libdw.h: Expand the description of the dwarf_siblingof prototype.
761 * dwarf_child.c: Fix typo in comment.
763 * libdwP.h (DWARF_VERSION): Change to 3.
765 * dwarf_formref.c (__libdw_formref.c): Handle attributes which do
766 not have a initialised valp pointer.
768 * dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when
769 the end of the attributes is reached. When the callback fails,
770 return the address of the failing attribute, not the address of
772 * libdw.h: Expand the description of the dwarf_getattrs prototype.
774 * dwarf_child.c (__libdw_find_attr): Use the new definition.
775 (dwarf_child): Likewise.
776 * dwarf_tag.c (__libdw_findabbrev): Likewise.
777 (dwarf_tag): Likewise.
779 2008-01-08 Roland McGrath <roland@redhat.com>
781 * Makefile.am (euinclude): Variable removed.
782 (pkginclude_HEADERS): Set this instead of euinclude_HEADERS.
783 (libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir).
785 2007-10-17 Roland McGrath <roland@redhat.com>
787 * libdw.h (__deprecated_attribute__): New macro.
788 (dwarf_formref): Mark it deprecated.
789 * dwarf_formref.c (__libdw_formref): New function, broken out of ...
790 (dwarf_formref): ... here. Call it. Remove INTDEF.
791 * libdwP.h: Remove INTDECL.
792 Declare __libdw_formref.
793 * dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead.
794 * dwarf_formref_die.c: Likewise. Handle DW_FORM_ref_addr here.
796 * libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result,
797 needs to check CU->version.
799 * libdwP.h (struct Dwarf_CU): New member `version'.
800 * libdw_findcu.c (__libdw_findcu): Initialize it.
802 * dwarf_child.c: Return 1 for null entry as first child.
804 2007-10-05 Roland McGrath <roland@redhat.com>
806 * dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections.
808 * libdw.h (__extern_inline): Rename to __libdw_extern_inline.
809 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses.
811 2007-10-03 Roland McGrath <roland@redhat.com>
813 * libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf
814 and dwfl_build_id_find_debuginfo.
816 * libdw.map (ELFUTILS_0.130): New version set, inherits from
817 ELFUTILS_0.127. Add dwfl_module_build_id, dwfl_module_report_build_id.
819 2007-10-02 Roland McGrath <roland@redhat.com>
821 * libdw_visit_scopes.c (classify_die): Return walk for class_type and
824 2007-08-07 Roland McGrath <roland@redhat.com>
826 * dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when
827 error code is DWARF_E_NOERROR (0).
829 * dwarf_getscopes.c (pc_record): Always bail early if DIE->prune.
830 Fix typo in __libdw_visit_scopes argument.
832 * dwarf_getscopes.c (pc_match): Check dwarf_haspc error return,
833 swallow DWARF_E_NO_DEBUG_RANGES but not other errors.
835 2007-07-03 Roland McGrath <roland@redhat.com>
837 * libdw.h (__extern_inline): New macro.
838 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it.
840 2007-04-16 Roland McGrath <roland@redhat.com>
842 * libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section.
844 2007-04-05 Roland McGrath <roland@redhat.com>
846 * dwarf_getsrcdirs.c: New file.
847 * Makefile.am (libdw_a_SOURCES): Add it.
848 * libdw.h: Declare dwarf_getsrcdirs.
849 * libdw.map (ELFUTILS_0.127): Add it.
851 * libdwP.h (struct Dwarf_Files_s): New member ndirs.
852 * dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to
853 zero before we use it to check for DWARF_E_INVALID_DIR_IDX.
854 Save DIRARRAY in the Dwarf_Files.
856 * dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN
857 address to check for all-ones base address entry. Check directly.
858 Reported by Sébastien Dugué <sebastien.dugue@bull.net>.
860 2007-03-25 Roland McGrath <roland@redhat.com>
862 * dwarf_begin_elf.c (check_section): Return Dwarf * instead of void.
863 Return NULL when freeing RESULT on error.
864 (global_read, scngrp_read): Check return value from check_section,
865 break out of loop after it has freed RESULT.
866 (valid_p): Handle null argument.
868 2007-03-12 Roland McGrath <roland@redhat.com>
870 * libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add.
872 2007-03-04 Roland McGrath <roland@redhat.com>
874 * libdw.map (ELFUTILS_0.127): New version set, inherits from
875 ELFUTILS_0.126. Add dwfl_module_addrsym.
877 2007-02-10 Roland McGrath <roland@redhat.com>
879 * dwarf.h (DW_OP_fbreg): Comment fix.
881 2007-02-03 Roland McGrath <roland@redhat.com>
883 * dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf.
884 * libdw.map (ELFUTILS_0.126): New version set, inherits from
885 ELFUTILS_0.122. Move dwarf_getelf there; it was never truly
886 exported in the past.
888 2006-12-17 Roland McGrath <roland@redhat.com>
890 * dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base
891 address when the CU is missing attributes due to buggy GCC.
893 2006-08-29 Roland McGrath <roland@redhat.com>
895 * Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).
897 * libdw.h (dwarf_diecu): Add __nonnull_attribute__.
898 (dwarf_child): Don't list arg 1 in __nonnull_attribute__.
900 * libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure
901 result is aligned. Adjust NEWP->remaining here for this allocation.
902 * libdwP.h: Update decl.
903 (libdw_alloc): Update caller.
905 2006-07-12 Ulrich Drepper <drepper@redhat.com>
907 * dwarf_child.c: Adjust for internal_function_def removal.
908 * dwarf_getabbrev.c: Likewise.
909 * dwarf_tag.c: Likewise.
910 * libdw_form.c: Likewise.
911 * memory-access.c: Likewise.
913 2006-06-28 Roland McGrath <roland@redhat.com>
915 * libdw.map: Export dwfl_linecu, dwfl_line_comp_dir.
917 * libdw.map: Bump to 0.122; export dwfl_module_getsymtab and
920 2006-05-27 Ulrich Drepper <drepper@redhat.com>
922 * libdw.h: Add extern "C".
924 2006-05-22 Ulrich Drepper <drepper@redhat.com>
926 * dwarf_getaranges.c (dwarf_getaranges): Handle files without
929 2006-05-21 Ulrich Drepper <drepper@redhat.com>
931 * libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs,
934 2006-02-28 Roland McGrath <roland@redhat.com>
936 * dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*,
937 DW_OP_* values, to match DWARF 3.0. Add new DW_DS_*, DW_END_*
938 values from DWARF 3.0.
940 2006-02-22 Roland McGrath <roland@redhat.com>
942 * libdw.map: Bump to 0.120; export dwfl_version.
944 2005-12-22 Roland McGrath <roland@redhat.com>
946 * libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report.
948 2005-12-12 Roland McGrath <roland@redhat.com>
950 * dwarf_ranges.c: Copy CU base address-finding code from
953 2005-12-09 Roland McGrath <roland@redhat.com>
955 * dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys.
956 Delay CU base lookup until it's needed.
957 If CU base lookup fails with no error, flag invalid DWARF.
959 2005-11-25 Roland McGrath <roland@redhat.com>
961 * libdw.map: Bump to 0.118; export dwfl_module_register_names.
963 2005-11-15 Roland McGrath <roland@redhat.com>
965 * Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic.
967 2005-11-13 Roland McGrath <roland@redhat.com>
969 * libdw.map: Bump to 0.117; export dwfl_module_return_value_location.
971 2005-10-27 Roland McGrath <roland@redhat.com>
973 * dwarf_entry_breakpoints.c (search_range): Fix binary search code;
974 don't match end_sequence markers.
976 * dwarf_getsrclines.c (compare_lines): Sort end_sequence markers
977 before normal records at the same address.
978 * dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence
981 2005-10-26 Roland McGrath <roland@redhat.com>
983 * dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func.
984 * dwarf_func_file.c: Renamed to ...
985 * dwarf_decl_file.c: ... here.
986 * dwarf_func_col.c: Renamed to ...
987 * dwarf_decl_column.c: ... here.
988 * dwarf_func_line.c: Renamed to ...
989 * dwarf_decl_line.c: ... here.
990 (dwarf_func_line): Renamed to ...
991 (dwarf_decl_line): ... this. Take a Dwarf_Die * argument.
992 (__libdw_func_intval): Renamed __libdw_attr_intval.
993 * dwarf_func_name.c: File removed.
994 * dwarf_func_lowpc.c: File removed.
995 * dwarf_func_highpc.c: File removed.
996 * dwarf_func_entrypc.c: File removed.
997 * dwarf_func_die.c: File removed.
998 * Makefile.am (libdw_a_SOURCES): Updated.
999 * libdw.h: Update decls.
1000 (Dwarf_Func): Type removed.
1001 * libdwP.h: Update decls.
1002 (struct Dwarf_Func_s): Type removed.
1003 * libdw.map: Updated.
1005 * libdwP.h (CUDIE): New macro.
1006 * dwarf_getlocation.c (dwarf_getlocation_addr): Use it.
1007 * dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
1008 * dwarf_ranges.c (dwarf_ranges): Likewise.
1010 * dwarf_getloclist.c: Renamed to ...
1011 * dwarf_getlocation.c: ... here.
1012 (getloclist): Renamed to getlocation.
1013 (dwarf_getloclist): Renamed to dwarf_getlocation.
1014 (dwarf_addrloclists): Renamed to dwarf_getlocation_addr.
1015 * Makefile.am (libdw_a_SOURCES): Updated.
1016 * libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation.
1017 (dwarf_addrloclists): Renamed dwarf_getlocation_addr.
1018 (Dwarf_Loc): Renamed Dwarf_Op.
1019 * libdwP.h (struct loc_s): Update use.
1020 * libdw.map: Update map.
1022 * dwarf_entry_breakpoints.c: Use the second line record within the
1023 function, regardless of its source location data.
1025 2005-10-25 Roland McGrath <roland@redhat.com>
1027 * dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too.
1029 * libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints.
1031 2005-10-14 Roland McGrath <roland@redhat.com>
1033 * dwarf_diecu.c (dwarf_diecu): New file.
1034 * Makefile.am (libdw_a_SOURCES): Add it.
1035 * libdw.h: Declare dwarf_diecu.
1036 * libdw.map: Export it.
1038 * libdw.map: Bump to 0.116; export dwarf_ranges.
1040 2005-09-20 Roland McGrath <roland@redhat.com>
1042 * dwarf_haspc.c: Use dwarf_ranges.
1043 * dwarf_entry_breakpoints.c: Likewise.
1045 * dwarf_ranges.c: New file.
1046 * Makefile.am (libdw_a_SOURCES): Add it.
1047 * libdw.h: Declare dwarf_ranges.
1048 * libdwP.h: Add INTDECL.
1050 2005-09-14 Roland McGrath <roland@redhat.com>
1052 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in
1053 prologue_end marker scanning loop.
1055 2005-09-11 Roland McGrath <roland@redhat.com>
1057 * dwarf.h: Comment typo fix.
1059 2005-09-07 Roland McGrath <roland@redhat.com>
1061 * dwarf_entry_breakpoints.c: New file.
1062 * Makefile.am (libdw_a_SOURCES): Add it.
1063 * libdw.h: Declare dwarf_entry_breakpoints.
1065 * dwarf_entrypc.c: New file.
1066 * Makefile.am (libdw_a_SOURCES): Add it.
1067 * libdw.h: Declare dwarf_entrypc.
1068 * libdwP.h: Add INTDECL.
1070 2005-08-28 Ulrich Drepper <drepper@redhat.com>
1072 * Makefile.am: Use $(LINK) not $(CC) when creating DSO.
1073 (%.os): Use COMPILE.os.
1074 (COMPILE.os): Filter out gconv options.
1076 2005-08-27 Roland McGrath <roland@redhat.com>
1078 * dwarf_getscopes.c (dwarf_getscopes): Rewritten using
1079 __libdw_visit_scopes.
1081 * dwarf_getscopes_die.c: New file.
1082 * Makefile.am (libdw_a_SOURCES): Add it.
1083 * libdw.h: Declare dwarf_getscopes_die.
1084 * libdw.map: Bump to 0.115 and add it.
1086 * libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct
1087 containing a DIE and its parent pointer, instead of just Dwarf_Die.
1088 Take two functions for both preorder and postorder visitors.
1089 * libdwP.h: Update decl.
1090 (struct Dwarf_Die_Chain): New type.
1091 * dwarf_func_inline.c: Update uses.
1093 * dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate.
1095 * libdwP.h: Add INTDECL.
1096 * dwarf_func_name.c (dwarf_func_name): Use dwarf_diename.
1098 2005-08-23 Roland McGrath <roland@redhat.com>
1100 * dwarf_attr_integrate.c (dwarf_attr_integrate): Treat
1101 DW_AT_specification the same as DW_AT_abstract_origin.
1103 2005-08-20 Roland McGrath <roland@redhat.com>
1105 * libdw.map: Add dwfl_cumodule, remove dwfl_linecu.
1106 Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address,
1107 and dwfl_report_offline.
1109 2005-08-19 Roland McGrath <roland@redhat.com>
1111 * libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes.
1112 Add dwfl_module_relocate_address, dwfl_module_relocations,
1113 dwfl_module_relocation_info.
1115 2005-08-18 Roland McGrath <roland@redhat.com>
1117 * dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as
1118 outermost scope in the results.
1120 2005-08-15 Roland McGrath <roland@redhat.com>
1122 * dwarf_func_inline.c: New file.
1123 * Makefile.am (libdw_a_SOURCES): Add it.
1124 * libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances.
1125 * libdw.map: Add them.
1127 * dwarf_func_die.c: New file.
1128 * Makefile.am (libdw_a_SOURCES): Add it.
1129 * libdw.h: Declare dwarf_func_die.
1130 * libdw.map: Add it. Bump version to ELFUTILS_0.114.
1132 2005-08-10 Ulrich Drepper <drepper@redhat.com>
1134 * dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming
1135 of DW_LNS_set_epilog_begin.
1137 2005-08-09 Roland McGrath <roland@redhat.com>
1139 * dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin.
1141 * dwarf_end.c: Add INTDEF.
1142 * dwarf_error.c (dwarf_errmsg): Likewise.
1143 * libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs.
1145 2005-08-01 Roland McGrath <roland@redhat.com>
1147 * dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset.
1148 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
1150 2005-07-28 Ulrich Drepper <drepper@redhat.com>
1152 * Makefile.am (libdw.so): No need to link with libeu.a anymore.
1153 (libdw_a_LIBADD): Add all files from libdwfl.a.
1155 2005-07-27 Roland McGrath <roland@redhat.com>
1157 * Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in,
1158 along with ../libebl/libebl.a and ../lib/libeu.a;
1159 depend on ../libelf/libelf.so.
1160 (libdw_so_LDADD): New variable.
1161 * libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map.
1163 * libdw.map: Define an empty base version and move all symbols to
1164 version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet.
1166 2005-07-23 Ulrich Drepper <drepper@redhat.com>
1168 * dwarf_error.c: Add internal alias for dwarf_errno.
1169 * libdwP.h: Declare __dwarf_errno_internal.
1170 * dwarf_getloclist.c: Use INTDEF for dwarf_errno.
1172 * dwarf_error.c [USE_TLS]: Actually use __thread in definition of
1175 2005-06-01 Roland McGrath <roland@redhat.com>
1177 * dwarf_getaranges.c (dwarf_getaranges): Sort result array.
1178 * dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search.
1180 2005-06-08 Roland McGrath <roland@redhat.com>
1182 * memory-access.h (get_uleb128_step, get_uleb128): Remove casts.
1183 (get_sleb128_step, get_sleb128): Likewise.
1184 * dwarf_getattrs.c (dwarf_getattrs): Add consts.
1185 * dwarf_getloclist.c (getloclist): Likewise.
1186 * dwarf_formblock.c (dwarf_formblock): Likewise.
1187 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
1188 * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
1189 * dwarf_formref.c (dwarf_formref): Likewise.
1190 * dwarf_formsdata.c (dwarf_formsdata): Likewise.
1191 * dwarf_formudata.c (dwarf_formudata): Likewise.
1192 * dwarf_haschildren.c (dwarf_haschildren): Likewise.
1193 * dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise.
1194 * dwarf_tag.c (dwarf_tag): Likewise.
1195 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
1196 * memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise.
1197 * libdw_form.c (__libdw_form_val_len): Likewise.
1198 * libdwP.h: Update decl.
1200 2005-06-04 Roland McGrath <roland@redhat.com>
1202 * memory-access.h (get_uleb128_rest_return): New macro.
1203 [! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it.
1204 (get_sleb128_rest_return): New macro.
1205 [! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it.
1206 * memory-access.c: New file.
1207 * Makefile.am (libdw_a_SOURCES): Add it.
1208 (DEFS): Add -DIS_LIBDW.
1210 2005-05-31 Roland McGrath <roland@redhat.com>
1212 * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
1215 2005-05-30 Roland McGrath <roland@redhat.com>
1217 * dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base
1218 address if DW_AT_low_pc is missing. Not to spec, but GCC generates it.
1220 * dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte
1221 BEGIN value. Instead, match base address entries separately for
1224 2005-05-28 Roland McGrath <roland@redhat.com>
1226 * dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance
1227 past location expression contents.
1229 2005-05-23 Roland McGrath <roland@redhat.com>
1231 * dwarf_getsrclines.c: Comment typo fix.
1233 * dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation.
1234 * dwarf_getloclist.c (dwarf_addrloclists): Likewise.
1236 2005-05-22 Ulrich Drepper <drepper@redhat.com>
1238 * libdwP.h: Only use INTDECL for alias prototypes.
1240 2005-05-19 Roland McGrath <roland@redhat.com>
1242 * dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too.
1244 * dwarf_getscopevar.c: New file.
1245 * Makefile.am (libdw_a_SOURCES): Add it.
1246 * libdw.h: Declare dwarf_getscopevar.
1248 * dwarf_getsrcfiles.c: Add INTDEF.
1249 * dwarf_haschildren.c: Likewise.
1250 * libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL.
1252 * dwarf_getscopes.c: New file.
1253 * Makefile.am (libdw_a_SOURCES): Add it.
1254 * libdw.h: Declare dwarf_getscopes.
1255 * libdw.map: Add it.
1257 2005-05-18 Roland McGrath <roland@redhat.com>
1259 * libdwP.h (IDX_debug_ranges): New enum constant.
1260 * dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges".
1261 * libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant.
1262 * dwarf_error.c (errmsgs): Add it.
1263 * dwarf_haspc.c: New file.
1264 * libdw.h: Declare dwarf_haspc.
1265 * libdw.map: Add it.
1266 * libdwP.h: Add INTDECL.
1268 * dwarf_attr_integrate.c: New file.
1269 * dwarf_hasattr_integrate.c: New file.
1270 * Makefile.am (libdw_a_SOURCES): Add them.
1271 * libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate.
1272 * libdw.map: Add them.
1274 * dwarf_hasattr.c: Add INTDEF.
1275 * libdwP.h: Add INTDECL for it.
1277 * dwarf_formref_die.c: New file.
1278 * Makefile.am (libdw_a_SOURCES): Add it.
1279 * libdw.h (dwarf_formref_die): Declare it.
1280 * libdwP.h (dwarf_formref_die): Add INTDECL.
1281 * libdw.map: Add it.
1283 * dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out
1285 (dwarf_getloclist): ... here. Call them.
1286 (dwarf_addrloclists): New function.
1287 * libdw.h: Declare it.
1288 * libdw.map: Add it.
1290 * dwarf_getmacros.c (dwarf_getmacros): Don't bail at
1291 DW_MACINFO_end_file. Recognize type 0 as terminator.
1293 2005-05-05 Roland McGrath <roland@redhat.com>
1295 * dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search.
1297 * dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since
1298 the line program does not produce all entries in ascending order.
1300 2005-04-25 Ulrich Drepper <drepper@redhat.com>
1302 * dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple
1303 occurences (e.g., inlines) better.
1305 2005-04-24 Ulrich Drepper <drepper@redhat.com>
1307 * libdw.h (DWARF_END_ABBREV): Define.
1308 * dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if
1310 * dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end
1312 * dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV
1313 as error of __libdw_getabbrev.
1315 2005-04-04 Ulrich Drepper <drepper@redhat.com>
1317 * dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization.
1319 * dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of
1320 results back to caller.
1322 2005-04-04 Roland McGrath <roland@redhat.com>
1324 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL.
1326 * dwarf_func_line.c (__libdw_func_intval): Use internal_function in
1329 2005-04-04 Ulrich Drepper <drepper@redhat.com>
1331 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE.
1333 * dwarf_getsrc_file.c: New file.
1334 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c.
1335 * libdw.h: Declare dwarf_getsrc_file.
1336 * libdw.map: Add dwarf_getsrc_file.
1338 2005-04-02 Ulrich Drepper <drepper@redhat.com>
1340 * dwarf_func_entrypc.c: New file.
1341 * dwarf_func_col.c: New file.
1342 * dwarf_func_line.c: New file.
1343 * dwarf_func_file.c: New file.
1344 * libdw.h: Add prototypes for new functions.
1345 * libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line,
1347 * Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c,
1348 dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c.
1349 * libdwP.h (struct Dwarf_Func_s): Add cudie element.
1350 Declare __libdw_func_intval and __dwarf_formsdata_internal.
1351 * dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object.
1352 * dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs.
1354 * dwarf.h: Add some DWARF3 definitions.
1356 2005-04-01 Ulrich Drepper <drepper@redhat.com>
1358 * dwarf_getfuncs.c: New file.
1359 * dwarf_func_highpc.c: New file.
1360 * dwarf_func_lowpc.c: New file.
1361 * dwarf_func_name.c: New file.
1362 * Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c,
1363 dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c.
1364 * libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc,
1365 and dwarf_func_name.
1366 * libdw.h: Add prototypes for new functions.
1367 * dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs.
1368 * dwarf_siblingof.c: Likewise.
1369 * dwarf_dieoffset.c: Likewise.
1370 * dwarf_highpc.c: Likewise.
1371 * dwarf_lowpc.c: Likewise.
1372 * libdwP.h: Add prototypes for internal functions.
1373 Define Dwarf_Func_s structure.
1375 2005-03-29 Ulrich Drepper <drepper@redhat.com>
1377 * libdw.h: Add padding in Dwarf_die.
1379 * dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs.
1380 * dwarf_attr.c: Likewise.
1381 * dwarf_begin.c: Likewise.
1382 * dwarf_begin_elf.c: Likewise.
1383 * dwarf_bitoffset.c: Likewise.
1384 * dwarf_bitsize.c: Likewise.
1385 * dwarf_bytesize.c: Likewise.
1386 * dwarf_diename.c: Likewise.
1387 * dwarf_formaddr.c: Likewise.
1388 * dwarf_formblock.c: Likewise.
1389 * dwarf_formref.c: Likewise.
1390 * dwarf_formstring.c: Likewise.
1391 * dwarf_formudata.c: Likewise.
1392 * dwarf_getarange_addr.c: Likewise.
1393 * dwarf_getarangeinfo.c: Likewise.
1394 * dwarf_getaranges.c: Likewise.
1395 * dwarf_getloclist.c: Likewise.
1396 * dwarf_getmacros.c: Likewise.
1397 * dwarf_getsrc_die.c: Likewise.
1398 * dwarf_getsrcfiles.c: Likewise.
1399 * dwarf_getsrclines.c: Likewise.
1400 * dwarf_highpc.c: Likewise.
1401 * dwarf_lowpc.c: Likewise.
1402 * dwarf_nextcu.c: Likewise.
1403 * dwarf_offdie.c: Likewise.
1404 * dwarf_siblingof.c: Likewise.
1405 * dwarf_srclang.c: Likewise.
1406 * dwarf_tag.c: Likewise.
1407 * libdw_findcu.c: Likewise.
1408 * libdwP.h: Add prototypes for internal functions.
1410 * dwarf_addrdie.c: New file.
1411 * dwarf_macro_opcode.c: New file.
1412 * dwarf_macro_param1.c: New file.
1413 * dwarf_macro_param2.c: New file.
1414 * libdw.h: Add declarations. Move Dwarf_Macro definition to libdwP.h.
1415 * libdwP.h: Remove Dwarf_Macro definition.
1416 * Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c,
1417 dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c.
1418 * libdw.map: Add entries for new functions.
1420 2005-03-21 Ulrich Drepper <drepper@redhat.com>
1422 * libdw.h: Handle broken gcc < 4.
1424 2005-02-15 Ulrich Drepper <drepper@redhat.com>
1426 * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
1428 * dwarf_begin_elf.c: Fix warnings.
1429 * dwarf_dieoffset.c: Likewise.
1430 * dwarf_end.c: Likewise.
1431 * dwarf_error.c: Likewise.
1432 * dwarf_getpubnames.c: Likewise.
1434 * libdwP.h: Add new error values.
1435 * dwarf_error.c: Support new error values.
1436 * dwarf_getpubnames.c: Check parameter value.
1438 2005-02-05 Ulrich Drepper <drepper@redhat.com>
1440 * Makefile.am: Check for text relocations in constructed DSO.
1442 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.
1444 2005-02-04 Ulrich Drepper <drepper@redhat.com>
1446 * dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary
1447 checks to not read over buffer boundaries for ill-formed DWARF data.
1449 2004-09-25 Ulrich Drepper <drepper@redhat.com>
1451 * dwarf_child.c: Make compile with gcc 4.0.
1452 * dwarf_error.c: Likewise.
1453 * dwarf_formblock.c: Likewise.
1454 * dwarf_getabbrev.c: Likewise.
1455 * dwarf_getattrs.c: Likewise.
1456 * dwarf_getsrclines.c: Likewise.
1457 * dwarf_tag.c: Likewise.
1458 * libdw_form.c: Likewise.
1460 2004-01-20 Ulrich Drepper <drepper@redhat.com>
1462 * Makefile.am: Support building with mudflap.
1464 * dwarf_getloclist.c: Fix warnings gcc 3.4 spits out.
1465 * dwarf_getsrclines.c: Likewise.
1466 * dwarf_memory-access.h: Likewise.
1468 2004-01-19 Ulrich Drepper <drepper@redhat.com>
1470 * dwarf_getsrcfiles.c: Third parameter can be NULL.
1472 * libdw.h: Define Dwarf_macro. Declare dwarf_getmacros.
1473 Third parameter of dwarf_getsrcfiles can be NULL.
1475 * libdw.map: Add dwarf_getmacros.
1476 * Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros.
1477 * dwarf_getmacros.c: New file.
1479 2004-01-18 Ulrich Drepper <drepper@redhat.com>
1481 * libdw.h: Second parameter of dwarf_getaranges can be NULL.
1483 * dwarf_nextcu.c: Return -1 if dwarf parameter is NULL.
1485 * dwarf_getsrclines.c:
1486 Use read_2ubyte_unaligned_inc instead of _inc-less variant.
1488 * dwarf_getaranges.c: Allow naranges parameter to be NULL.
1490 * libdwP.h (_): Use elfutils domain.
1492 * dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction.
1494 * dwarf_getsrclines.c: Fix typo in comment.
1496 2004-01-17 Ulrich Drepper <drepper@redhat.com>
1498 * Makefile.am: Support building with mudflap.
1500 2004-01-16 Ulrich Drepper <drepper@redhat.com>
1502 * memory-access.h: Add lots of const in case a pointer passed is const.
1504 * dwarf_formflag.c: New file.
1505 * dwarf_getattrs.c: New file.
1506 * dwarf_error.c: Add new error value.
1507 * libdw.h: Add prototypes for new functions. Adjust prototype for
1509 * libdw.map: Add new functions.
1510 * dwarf_getpubnames.c: Change type of return value and fourth parameter
1512 * libdwP.h: Add new error value.
1513 * Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and
1516 * dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL.
1518 2004-01-12 Ulrich Drepper <drepper@redhat.com>
1520 * dwarf_getarange_addr.c: New file
1521 * dwarf_getarangeinfo.c: New file.
1522 * dwarf_getaranges.c: New file.
1523 * dwarf_onerange.c: New file.
1524 * libdw.h: Declare new functions. Define Dwarf_Arange and
1526 * libdw.map: Add new functions.
1527 * libdwP.h: Add new errors. Add aranges member to struct Dwarf.
1528 Define Dwarf_Aranges_s and Dwarf_Arange_s.
1529 * Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c,
1530 dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c.
1531 * dwarf_error.c: Add new message.
1533 2004-01-11 Ulrich Drepper <drepper@redhat.com>
1535 * Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c,
1536 dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c,
1537 dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c.
1538 * dwarf_error.c: Add another message.
1539 * dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines
1541 * dwarf_filesrc.c: Likewise.
1542 * dwarf_getsrcfiles.c: Likewise.
1543 * dwarf_getsrclines.c: Likewise.
1544 * dwarf_lineaddr.c: New file.
1545 * dwarf_linebeginstatement.c: New file.
1546 * dwarf_lineblock.c: New file.
1547 * dwarf_linecol.c: New file.
1548 * dwarf_lineendsequence.c: New file.
1549 * dwarf_lineepiloguebegin.c: New file.
1550 * dwarf_lineno.c: New file.
1551 * dwarf_lineprologueend.c: New file.
1552 * dwarf_onesrcline.c: New file.
1553 * dwarf_lineno.c: Change interface to store result in object pointed
1554 to by second parameter.
1555 * libdw.h: Add prototypes for new functions. Change dwarf_lineno
1556 prototype. Define Dwarf_Files and Dwarf_Lines.
1557 * libdw.map: Add new functions.
1558 * libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s.
1559 * libdw_findcu.c: Don't initialize nlines field.
1561 * dwarf_siblingof: Little optimization.
1563 * dwarf_begin.c: Remember that the ELF descriptor must be closed.
1564 * dwarf_end.c: Close ELF descriptor if free_elf is set.
1565 * libdwP.h (struct Dwarf): Add free_elf field.
1567 * Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and
1569 * dwarf_getstring.c: New file.
1570 * dwarf_offabbrev.c: New file.
1571 * libdw.map: Add dwarf_getstring and dwarf_offabbrev.
1572 * dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result
1573 parameters. Don't allocate memory if not necessary and don't lookup
1574 previous results if no CU given.
1575 (dwarf_getabbrev): Adjust call to __libdw_getabbrev.
1576 * dwarf_tag.c: Adjust call to __libdw_getabbrev.
1577 * libdw.h: Declare dwarf_offabbrev and dwarf_getstring.
1578 * libdwP.h: Change prototype for __libdw_getabbrev.
1580 * dwarf_getabbrevattr.c: Add offsetp parameter. Fill in before
1581 returning if this is wanted.
1583 2004-01-09 Ulrich Drepper <drepper@redhat.com>
1585 * dwarf_nextcu.c: Add new parameter offset_sizep. Initialize it
1586 with offset_size value.
1587 * libdw.h: Adjust dwarf_nextcu prototype.
1588 * libdwP.h (struct Dwarf_CU): Add offset_size member.
1589 * libdw_findcu.c: Adjust dwarf_nextcu call. Initialize offset_size
1590 member of new CU struct.
1591 * dwarf_formstring.c: Depend on offset_size not address_size for
1592 DW_FORM_strp handling.
1593 * dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr.
1595 * dwarf_tag.c (__libdw_findabbrev): Return correct value for
1597 (dwarf_tag): Correctly recognize failed lookup.
1599 * dwarf_end.c (cu_free): Call tdestroy for locs member. Use new
1601 * dwarf_error.c: Add message for DWARF_E_NO_BLOCK.
1602 * dwarf_formblock.c: New file.
1603 * dwarf_getloclist.c: Rewrite to handle a single block.
1604 * libdw.h: Define Dwarf_Block. Rename Dwarf_Loc members. Remove
1605 Dwarf_Locdesc definition. Declare dwarf_formblock. Remove
1606 dwarf_getloclistent declaration.
1607 * libdw.map: Add dwarf_formblock, remove dwarf_getloclistent.
1608 * libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK.
1609 Add locs member to struct Dwarf_CU.
1610 * libdw_fundcu.c: Initialize locs member of new CU.
1611 * Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c.
1612 Remove dwarf_getloclistent.c.
1614 2004-01-07 Ulrich Drepper <drepper@redhat.com>
1616 * libdw.h: Use __nonnull__ attribute only for gcc >= 3.3.
1617 * libdwP.h: Likewise.
1619 * dwarf_getloclist.c: New file.
1620 * dwarf_getloclistent.c: New file.
1621 * libdw.h: Define Dwarf_Loc and Dwarf_Locdesc.
1622 Declare dwarf_getloclistent and dwarf_getloclist.
1623 * libdw.map: Add dwarf_getloclistent and dwarf_getloclist.
1624 * libdwP.h: Define DWARF_E_NO_LOCLIST.
1625 * Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and
1628 * dwarf_error.c: More error messages.
1630 2004-01-06 Ulrich Drepper <drepper@redhat.com>
1632 * dwarf_getsrclines.c: Remove debugging support.
1634 * dwarf_getsrcfiles.c: New file.
1635 * dwarf_filesrc.c: New file.
1636 * libdw.h: Declare these functions. Define Dwarf_File.
1637 * libdwP.c: Adjust Dwarf_File_s definition.
1638 * libdw.map: Add these functions.
1639 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and
1641 * dwarf_getsrclines.c: Initialize cu->files.
1643 2004-01-05 Ulrich Drepper <drepper@redhat.com>
1645 * libdw.h: Add more nonnull function attributes.
1647 * dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next.
1648 * dwarf_end.c (cu_free): New function.
1649 (dwarf_end): Also free CU tree. Correct freeing of memory blocks.
1650 * dwarf_error.c (errmsgs): Add new messages.
1651 * dwarf_getsrc_die.c: New file.
1652 * dwarf_getsrclines.c: New file.
1653 * dwarf_lineno.c: New file.
1654 * dwarf_linesrc.c: New file.
1655 * dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc
1656 instead of the *_inc-less variants.
1657 * libdw.h: Define Dwarf_Line. Add some function attributes. Declare
1658 dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc.
1659 * libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno,
1661 * libdwP.h: Add more error codes.
1662 (struct Dwarf): Remove mem_tail.next member.
1663 (Dwarf_File): Define type.
1664 (struct Dwarf_Line_s): Define type.
1665 (struct Dwarf_CU): Add lines and nlines members.
1666 (libdw_alloc): Define local variable _tail and use it.
1667 Add some function attributes.
1668 * libdw_alloc.c (__libdw_allocate): Don't initialize next member.
1669 * libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members.
1670 * memory-access.h: Add unlikely for the endian conversion paths.
1671 * Makefile.am (AM_CFLAGS): Add -std parameter.
1672 (libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die,
1673 dwarf_lineno, and dwarf_linesrc.
1675 2003-08-11 Ulrich Drepper <drepper@redhat.com>
1677 * Moved to CVS archive.