blob: d0b54f3cb0ef518d639e773e57dbc8b1b4137ec4 [file] [log] [blame]
Roland McGrath00aca7f2010-07-27 04:40:23 -070012010-07-27 Roland McGrath <roland@redhat.com>
2
3 * dwarf_formref_die.c: Fix sig8 hash insertion.
4
Roland McGrath9616b852010-06-23 03:17:28 -070052010-06-23 Roland McGrath <roland@redhat.com>
6
7 * cfi.c (dwarf_cfi_validate_fde): Function removed.
8 * libdw.h: Remove it.
9 * libdw.map: Likewise.
10
Roland McGrath499b8ff2010-06-22 13:13:53 -0700112010-06-22 Roland McGrath <roland@redhat.com>
12
Roland McGrathc16966a2010-06-22 17:08:43 -070013 * dwarf_getlocation.c (check_constant_offset): data[48] are constant.
14
Roland McGrath499b8ff2010-06-22 13:13:53 -070015 * dwarf_getsrclines.c: Fix signed comparison warning in extended
16 opcode parsing.
17
Roland McGrath0c5638c2010-06-21 23:00:35 -0700182010-06-21 Roland McGrath <roland@redhat.com>
19
Roland McGrath474cb482010-06-22 00:10:54 -070020 * dwarf.h: Add DW_TAG_GNU_* constants.
21
Roland McGrath0c5638c2010-06-21 23:00:35 -070022 * memory-access.h (get_sleb128_rest_return): Fix sign extension for
23 10-byte case.
24
Roland McGrath5cc030d2010-06-20 17:25:35 -0700252010-06-20 Roland McGrath <roland@redhat.com>
26
Roland McGrath2b1f0952010-06-20 17:55:50 -070027 * libdw_findcu.c (__libdw_findcu): Take new flag argument,
28 to search TUs instead of CUs.
29 * libdwP.h: Update decl.
30 (struct Dwarf): New member tu_tree.
31 * dwarf_end.c (dwarf_end): Clean up tu_tree.
32 * dwarf_offdie.c (do_offdie): New function, broken out of ...
33 (dwarf_offdie): ... here.
34 (dwarf_offdie_types): New function.
35 * libdw.h: Declare it.
36 * libdw.map (ELFUTILS_0.148): Add it.
37
Roland McGrath5cc030d2010-06-20 17:25:35 -070038 * libdwP.h (CUDIE): Use cu_data.
39 * dwarf_formblock.c: Likewise.
40 * dwarf_formref_die.c: Likewise.
41 * dwarf_diecu.c: Use CUDIE macro.
42 * dwarf_formaddr.c: Use cu_sec_idx.
43
Roland McGrathc70ebc02010-06-16 02:21:26 -0700442010-06-16 Roland McGrath <roland@redhat.com>
45
Roland McGrath3e0f7d12010-06-15 23:10:35 -070046 * dwarf_formref_die.c: Use dwarf_offdie only for DW_FORM_ref_addr, so
47 we don't repeat a CU lookup we've already done. Handle
48 DW_FORM_ref_sig8 using sig8_hash table and __libdw_intern_next_unit.
49
50 * libdw_findcu.c (__libdw_intern_next_unit): New function,
51 broken out of ...
52 (__libdw_findcu): ... here. Call it.
53 * libdwP.h: Declare it.
54 (struct Dwarf): New member next_tu_offset.
55
56 * dwarf_sig8_hash.c: New file.
57 * dwarf_sig8_hash.h: New file.
58 * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
59 * dwarf_abbrev_hash.c: Include dwarf_sig8_hash.h before
60 defining NO_UNDEF.
61 * libdwP.h (struct Dwarf): New member sig8_hash.
62 * dwarf_begin_elf.c: Call Dwarf_Sig8_Hash_init on it.
63 * dwarf_end.c: Call Dwarf_Sig8_Hash_free on it.
64
65 * dwarf_nextcu.c (dwarf_next_unit): New function, broken out of ...
66 (dwarf_nextcu): ... here. Call it.
67 * libdw.h: Declare it.
68 * libdwP.h: Add INTDECL.
69 * libdw_findcu.c (__libdw_findcu): Use it instead of dwarf_nextcu.
70 * libdw.map (ELFUTILS_0.148): New set, add dwarf_next_unit.
71
72 * libdwP.h (cu_sec_idx, cu_data): New functions.
73 Use .debug_types when CU is a TU.
74 * dwarf_cuoffset.c: Use that instead of assuming IDX_debug_info.
75 * dwarf_siblingof.c: Likewise.
76 * dwarf_formstring.c: Likewise.
77 * dwarf_formudata.c (__libdw_formptr, dwarf_formudata): Likewise.
78 * dwarf_getlocation.c (dwarf_getlocation): Likewise.
79 (dwarf_getlocation_addr): Likewise.
80
81 * libdwP.h (struct Dwarf_CU): Add new members type_offset, type_sig8.
82 (DIE_OFFSET_FROM_CU_OFFSET): Take flag argument; if true, compute
83 .debug_types header size instead of .debug_info header size.
84 (CUDIE): Use it.
85 * dwarf_diecu.c: Update caller.
86 * dwarf_getaranges.c: Likewise.
87 * dwarf_nextcu.c: Likewise.
88 * libdw_findcu.c (__libdw_findcu): Initialize new members.
89
Roland McGrath3e4b5bb2010-06-16 03:40:56 -070090 * fde.c (fde_by_offset): Renamed to ...
91 (__libdw_fde_by_offset): ... this, made global and internal_function.
92 Don't take ADDRESS argument.
93 (__libdw_find_fde): Update caller. Do address sanity check here.
94 * cfi.h: Declare __libdw_fde_by_offset.
95 * cfi.c (dwarf_cfi_validate_fde): New function.
96 * libdw.h: Declare it.
97 * libdw.map (ELFUTILS_0.148): Add it.
98
Roland McGrath5f4b5082010-06-16 03:11:57 -070099 * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
100 either DW_EH_PE_udata8 or DW_EH_PE_udata4.
101
Roland McGrath7934ded2010-06-16 03:04:09 -0700102 * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
103 Don't assume DW_EH_PE_aligned refers to native address size.
104
Roland McGrathc70ebc02010-06-16 02:21:26 -0700105 * cfi.c (execute_cfi): Barf on CIE initial instructions changing the
106 address.
107
Roland McGrathc70cf4e2010-06-18 17:01:05 -07001082010-06-17 Roland McGrath <roland@redhat.com>
109
110 * libdwP.h (struct Dwarf_Line_s): Add members isa, discriminator, and
111 op_index.
112 * dwarf_getsrclines.c (dwarf_getsrclines): Move NEW_FILE macro guts
113 into an inner inline function. Set new fields. Check all fields for
114 overflow when setting.
115 * dwarf_lineisa.c: New file.
116 * dwarf_linediscriminator.c: New file.
117 * dwarf_lineop_index.c: New file.
118 * Makefile.am (libdw_a_SOURCES): Add them.
119 * libdw.map (ELFUTILS_0.148): Add them.
120 * libdw.h: Declare them.
121
Roland McGrath3f633072010-06-15 22:17:04 -07001222010-06-16 Roland McGrath <roland@redhat.com>
123
Roland McGrath4a87dfa2010-06-16 16:35:10 -0700124 * dwarf_next_cfi.c: Fix version 4 return_address_register decoding.
125
Roland McGrathb75f4442010-06-15 22:24:19 -0700126 * fde.c (fde_by_offset): Renamed to ...
127 (__libdw_fde_by_offset): ... this, made global and internal_function.
128 Don't take ADDRESS argument.
129 (__libdw_find_fde): Update caller. Do address sanity check here.
130 * cfi.h: Declare __libdw_fde_by_offset.
Roland McGrath9bcd2652010-06-15 22:17:20 -0700131 * cfi.c (dwarf_cfi_validate_fde): New function.
132 * libdw.h: Declare it.
Roland McGrath3f633072010-06-15 22:17:04 -0700133 * libdw.map (ELFUTILS_0.148): Add it.
134
Roland McGrath0b3363e2010-06-01 15:42:14 -0700135 * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
136 either DW_EH_PE_udata8 or DW_EH_PE_udata4.
Roland McGrath827d4d12010-06-01 20:17:36 -0700137
138 * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
139 Don't assume DW_EH_PE_aligned refers to native address size.
Roland McGrath1a030b32010-06-01 20:11:40 -0700140
141 * cfi.c (execute_cfi): Barf on CIE initial instructions changing the
Roland McGrath675229b2010-06-01 20:10:19 -0700142 address.
143
1442010-06-15 Roland McGrath <roland@redhat.com>
Roland McGrath52123962010-06-01 19:05:08 -0700145
146 * dwarf_formref.c (__libdw_formref): Diagnose DW_FORM_ref_sig8 like
Roland McGrath7fac1ce2010-06-01 15:56:58 -0700147 DW_FORM_ref_addr.
148 * dwarf_formref_die.c (dwarf_formref_die): Diagnose it the same way
Roland McGrath0b3363e2010-06-01 15:42:14 -0700149 here, since we don't support it yet.
150
Mark Wielaard3f507bd2010-05-31 15:06:31 +0200151 * dwarf_next_cfi.c: Handle version 4 format.
152
Mark Wielaard08e71db2010-05-31 15:39:15 +0200153 * dwarf_getsrclines.c: Handle version 4 format.
154
1552010-06-01 Roland McGrath <roland@redhat.com>
156
157 * libdwP.h: Remove unused IDX_debug_*names, add IDX_debug_types.
Mark Wielaard3f507bd2010-05-31 15:06:31 +0200158 * dwarf_begin_elf.c (dwarf_scnnames): Likewise.
159
Eduardo Santiagod2240bc2010-05-28 14:26:52 -0700160 * libdwP.h (CIE_VERSION): Remove unused macro.
Ulrich Drepper6fb34512010-05-28 20:28:04 -0700161
Ulrich Drepper49fe7142010-05-28 20:32:37 -0700162 * dwarf_getsrclines.c: Fix version field test.
163 * libdwP.h (DWARF_VERSION): Remove useless macro.
Ulrich Drepper6fb34512010-05-28 20:28:04 -0700164
Roland McGrathcfa5da22010-05-27 13:49:25 -0700165 * dwarf_formudata.c (__libdw_formptr): Fix DW_FORM_sec_offset handling.
166
167 * dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_exprloc.
168
169 * libdw_findcu.c (__libdw_findcu): Accept version 4.
Roland McGrath688f7fc2010-05-08 03:22:59 -0700170
1712010-05-31 Mark Wielaard <mjw@redhat.com>
172
173 * cfi.h (dwarf_cfi_cie_p): Move definition from here, to ..
174 * libdw.h (dwarf_cfi_cie_p): ... here.
175
1762010-05-31 Mark Wielaard <mjw@redhat.com>
177
178 * dwarf.h: Fix DW_LANG_Python constant.
Roland McGrath0ab97832010-04-26 11:50:27 -0700179
1802010-05-28 Eduardo Santiago <santiago@redhat.com>
Roland McGrath3b10ac02010-04-26 18:45:36 -0700181
182 * dwarf_getlocation.c (dwarf_getlocation): Do attr_ok check first
183 thing.
184
1852010-05-27 Roland McGrath <roland@redhat.com>
Roland McGrath0ab97832010-04-26 11:50:27 -0700186
187 * dwarf.h: Add DW_AT_enum_class, DW_AT_linkage_name,
188 DW_TAG_template_alias, DW_LANG_Python, DW_LNE_set_discriminator.
189
1902010-05-08 Roland McGrath <roland@redhat.com>
191
192 * dwarf_getlocation.c (__libdw_intern_expression): Take new argument
Roland McGrath3f9d9552010-04-22 20:51:07 -0700193 REF_SIZE. Use that to handle DW_OP_call_ref correctly.
194 (getlocation): Update caller.
195 * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
196 * dwarf_frame_register.c (dwarf_frame_register): Likewise.
197 * libdwP.h: Update decl.
198
1992010-04-26 Roland McGrath <roland@redhat.com>
Roland McGrath8068e062010-03-10 23:49:13 -0800200
201 * cfi.h (struct Dwarf_Frame_s): Add cfa_invalid alternative in cfa_rule.
202 * cfi.c (execute_cfi): Set that instead of doing cfi_assert for
203 DW_CFA_def_cfa_{offset*,register} when a non-offset rule is in force.
Roland McGrath22359e22010-02-15 15:57:03 -0800204 * dwarf_frame_cfa.c (dwarf_frame_cfa): Handle cfa_invalid.
205
206 * dwarf_getlocation.c (__libdw_intern_expression): Take new arg CFAP.
207 Prepend DW_OP_call_frame_cfa if true.
Mark Wielaardee29a312010-02-02 20:44:53 +0100208 (getlocation): Update caller.
209 * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
210 * dwarf_frame_register.c (dwarf_frame_register): Likewise.
211 * libdwP.h: Update decl.
Roland McGrathf95760a2010-01-07 20:24:34 -0800212
2132010-04-22 Roland McGrath <roland@redhat.com>
214
215 * cfi.c (execute_cfi): Never return without cleanup.
Roland McGrath019d9fb2010-01-05 13:36:07 -0800216 Free FS on failure.
217 (cie_cache_initial_state): Adjust caller to expect that free.
Roland McGrathebc5c882010-01-05 22:53:31 -0800218 (__libdw_frame_at_address): Likewise.
219
2202010-03-10 Roland McGrath <roland@redhat.com>
221
222 * libdw.map (ELFUTILS_0.146): New set. Add dwfl_core_file_report.
223
2242010-02-15 Roland McGrath <roland@redhat.com>
225
226 * Makefile.am: Use config/eu.am for common stuff.
Roland McGrath0cb19832010-01-05 13:38:15 -0800227
2282010-02-02 Mark Wielaard <mjw@redhat.com>
Roland McGrath019d9fb2010-01-05 13:36:07 -0800229
230 * fde.c (intern_fde): Fix length check for sized_augmentation_data.
Roland McGrath888381b2009-11-21 17:03:34 -0800231
2322010-01-07 Roland McGrath <roland@redhat.com>
233
234 * dwarf_getcfi_elf.c (getcfi_phdr): Use elf_getphdrnum.
235
Roland McGrath9ca7bc42009-10-15 12:26:49 -07002362010-01-05 Roland McGrath <roland@redhat.com>
237
238 * dwarf_aggregate_size.c: New file.
239 * Makefile.am (libdw_a_SOURCES): Add it.
240 * libdw.h: Declare it.
Roland McGrath7e0aecd2009-09-17 15:02:34 -0700241 * libdwP.h: Add INTDECL.
242 * libdw.map (ELFUTILS_0.144): New set. Add dwarf_aggregate_size.
243
244 * dwarf_srclang.c: Add INTDEF.
245 * libdwP.h: Add INTDECL.
246
Roland McGrathf0371042009-09-10 12:39:09 -0700247 * dwarf.h: Add some more DW_AT_GNU_* types from gcc.
248
249 * dwarf.h: Add DW_AT_GNU_vector, DW_AT_GNU_template_name.
250
2512009-11-21 Roland McGrath <roland@redhat.com>
252
253 * dwarf_getlocation.c (check_constant_offset): Return 1 for all
254 non-constant forms.
Mark Wielaard418ae4c2009-09-09 20:59:26 +0200255
2562009-10-15 Roland McGrath <roland@redhat.com>
257
258 * libdw_form.c (__libdw_form_val_len): Grok DW_FORM_sec_offset,
Josh Stonecc93cc42009-08-21 18:04:44 -0700259 DW_FORM_exprloc, DW_FORM_flag_present, and DW_FORM_ref_sig8.
260
2612009-09-17 Roland McGrath <roland@redhat.com>
262
Roland McGrath08277ba2009-08-10 15:08:08 -0700263 * dwarf_getlocation.c (dwarf_getlocation_implicit_value): Make OP
264 argument a pointer to const.
265 * libdw.h: Update decl.
266
Roland McGrathebfb6482009-08-09 15:40:52 -07002672009-09-10 Roland McGrath <roland@redhat.com>
268
269 * dwarf_getlocation.c (store_implicit_value): New function.
270 (__libdw_intern_expression): Use it, handle DW_OP_implicit_value.
271 (dwarf_getlocation_implicit_value): New function.
272 * libdw.h: Declare it.
273 * libdw.map (ELFUTILS_0.143): Add it.
274
2752009-09-09 Mark Wielaard <mjw@redhat.com>
276
277 * dwarf_getcfi.c (dwarf_getcfi): Clear cfi->ebl.
278
2792009-08-21 Josh Stone <jistone@redhat.com>
280
Roland McGrathde69d522009-08-07 18:26:19 -0700281 * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
282
2832009-08-10 Roland McGrath <roland@redhat.com>
284
285 * dwarf_getscopevar.c: Use dwarf_diename.
286
2872009-08-09 Roland McGrath <roland@redhat.com>
288
289 * libdw.map (ELFUTILS_0.143): New version set,
290 inherits from ELFUTILS_0.142.
Roland McGrathaf800142009-07-22 13:55:50 -0700291 * dwarf_arrayorder.c: Use OLD_VERSION and NEW_VERSION to define an
292 alias in the ELFUTILS_0.122 version set and the default in the new set.
293 * dwarf_srclang.c: Likewise.
294 * dwarf_decl_file.c: Likewise.
295 * dwarf_decl_line.c: Likewise.
296 * dwarf_decl_column.c: Likewise.
297 * dwarf_bytesize.c: Likewise.
298 * dwarf_bitsize.c: Likewise.
299 * dwarf_bitoffset.c: Likewise.
300
3012009-08-07 Roland McGrath <roland@redhat.com>
302
303 * dwarf_arrayorder.c: Use dwarf_attr_integrate.
304 * dwarf_srclang.c: Likewise.
305 * dwarf_decl_file.c: Likewise.
306 * dwarf_decl_line.c (__libdw_attr_intval): Likewise.
Roland McGrathe23e9e72009-07-21 18:14:52 -0700307 * dwarf_bytesize.c: Likewise.
308 * dwarf_bitsize.c: Likewise.
309 * dwarf_bitoffset.c: Likewise.
310
3112009-07-22 Roland McGrath <roland@redhat.com>
312
313 * dwarf_frame_cfa.c: Change calling convention.
314 * libdw.h: Update decl.
Roland McGrath96349ff2009-07-20 11:51:41 -0700315
316 * dwarf_frame_register.c: Change calling/return-value convention for
317 value-only results and undefined/same_value.
318 * libdw.h: Update decl.
319
Roland McGratha6abdfd2009-07-16 17:40:19 -0700320 * dwarf_getlocation.c (__libdw_intern_expression): Take new bool
321 argument, append DW_OP_stack_value if set. Don't take NOPS argument,
Roland McGrathe160cc92009-07-16 17:48:27 -0700322 return that value instead.
323 (getlocation): Update caller.
324 * dwarf_frame_cfa.c: Likewise.
325 * libdwP.h: Update decl.
326
Roland McGratha6abdfd2009-07-16 17:40:19 -07003272009-07-21 Roland McGrath <roland@redhat.com>
328
329 * dwarf_getsrc_file.c: Ignore a CU that just has no DW_AT_stmt_list.
330 Fix loop iteration after skipping a bogus or useless CU.
331
332 * dwarf_entry_breakpoints.c: Handle 0 dwarf_errno () as harmless
333 absence, not DWARF_E_NO_DEBUG_LINE.
Roland McGrath7dd94642009-07-15 11:14:23 -0700334
3352009-07-20 Roland McGrath <roland@redhat.com>
336
337 * dwarf_getlocation.c (__libdw_intern_expression):
338 Handle DW_OP_stack_value.
Roland McGrath80893432009-07-13 12:08:55 -0700339
3402009-07-16 Roland McGrath <roland@redhat.com>
341
342 * dwarf_formudata.c (__libdw_formptr): Handle DW_FORM_sec_offset,
Roland McGrathcfdd86e2009-07-08 13:15:07 -0700343 reject others when CU's version > 3.
344
Roland McGrath3c84db32009-06-24 17:41:40 -0700345 * dwarf_formflag.c: Handle DW_FORM_flag_present.
346
347 * dwarf.h: Add DW_OP_{implicit,stack}_value from DWARF 4 draft.
348 Also DW_TAG_type_unit and DW_TAG_rvalue_reference_type.
349 Also DW_AT_signature, DW_AT_main_subprogram, DW_AT_data_bit_offset,
350 and DW_AT_const_expr.
351 Also DW_FORM_sec_offset, DW_FORM_exprloc, DW_FORM_flag_present,
352 and DW_FORM_ref_sig8.
353
3542009-07-15 Roland McGrath <roland@redhat.com>
355
356 * dwarf_getlocation.c: Grok DW_OP_form_tls_address,
357 DW_OP_GNU_push_tls_address, and DW_OP_bit_piece.
358
3592009-07-13 Roland McGrath <roland@redhat.com>
360
361 * dwarf_getlocation.c: Grok DW_OP_call_frame_cfa.
362
3632009-07-08 Roland McGrath <roland@redhat.com>
364
365 * libdw.map (ELFUTILS_0.142): Add dwfl_module_dwarf_cfi,
366 dwfl_module_eh_cfi.
367
368 * libdwP.h (struct Dwarf): Add member `cfi'.
369 * dwarf_end.c (dwarf_end): Call __libdw_destroy_frame_cache on it.
370 * dwarf_getcfi.c: New file.
371 * dwarf_getcfi_elf.c: New file.
372 * dwarf_cfi_end.c: New file.
373 * dwarf_cfi_addrframe.c: New file.
374 * dwarf_frame_cfa.c: New file.
375 * dwarf_frame_register.c: New file.
376 * dwarf_frame_return_address_register.c: New file.
377 * Makefile.am (libdw_a_SOURCES): Add them.
378 * unwind.h: Declare those functions.
379 * libdw.map (ELFUTILS_0.142): Export them.
380
381 * dwarf_getlocation.c (__libdw_intern_expression): New function,
382 broken out of ...
383 (getlocation): ... here, call it.
384 * libdwP.h: Declare it.
385
386 * cie.c: New file.
387 * fde.c: New file.
388 * frame-cache.c: New file.
389 * cfi.c: New file.
390 * cfi.h: New file.
391 * encoded-value.h: New file.
392 * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
393 * libdwP.h: Add DWARF_E_INVALID_CFI to errors enum.
394 * dwarf_error.c (errmsgs): Add element for it.
395
396 * dwarf_next_cfi.c: New file.
397 * Makefile.am (libdw_a_SOURCES): Add it.
Roland McGrath6e1f4652009-07-08 14:48:34 -0700398 * libdw.h (Dwarf_CIE, Dwarf_FDE, Dwarf_CIE_Entry): New types.
399 Declare dwarf_next_cfi.
Roland McGrathcfdd86e2009-07-08 13:15:07 -0700400 * libdw.map (ELFUTILS_0.142): New set, inherits from ELFUTILS_0.136.
401 Add dwarf_next_cfi.
402
403 * memory-access.h [! ALLOW_UNALIGNED]
Roland McGrath05c4e042009-06-18 13:56:02 -0700404 (read_2ubyte_unaligned): Renamed to ...
405 (read_2ubyte_unaligned_1): ... this. Take bool rather than Dwarf *.
406 (read_2ubyte_unaligned): Define as macro passing dbg->other_byte_order.
407 (read_2sbyte_unaligned): Likewise.
408 (read_4ubyte_unaligned): Likewise.
409 (read_4sbyte_unaligned): Likewise.
410 (read_8ubyte_unaligned): Likewise.
411 (read_8sbyte_unaligned): Likewise.
412
Ulrich Drepper99d23722009-06-14 20:19:45 -0700413 * libdwP.h (IDX_eh_frame): Remove it.
414 * dwarf_begin_elf.c (dwarf_scnnames): Remove its element.
415
4162009-07-08 Roland McGrath <roland@redhat.com>
417
418 * libdwP.h (struct Dwarf_Line_s): Reorder members to pack better.
419
420 * dwarf_getlocation.c (check_constant_offset): New function.
421 (dwarf_getlocation, dwarf_getlocation_addr): Call it to
422 handle DW_AT_data_member_location of data[48] as constant offset.
423
4242009-06-18 Roland McGrath <roland@redhat.com>
425
426 * libdwP.h (__libdw_read_address_inc): Constify.
427 (__libdw_read_offset_inc): Likewise.
428 * dwarf_getaranges.c: Likewise.
429 * dwarf_getlocation.c: Likewise.
430 * dwarf_getsrclines.c: Likewise.
431 * dwarf_nextcu.c: Likewise.
432
4332009-05-05 Petr Machata <pmachata@redhat.com>
434
435 * libdwP.h (__libdw_formptr): Declare new function.
436 * dwarf_formudata.c: Implement it here.
437 * dwarf_getlocation.c (dwarf_getlocation_addr):
438 Call it instead of hand-rolled offset handling code.
439 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
440 * dwarf_ranges.c (dwarf_ranges): Likewise.
441
4422009-05-04 Petr Machata <pmachata@redhat.com>
443
444 * libdwP.h (__libdw_read_begin_end_pair_inc): Declare new function.
445 * dwarf_ranges.c: Implement it here.
446 (dwarf_ranges): Call it.
Roland McGrathe2eabd82009-05-07 18:54:52 -0700447 * dwarf_getlocation.c (dwarf_getlocation_addr): Call it also here.
448
4492009-04-23 Petr Machata <pmachata@redhat.com>
450
451 * dwarf_formaddr.c (dwarf_formaddr): Call __libdw_read_* instead
452 of read_*ubyte_unaligned.
Petr Machataf3df61f2009-05-07 21:02:33 +0200453 * dwarf_formref_die.c (dwarf_formref_die): Likewise.
454 * dwarf_formstring.c (dwarf_formstring): Likewise.
455 * dwarf_formudate.c (dwarf_formudata): Likewise.
456 * dwarf_getaranges.c (dwarf_getaranges): Likewise.
457 * dwarf_getlocation.c (dwarf_getlocation_addr): Likewise.
Roland McGrath2fb90512009-04-15 14:47:13 -0700458 * dwarf_getpubnames.c (get_offsets): Likewise.
459 * dwarf_nextcu.c (dwarf_nextcu): Likewise.
460
4612009-04-23 Petr Machata <pmachata@redhat.com>
462
Roland McGrath6a4bdd92009-04-01 14:25:29 -0700463 * libdwP.h (__libdw_read_addr_inc, __libdw_read_off_inc,
464 __libdw_read_addr, __libdw_read_off): Add four new internal
465 functions.
466
Roland McGrathc5acb302009-01-28 18:28:52 -08004672009-05-07 Roland McGrath <roland@redhat.com>
468
Roland McGrath03288f02009-01-28 22:00:54 -0800469 * dwarf_getmacros.c (dwarf_getmacros): Use absolute section offset in
470 return value and OFFSET argument, not CU-relative. Only fetch the
471 attribute data when called with OFFSET of 0.
Roland McGrathc5acb302009-01-28 18:28:52 -0800472
4732009-05-07 Petr Machata <pmachata@redhat.com>
Roland McGrathf46272a2009-01-26 18:36:16 -0800474
475 * dwarf_getmacros.c (dwarf_getmacros): Take into account offset in
476 DW_AT_macro_info attribute of CU DIE.
477
Roland McGrathd31505f2009-01-25 19:37:33 -08004782009-04-15 Roland McGrath <roland@redhat.com>
479
480 * dwarf.h (DW_CIE_ID): Removed.
481 (DW_CIE_ID_32, DW_CIE_ID_64): New constants replace it.
Roland McGrath3bf7a092009-01-23 16:34:07 -0800482
4832009-04-01 Roland McGrath <roland@redhat.com>
484
485 * dwarf.h: Add DW_CFA_GNU_negative_offset_extended.
486
Roland McGrathafdd51e2009-01-22 02:26:24 -08004872009-01-28 Roland McGrath <roland@redhat.com>
488
489 * libdwP.h (struct Dwarf_Line_s): Move out of struct Dwarf_Lines_s
490 defn so C++ doesn't scope the name to not match the Dwarf_Line typedef.
Roland McGrath1ea4fdc2009-01-21 19:14:37 -0800491
492 * libdwP.h (struct Dwarf_Files_s): Replace dbg field with cu field.
493
4942009-01-26 Roland McGrath <roland@redhat.com>
495
496 * dwarf_ranges.c: Return 0 when no ranges or *_pc attrs at all.
Roland McGrath24b03302009-01-17 14:34:13 -0800497
4982009-01-25 Roland McGrath <roland@redhat.com>
Roland McGrath54456d82009-01-17 14:39:35 -0800499
500 * dwarf_getattrs.c: Correctly skip attribute values when restarting.
501
Roland McGrath5513e642009-01-11 01:35:11 -08005022009-01-23 Roland McGrath <roland@redhat.com>
503
504 * Makefile.am ($(srcdir)/known-dwarf.h): Target renamed back.
505 Put these rules under if MAINTAINER_MODE.
506
5072009-01-22 Roland McGrath <roland@redhat.com>
508
Roland McGrath24b03302009-01-17 14:34:13 -0800509 * dwarf.h: Add DW_OP_GNU_encoded_addr.
510
Ulrich Drepper7e678fa2009-01-10 18:02:05 -08005112009-01-21 Roland McGrath <roland@redhat.com>
512
513 * Makefile.am (CLEANFILES): Renamed to ...
514 (MOSTLYCLEANFILES): ... here.
Roland McGrathe06762c2009-01-08 13:39:08 -0800515 (CLEANFILES): New variable, add known-dwarf.h.
516
5172009-01-17 Roland McGrath <roland@redhat.com>
518
Roland McGrath7e827f22009-01-06 02:09:50 -0800519 * Makefile.am (known-dwarf.h): Target renamed, not in $(srcdir).
Roland McGrath1f6d2012008-12-31 00:21:04 -0800520 Make it unconditional.
521 (BUILT_SOURCES): Updated.
522
523 * dwarf.h: Add description comments for DW_LANG_* values.
Roland McGrathbca43152009-01-05 23:59:32 -0800524
525 * Makefile.am [MAINTAINER_MODE]
526 ($(srcdir)/known-dwarf.h): New target.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800527 (BUILT_SOURCES): Add it.
528
Roland McGrathc462c632009-01-06 01:04:31 -0800529 * dwarf.h: Add DW_OP_GNU_push_tls_address, DW_OP_GNU_uninit.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800530
5312009-01-10 Ulrich Drepper <drepper@redhat.com>
532
533 * dwarf_error.c: Always use __thread. Remove all !USE_TLS code.
Roland McGrathb4d6f0f2008-08-25 22:55:17 +0000534
5352009-01-08 Roland McGrath <roland@redhat.com>
536
537 * Makefile.am (libdw.so): Don't depend on $(zip_LIBS), just link it in.
538
Ulrich Drepper8d358d92008-01-22 06:34:31 +00005392008-01-06 Roland McGrath <roland@redhat.com>
540
541 * libdwP.h (struct Dwarf_Abbrev): Change type of 'has_children' to bool.
542 Reorder members.
543 * dwarf_haschildren.c: Return -1 for error case, not 0.
544
545 * Makefile.am (libdw.so): Link in $(zip_LIBS).
546
Ulrich Drepperb27ce002008-01-18 20:08:54 +00005472009-01-06 Ulrich Drepper <drepper@redhat.com>
548
549 * dwarf.h: Add definition for unwind and call frame information.
550
551 * memory-access.h: Define read_ubyte_unaligned, read_sbyte_unaligned,
Ulrich Drepper35f08c42008-01-18 19:59:08 +0000552 read_ubyte_unaligned_inc, and read_sbyte_unaligned_inc.
553
5542008-08-15 Roland McGrath <roland@redhat.com>
555
556 * libdw.map (ELFUTILS_0.136): New version set, inherits from
557 ELFUTILS_0.130. Add dwfl_addrsegment, dwfl_report_segment.
558
5592008-01-21 Ulrich Drepper <drepper@redhat.com>
560
561 * dwarf_child.c: Minor optimizations.
562 * dwarf_getattrs.c: Likewise.
563 * dwarf_getpubnames.c: Likewise.
564 * dwarf_siblingof.c: Likewise.
Ulrich Dreppera969d8e2008-01-22 06:15:00 +0000565 * dwarf_tag.c: Likewise.
Ulrich Drepper35f08c42008-01-18 19:59:08 +0000566
5672008-01-18 Ulrich Drepper <drepper@redhat.com>
568
569 * dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match
570 of DWARF_VERSION comparison, just fail if the file's version is newer.
571
5722008-01-17 Nick Clifton <nickc@redhat.com>
573
574 * dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define.
575 (DWARF3_LENGTH_MAX_ESCAPE_CODE): New define.
576 (DWARF3_LENGTH_64_BIT): New define.
577 * dwarf_getaranges (dwarf_getaranges): Use the new definitions.
578 * dwarf_getpubnames: Include dwarf.h.
579 (get_offsets): Use the new definitions.
580 * dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions.
581 * dwarf_nextcu.c: Include dwarf.h. Correct comment.
582 (dwarf_nextcu): Use the new definitions.
583
584 * libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro.
585 * dwarf_diecu.c (dwarf_diecu): Use the new macro.
586 * dwarf_getaranges (dwarf_getaranges): Use the new macro.
587 * dwarf_nextcu.c (dwarf_nextcu): Use the new macro.
588
589 * dwarf_getpubnames (get_offsets): Replace assertion with test and
590 error return.
591
592 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE.
593
594 * dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer.
595 Set the address in the return structure to the address of the next
596 non-sibling die, if there is no sibling and the return pointer is
597 not the same as the die pointer.
Ulrich Dreppere219f1c2008-01-09 05:49:49 +0000598 * libdw.h: Expand the description of the dwarf_siblingof prototype.
599
600 * dwarf_child.c: Fix typo in comment.
601
602 * libdwP.h (DWARF_VERSION): Change to 3.
603
Roland McGrathe4c22ea2007-10-23 13:07:39 +0000604 * dwarf_formref.c (__libdw_formref.c): Handle attributes which do
605 not have a initialised valp pointer.
606
607 * dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when
608 the end of the attributes is reached. When the callback fails,
609 return the address of the failing attribute, not the address of
610 its successor.
611 * libdw.h: Expand the description of the dwarf_getattrs prototype.
612
613 * dwarf_child.c (__libdw_find_attr): Use the new definition.
614 (dwarf_child): Likewise.
615 * dwarf_tag.c (__libdw_findabbrev): Likewise.
616 (dwarf_tag): Likewise.
617
6182008-01-08 Roland McGrath <roland@redhat.com>
619
620 * Makefile.am (euinclude): Variable removed.
621 (pkginclude_HEADERS): Set this instead of euinclude_HEADERS.
622 (libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir).
Ulrich Drepperb597dfa2007-10-16 05:21:27 +0000623
6242007-10-17 Roland McGrath <roland@redhat.com>
625
626 * libdw.h (__deprecated_attribute__): New macro.
627 (dwarf_formref): Mark it deprecated.
628 * dwarf_formref.c (__libdw_formref): New function, broken out of ...
629 (dwarf_formref): ... here. Call it. Remove INTDEF.
Roland McGrath59ea7f32007-10-04 08:50:09 +0000630 * libdwP.h: Remove INTDECL.
631 Declare __libdw_formref.
632 * dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead.
633 * dwarf_formref_die.c: Likewise. Handle DW_FORM_ref_addr here.
634
635 * libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result,
636 needs to check CU->version.
637
Roland McGrath057ec6b2007-10-02 20:55:05 +0000638 * libdwP.h (struct Dwarf_CU): New member `version'.
639 * libdw_findcu.c (__libdw_findcu): Initialize it.
640
641 * dwarf_child.c: Return 1 for null entry as first child.
642
Roland McGrathd1a48172007-08-07 19:51:01 +00006432007-10-05 Roland McGrath <roland@redhat.com>
644
645 * dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections.
646
647 * libdw.h (__extern_inline): Rename to __libdw_extern_inline.
648 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses.
649
6502007-10-03 Roland McGrath <roland@redhat.com>
651
652 * libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf
653 and dwfl_build_id_find_debuginfo.
Roland McGrath87d47802007-07-16 22:23:37 +0000654
655 * libdw.map (ELFUTILS_0.130): New version set, inherits from
656 ELFUTILS_0.127. Add dwfl_module_build_id, dwfl_module_report_build_id.
657
6582007-10-02 Roland McGrath <roland@redhat.com>
Roland McGrath43da9892007-04-16 23:13:37 +0000659
660 * libdw_visit_scopes.c (classify_die): Return walk for class_type and
661 structure_type.
662
Roland McGrathbf2ee482007-04-05 09:27:36 +00006632007-08-07 Roland McGrath <roland@redhat.com>
664
Roland McGrath43da9892007-04-16 23:13:37 +0000665 * dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when
666 error code is DWARF_E_NOERROR (0).
667
668 * dwarf_getscopes.c (pc_record): Always bail early if DIE->prune.
669 Fix typo in __libdw_visit_scopes argument.
670
671 * dwarf_getscopes.c (pc_match): Check dwarf_haspc error return,
672 swallow DWARF_E_NO_DEBUG_RANGES but not other errors.
673
6742007-07-03 Roland McGrath <roland@redhat.com>
Roland McGrathbf2ee482007-04-05 09:27:36 +0000675
676 * libdw.h (__extern_inline): New macro.
677 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it.
678
Ulrich Drepperc07fbb32007-03-30 19:14:59 +00006792007-04-16 Roland McGrath <roland@redhat.com>
680
681 * libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section.
682
6832007-04-05 Roland McGrath <roland@redhat.com>
684
685 * dwarf_getsrcdirs.c: New file.
686 * Makefile.am (libdw_a_SOURCES): Add it.
Ulrich Drepper6258e742007-03-13 06:22:40 +0000687 * libdw.h: Declare dwarf_getsrcdirs.
688 * libdw.map (ELFUTILS_0.127): Add it.
689
690 * libdwP.h (struct Dwarf_Files_s): New member ndirs.
691 * dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to
692 zero before we use it to check for DWARF_E_INVALID_DIR_IDX.
693 Save DIRARRAY in the Dwarf_Files.
694
695 * dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN
Ulrich Drepper903c1162007-02-15 19:40:37 +0000696 address to check for all-ones base address entry. Check directly.
697 Reported by Sébastien Dugué <sebastien.dugue@bull.net>.
698
6992007-03-25 Roland McGrath <roland@redhat.com>
Ulrich Drepperaa915fd2007-02-05 07:25:33 +0000700
701 * dwarf_begin_elf.c (check_section): Return Dwarf * instead of void.
702 Return NULL when freeing RESULT on error.
703 (global_read, scngrp_read): Check return value from check_section,
704 break out of loop after it has freed RESULT.
705 (valid_p): Handle null argument.
706
Roland McGrath8190db62006-12-17 23:56:51 +00007072007-03-12 Roland McGrath <roland@redhat.com>
708
709 * libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add.
710
7112007-03-04 Roland McGrath <roland@redhat.com>
Roland McGrathc373d852006-10-10 00:25:21 +0000712
713 * libdw.map (ELFUTILS_0.127): New version set, inherits from
714 ELFUTILS_0.126. Add dwfl_module_addrsym.
715
7162007-02-10 Roland McGrath <roland@redhat.com>
717
718 * dwarf.h (DW_OP_fbreg): Comment fix.
719
7202007-02-03 Roland McGrath <roland@redhat.com>
721
722 * dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf.
723 * libdw.map (ELFUTILS_0.126): New version set, inherits from
Ulrich Drepper077c65f2006-07-12 19:54:51 +0000724 ELFUTILS_0.122. Move dwarf_getelf there; it was never truly
725 exported in the past.
726
7272006-12-17 Roland McGrath <roland@redhat.com>
728
729 * dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base
730 address when the CU is missing attributes due to buggy GCC.
731
Ulrich Dreppere1812e12006-07-12 07:46:03 +00007322006-08-29 Roland McGrath <roland@redhat.com>
733
734 * Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).
735
736 * libdw.h (dwarf_diecu): Add __nonnull_attribute__.
737 (dwarf_child): Don't list arg 1 in __nonnull_attribute__.
738
Ulrich Drepper3be74472006-05-27 18:15:40 +0000739 * libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure
740 result is aligned. Adjust NEWP->remaining here for this allocation.
741 * libdwP.h: Update decl.
742 (libdw_alloc): Update caller.
Ulrich Dreppere7a73172006-05-22 18:16:45 +0000743
7442006-07-12 Ulrich Drepper <drepper@redhat.com>
745
746 * dwarf_child.c: Adjust for internal_function_def removal.
747 * dwarf_getabbrev.c: Likewise.
Ulrich Drepper4f3d2a22006-05-22 01:30:56 +0000748 * dwarf_tag.c: Likewise.
749 * libdw_form.c: Likewise.
750 * memory-access.c: Likewise.
751
7522006-06-28 Roland McGrath <roland@redhat.com>
Roland McGrath2dade662006-02-28 22:13:20 +0000753
754 * libdw.map: Export dwfl_linecu, dwfl_line_comp_dir.
755
756 * libdw.map: Bump to 0.122; export dwfl_module_getsymtab and
757 dwfl_module_getsym.
758
Roland McGrath08333122006-02-27 04:54:26 +00007592006-05-27 Ulrich Drepper <drepper@redhat.com>
760
761 * libdw.h: Add extern "C".
762
Roland McGrath50ffcbf2005-12-23 01:51:43 +00007632006-05-22 Ulrich Drepper <drepper@redhat.com>
764
765 * dwarf_getaranges.c (dwarf_getaranges): Handle files without
766 aranges information.
Roland McGrathdec3a242005-12-12 08:35:55 +0000767
7682006-05-21 Ulrich Drepper <drepper@redhat.com>
769
770 * libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs,
771 dwarf_haschildren.
Roland McGrathf64a4422005-12-09 23:40:30 +0000772
7732006-02-28 Roland McGrath <roland@redhat.com>
774
775 * dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*,
776 DW_OP_* values, to match DWARF 3.0. Add new DW_DS_*, DW_END_*
777 values from DWARF 3.0.
Roland McGrath994b4892005-12-05 22:46:21 +0000778
7792006-02-22 Roland McGrath <roland@redhat.com>
780
781 * libdw.map: Bump to 0.120; export dwfl_version.
Roland McGrathe47ab762005-11-17 03:16:00 +0000782
7832005-12-22 Roland McGrath <roland@redhat.com>
784
785 * libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report.
786
7872005-12-12 Roland McGrath <roland@redhat.com>
788
789 * dwarf_ranges.c: Copy CU base address-finding code from
Roland McGrath07d4f2f2005-10-28 06:56:24 +0000790 dwarf_getlocation.
791
7922005-12-09 Roland McGrath <roland@redhat.com>
793
794 * dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys.
795 Delay CU base lookup until it's needed.
796 If CU base lookup fails with no error, flag invalid DWARF.
797
7982005-11-25 Roland McGrath <roland@redhat.com>
799
800 * libdw.map: Bump to 0.118; export dwfl_module_register_names.
801
Roland McGrath6724c902005-10-28 07:07:19 +00008022005-11-15 Roland McGrath <roland@redhat.com>
803
804 * Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic.
805
8062005-11-13 Roland McGrath <roland@redhat.com>
807
808 * libdw.map: Bump to 0.117; export dwfl_module_return_value_location.
809
8102005-10-27 Roland McGrath <roland@redhat.com>
811
812 * dwarf_entry_breakpoints.c (search_range): Fix binary search code;
813 don't match end_sequence markers.
814
815 * dwarf_getsrclines.c (compare_lines): Sort end_sequence markers
816 before normal records at the same address.
817 * dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence
818 marker.
819
8202005-10-26 Roland McGrath <roland@redhat.com>
821
822 * dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func.
823 * dwarf_func_file.c: Renamed to ...
824 * dwarf_decl_file.c: ... here.
825 * dwarf_func_col.c: Renamed to ...
826 * dwarf_decl_column.c: ... here.
827 * dwarf_func_line.c: Renamed to ...
828 * dwarf_decl_line.c: ... here.
829 (dwarf_func_line): Renamed to ...
830 (dwarf_decl_line): ... this. Take a Dwarf_Die * argument.
831 (__libdw_func_intval): Renamed __libdw_attr_intval.
832 * dwarf_func_name.c: File removed.
833 * dwarf_func_lowpc.c: File removed.
834 * dwarf_func_highpc.c: File removed.
835 * dwarf_func_entrypc.c: File removed.
836 * dwarf_func_die.c: File removed.
837 * Makefile.am (libdw_a_SOURCES): Updated.
838 * libdw.h: Update decls.
839 (Dwarf_Func): Type removed.
840 * libdwP.h: Update decls.
Roland McGrath07d4f2f2005-10-28 06:56:24 +0000841 (struct Dwarf_Func_s): Type removed.
842 * libdw.map: Updated.
843
844 * libdwP.h (CUDIE): New macro.
845 * dwarf_getlocation.c (dwarf_getlocation_addr): Use it.
846 * dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
847 * dwarf_ranges.c (dwarf_ranges): Likewise.
848
849 * dwarf_getloclist.c: Renamed to ...
850 * dwarf_getlocation.c: ... here.
851 (getloclist): Renamed to getlocation.
852 (dwarf_getloclist): Renamed to dwarf_getlocation.
853 (dwarf_addrloclists): Renamed to dwarf_getlocation_addr.
854 * Makefile.am (libdw_a_SOURCES): Updated.
855 * libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation.
856 (dwarf_addrloclists): Renamed dwarf_getlocation_addr.
857 (Dwarf_Loc): Renamed Dwarf_Op.
858 * libdwP.h (struct loc_s): Update use.
859 * libdw.map: Update map.
860
861 * dwarf_entry_breakpoints.c: Use the second line record within the
862 function, regardless of its source location data.
863
8642005-10-25 Roland McGrath <roland@redhat.com>
865
866 * dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too.
867
868 * libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints.
869
8702005-10-14 Roland McGrath <roland@redhat.com>
871
872 * dwarf_diecu.c (dwarf_diecu): New file.
873 * Makefile.am (libdw_a_SOURCES): Add it.
874 * libdw.h: Declare dwarf_diecu.
875 * libdw.map: Export it.
876
877 * libdw.map: Bump to 0.116; export dwarf_ranges.
878
8792005-09-20 Roland McGrath <roland@redhat.com>
880
881 * dwarf_haspc.c: Use dwarf_ranges.
882 * dwarf_entry_breakpoints.c: Likewise.
883
884 * dwarf_ranges.c: New file.
885 * Makefile.am (libdw_a_SOURCES): Add it.
886 * libdw.h: Declare dwarf_ranges.
887 * libdwP.h: Add INTDECL.
888
Ulrich Drepperfbe998a2005-08-29 16:27:10 +00008892005-09-14 Roland McGrath <roland@redhat.com>
890
891 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in
892 prologue_end marker scanning loop.
893
8942005-09-11 Roland McGrath <roland@redhat.com>
Roland McGrath71e15a02005-08-27 10:33:26 +0000895
896 * dwarf.h: Comment typo fix.
897
8982005-09-07 Roland McGrath <roland@redhat.com>
899
900 * dwarf_entry_breakpoints.c: New file.
901 * Makefile.am (libdw_a_SOURCES): Add it.
902 * libdw.h: Declare dwarf_entry_breakpoints.
903
904 * dwarf_entrypc.c: New file.
905 * Makefile.am (libdw_a_SOURCES): Add it.
906 * libdw.h: Declare dwarf_entrypc.
907 * libdwP.h: Add INTDECL.
908
9092005-08-28 Ulrich Drepper <drepper@redhat.com>
910
911 * Makefile.am: Use $(LINK) not $(CC) when creating DSO.
912 (%.os): Use COMPILE.os.
913 (COMPILE.os): Filter out gconv options.
914
9152005-08-27 Roland McGrath <roland@redhat.com>
916
Roland McGrathd17fac72005-08-23 08:20:21 +0000917 * dwarf_getscopes.c (dwarf_getscopes): Rewritten using
918 __libdw_visit_scopes.
919
920 * dwarf_getscopes_die.c: New file.
921 * Makefile.am (libdw_a_SOURCES): Add it.
922 * libdw.h: Declare dwarf_getscopes_die.
923 * libdw.map: Bump to 0.115 and add it.
924
925 * libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct
926 containing a DIE and its parent pointer, instead of just Dwarf_Die.
927 Take two functions for both preorder and postorder visitors.
928 * libdwP.h: Update decl.
929 (struct Dwarf_Die_Chain): New type.
930 * dwarf_func_inline.c: Update uses.
931
932 * dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate.
933 Add INTDEF.
Roland McGrathf5fda7d2005-08-18 22:01:57 +0000934 * libdwP.h: Add INTDECL.
935 * dwarf_func_name.c (dwarf_func_name): Use dwarf_diename.
936
9372005-08-23 Roland McGrath <roland@redhat.com>
938
Roland McGrath1ecb6062005-08-15 09:53:04 +0000939 * dwarf_attr_integrate.c (dwarf_attr_integrate): Treat
940 DW_AT_specification the same as DW_AT_abstract_origin.
941
9422005-08-20 Roland McGrath <roland@redhat.com>
943
944 * libdw.map: Add dwfl_cumodule, remove dwfl_linecu.
945 Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address,
946 and dwfl_report_offline.
947
9482005-08-19 Roland McGrath <roland@redhat.com>
949
950 * libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes.
Roland McGrath1c83bf12005-08-11 07:03:55 +0000951 Add dwfl_module_relocate_address, dwfl_module_relocations,
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +0000952 dwfl_module_relocation_info.
Roland McGrath1c83bf12005-08-11 07:03:55 +0000953
9542005-08-18 Roland McGrath <roland@redhat.com>
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +0000955
Roland McGrath4959bf82005-08-09 10:31:08 +0000956 * dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as
957 outermost scope in the results.
Roland McGrathb6312e12005-08-09 10:36:01 +0000958
9592005-08-15 Roland McGrath <roland@redhat.com>
Roland McGrath4959bf82005-08-09 10:31:08 +0000960
961 * dwarf_func_inline.c: New file.
962 * Makefile.am (libdw_a_SOURCES): Add it.
963 * libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances.
Roland McGratha5a89682005-08-02 01:24:01 +0000964 * libdw.map: Add them.
965
966 * dwarf_func_die.c: New file.
967 * Makefile.am (libdw_a_SOURCES): Add it.
968 * libdw.h: Declare dwarf_func_die.
Ulrich Drepper18618fd2005-07-28 21:29:22 +0000969 * libdw.map: Add it. Bump version to ELFUTILS_0.114.
970
9712005-08-10 Ulrich Drepper <drepper@redhat.com>
972
973 * dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming
Roland McGrath366784a2005-07-28 06:20:53 +0000974 of DW_LNS_set_epilog_begin.
975
Roland McGrath18385902005-07-28 07:12:38 +00009762005-08-09 Roland McGrath <roland@redhat.com>
977
978 * dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin.
979
980 * dwarf_end.c: Add INTDEF.
981 * dwarf_error.c (dwarf_errmsg): Likewise.
Roland McGrath366784a2005-07-28 06:20:53 +0000982 * libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs.
983
9842005-08-01 Roland McGrath <roland@redhat.com>
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000985
986 * dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset.
987 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
988
9892005-07-28 Ulrich Drepper <drepper@redhat.com>
990
991 * Makefile.am (libdw.so): No need to link with libeu.a anymore.
992 (libdw_a_LIBADD): Add all files from libdwfl.a.
993
9942005-07-27 Roland McGrath <roland@redhat.com>
995
996 * Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in,
997 along with ../libebl/libebl.a and ../lib/libeu.a;
998 depend on ../libelf/libelf.so.
999 (libdw_so_LDADD): New variable.
1000 * libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map.
1001
1002 * libdw.map: Define an empty base version and move all symbols to
1003 version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet.
1004
10052005-07-23 Ulrich Drepper <drepper@redhat.com>
1006
1007 * dwarf_error.c: Add internal alias for dwarf_errno.
1008 * libdwP.h: Declare __dwarf_errno_internal.
1009 * dwarf_getloclist.c: Use INTDEF for dwarf_errno.
1010
1011 * dwarf_error.c [USE_TLS]: Actually use __thread in definition of
1012 global_error.
1013
10142005-06-01 Roland McGrath <roland@redhat.com>
1015
1016 * dwarf_getaranges.c (dwarf_getaranges): Sort result array.
1017 * dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search.
1018
10192005-06-08 Roland McGrath <roland@redhat.com>
1020
1021 * memory-access.h (get_uleb128_step, get_uleb128): Remove casts.
1022 (get_sleb128_step, get_sleb128): Likewise.
1023 * dwarf_getattrs.c (dwarf_getattrs): Add consts.
1024 * dwarf_getloclist.c (getloclist): Likewise.
1025 * dwarf_formblock.c (dwarf_formblock): Likewise.
1026 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
1027 * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
1028 * dwarf_formref.c (dwarf_formref): Likewise.
1029 * dwarf_formsdata.c (dwarf_formsdata): Likewise.
1030 * dwarf_formudata.c (dwarf_formudata): Likewise.
1031 * dwarf_haschildren.c (dwarf_haschildren): Likewise.
1032 * dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise.
1033 * dwarf_tag.c (dwarf_tag): Likewise.
1034 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
1035 * memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise.
1036 * libdw_form.c (__libdw_form_val_len): Likewise.
1037 * libdwP.h: Update decl.
1038
10392005-06-04 Roland McGrath <roland@redhat.com>
1040
1041 * memory-access.h (get_uleb128_rest_return): New macro.
1042 [! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it.
1043 (get_sleb128_rest_return): New macro.
1044 [! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it.
1045 * memory-access.c: New file.
1046 * Makefile.am (libdw_a_SOURCES): Add it.
1047 (DEFS): Add -DIS_LIBDW.
1048
10492005-05-31 Roland McGrath <roland@redhat.com>
1050
1051 * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
1052 formref offset.
1053
10542005-05-30 Roland McGrath <roland@redhat.com>
1055
1056 * dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base
1057 address if DW_AT_low_pc is missing. Not to spec, but GCC generates it.
1058
1059 * dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte
1060 BEGIN value. Instead, match base address entries separately for
1061 32/64 size cases.
1062
10632005-05-28 Roland McGrath <roland@redhat.com>
1064
1065 * dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance
1066 past location expression contents.
1067
10682005-05-23 Roland McGrath <roland@redhat.com>
1069
1070 * dwarf_getsrclines.c: Comment typo fix.
1071
1072 * dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation.
1073 * dwarf_getloclist.c (dwarf_addrloclists): Likewise.
1074
10752005-05-22 Ulrich Drepper <drepper@redhat.com>
1076
1077 * libdwP.h: Only use INTDECL for alias prototypes.
1078
10792005-05-19 Roland McGrath <roland@redhat.com>
1080
1081 * dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too.
1082
1083 * dwarf_getscopevar.c: New file.
1084 * Makefile.am (libdw_a_SOURCES): Add it.
1085 * libdw.h: Declare dwarf_getscopevar.
1086
1087 * dwarf_getsrcfiles.c: Add INTDEF.
1088 * dwarf_haschildren.c: Likewise.
1089 * libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL.
1090
1091 * dwarf_getscopes.c: New file.
1092 * Makefile.am (libdw_a_SOURCES): Add it.
1093 * libdw.h: Declare dwarf_getscopes.
1094 * libdw.map: Add it.
1095
10962005-05-18 Roland McGrath <roland@redhat.com>
1097
1098 * libdwP.h (IDX_debug_ranges): New enum constant.
1099 * dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges".
1100 * libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant.
1101 * dwarf_error.c (errmsgs): Add it.
1102 * dwarf_haspc.c: New file.
1103 * libdw.h: Declare dwarf_haspc.
1104 * libdw.map: Add it.
1105 * libdwP.h: Add INTDECL.
1106
1107 * dwarf_attr_integrate.c: New file.
1108 * dwarf_hasattr_integrate.c: New file.
1109 * Makefile.am (libdw_a_SOURCES): Add them.
1110 * libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate.
1111 * libdw.map: Add them.
1112
1113 * dwarf_hasattr.c: Add INTDEF.
1114 * libdwP.h: Add INTDECL for it.
1115
1116 * dwarf_formref_die.c: New file.
1117 * Makefile.am (libdw_a_SOURCES): Add it.
1118 * libdw.h (dwarf_formref_die): Declare it.
1119 * libdwP.h (dwarf_formref_die): Add INTDECL.
1120 * libdw.map: Add it.
1121
1122 * dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out
1123 of ...
1124 (dwarf_getloclist): ... here. Call them.
1125 (dwarf_addrloclists): New function.
1126 * libdw.h: Declare it.
1127 * libdw.map: Add it.
1128
1129 * dwarf_getmacros.c (dwarf_getmacros): Don't bail at
1130 DW_MACINFO_end_file. Recognize type 0 as terminator.
1131
11322005-05-05 Roland McGrath <roland@redhat.com>
1133
1134 * dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search.
1135
1136 * dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since
1137 the line program does not produce all entries in ascending order.
1138
11392005-04-25 Ulrich Drepper <drepper@redhat.com>
1140
1141 * dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple
1142 occurences (e.g., inlines) better.
1143
11442005-04-24 Ulrich Drepper <drepper@redhat.com>
1145
1146 * libdw.h (DWARF_END_ABBREV): Define.
1147 * dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if
1148 end is reached.
1149 * dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end
1150 of records reached.
1151 * dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV
1152 as error of __libdw_getabbrev.
1153
11542005-04-04 Ulrich Drepper <drepper@redhat.com>
1155
1156 * dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization.
1157
1158 * dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of
1159 results back to caller.
1160
11612005-04-04 Roland McGrath <roland@redhat.com>
1162
1163 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL.
1164
1165 * dwarf_func_line.c (__libdw_func_intval): Use internal_function in
1166 defn.
1167
11682005-04-04 Ulrich Drepper <drepper@redhat.com>
1169
1170 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE.
1171
1172 * dwarf_getsrc_file.c: New file.
1173 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c.
1174 * libdw.h: Declare dwarf_getsrc_file.
1175 * libdw.map: Add dwarf_getsrc_file.
1176
11772005-04-02 Ulrich Drepper <drepper@redhat.com>
1178
1179 * dwarf_func_entrypc.c: New file.
1180 * dwarf_func_col.c: New file.
1181 * dwarf_func_line.c: New file.
1182 * dwarf_func_file.c: New file.
1183 * libdw.h: Add prototypes for new functions.
1184 * libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line,
1185 dwarf_func_file.
1186 * Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c,
1187 dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c.
1188 * libdwP.h (struct Dwarf_Func_s): Add cudie element.
1189 Declare __libdw_func_intval and __dwarf_formsdata_internal.
1190 * dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object.
1191 * dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs.
1192
1193 * dwarf.h: Add some DWARF3 definitions.
1194
11952005-04-01 Ulrich Drepper <drepper@redhat.com>
1196
1197 * dwarf_getfuncs.c: New file.
1198 * dwarf_func_highpc.c: New file.
1199 * dwarf_func_lowpc.c: New file.
1200 * dwarf_func_name.c: New file.
1201 * Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c,
1202 dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c.
1203 * libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc,
1204 and dwarf_func_name.
1205 * libdw.h: Add prototypes for new functions.
1206 * dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs.
1207 * dwarf_siblingof.c: Likewise.
1208 * dwarf_dieoffset.c: Likewise.
1209 * dwarf_highpc.c: Likewise.
1210 * dwarf_lowpc.c: Likewise.
1211 * libdwP.h: Add prototypes for internal functions.
1212 Define Dwarf_Func_s structure.
1213
12142005-03-29 Ulrich Drepper <drepper@redhat.com>
1215
1216 * libdw.h: Add padding in Dwarf_die.
1217
1218 * dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs.
1219 * dwarf_attr.c: Likewise.
1220 * dwarf_begin.c: Likewise.
1221 * dwarf_begin_elf.c: Likewise.
1222 * dwarf_bitoffset.c: Likewise.
1223 * dwarf_bitsize.c: Likewise.
1224 * dwarf_bytesize.c: Likewise.
1225 * dwarf_diename.c: Likewise.
1226 * dwarf_formaddr.c: Likewise.
1227 * dwarf_formblock.c: Likewise.
1228 * dwarf_formref.c: Likewise.
1229 * dwarf_formstring.c: Likewise.
1230 * dwarf_formudata.c: Likewise.
1231 * dwarf_getarange_addr.c: Likewise.
1232 * dwarf_getarangeinfo.c: Likewise.
1233 * dwarf_getaranges.c: Likewise.
1234 * dwarf_getloclist.c: Likewise.
1235 * dwarf_getmacros.c: Likewise.
1236 * dwarf_getsrc_die.c: Likewise.
1237 * dwarf_getsrcfiles.c: Likewise.
1238 * dwarf_getsrclines.c: Likewise.
1239 * dwarf_highpc.c: Likewise.
1240 * dwarf_lowpc.c: Likewise.
1241 * dwarf_nextcu.c: Likewise.
1242 * dwarf_offdie.c: Likewise.
1243 * dwarf_siblingof.c: Likewise.
1244 * dwarf_srclang.c: Likewise.
1245 * dwarf_tag.c: Likewise.
1246 * libdw_findcu.c: Likewise.
1247 * libdwP.h: Add prototypes for internal functions.
1248
1249 * dwarf_addrdie.c: New file.
1250 * dwarf_macro_opcode.c: New file.
1251 * dwarf_macro_param1.c: New file.
1252 * dwarf_macro_param2.c: New file.
1253 * libdw.h: Add declarations. Move Dwarf_Macro definition to libdwP.h.
1254 * libdwP.h: Remove Dwarf_Macro definition.
1255 * Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c,
1256 dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c.
1257 * libdw.map: Add entries for new functions.
1258
12592005-03-21 Ulrich Drepper <drepper@redhat.com>
1260
1261 * libdw.h: Handle broken gcc < 4.
1262
12632005-02-15 Ulrich Drepper <drepper@redhat.com>
1264
1265 * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
1266
1267 * dwarf_begin_elf.c: Fix warnings.
1268 * dwarf_dieoffset.c: Likewise.
1269 * dwarf_end.c: Likewise.
1270 * dwarf_error.c: Likewise.
1271 * dwarf_getpubnames.c: Likewise.
1272
1273 * libdwP.h: Add new error values.
1274 * dwarf_error.c: Support new error values.
1275 * dwarf_getpubnames.c: Check parameter value.
1276
12772005-02-05 Ulrich Drepper <drepper@redhat.com>
1278
1279 * Makefile.am: Check for text relocations in constructed DSO.
1280
1281 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.
1282
12832005-02-04 Ulrich Drepper <drepper@redhat.com>
1284
1285 * dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary
1286 checks to not read over buffer boundaries for ill-formed DWARF data.
1287
12882004-09-25 Ulrich Drepper <drepper@redhat.com>
1289
1290 * dwarf_child.c: Make compile with gcc 4.0.
1291 * dwarf_error.c: Likewise.
1292 * dwarf_formblock.c: Likewise.
1293 * dwarf_getabbrev.c: Likewise.
1294 * dwarf_getattrs.c: Likewise.
1295 * dwarf_getsrclines.c: Likewise.
1296 * dwarf_tag.c: Likewise.
1297 * libdw_form.c: Likewise.
1298
12992004-01-20 Ulrich Drepper <drepper@redhat.com>
1300
1301 * Makefile.am: Support building with mudflap.
1302
1303 * dwarf_getloclist.c: Fix warnings gcc 3.4 spits out.
1304 * dwarf_getsrclines.c: Likewise.
1305 * dwarf_memory-access.h: Likewise.
1306
13072004-01-19 Ulrich Drepper <drepper@redhat.com>
1308
1309 * dwarf_getsrcfiles.c: Third parameter can be NULL.
1310
1311 * libdw.h: Define Dwarf_macro. Declare dwarf_getmacros.
1312 Third parameter of dwarf_getsrcfiles can be NULL.
1313
1314 * libdw.map: Add dwarf_getmacros.
1315 * Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros.
1316 * dwarf_getmacros.c: New file.
1317
13182004-01-18 Ulrich Drepper <drepper@redhat.com>
1319
1320 * libdw.h: Second parameter of dwarf_getaranges can be NULL.
1321
1322 * dwarf_nextcu.c: Return -1 if dwarf parameter is NULL.
1323
1324 * dwarf_getsrclines.c:
1325 Use read_2ubyte_unaligned_inc instead of _inc-less variant.
1326
1327 * dwarf_getaranges.c: Allow naranges parameter to be NULL.
1328
1329 * libdwP.h (_): Use elfutils domain.
1330
1331 * dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction.
1332
1333 * dwarf_getsrclines.c: Fix typo in comment.
1334
13352004-01-17 Ulrich Drepper <drepper@redhat.com>
1336
1337 * Makefile.am: Support building with mudflap.
1338
13392004-01-16 Ulrich Drepper <drepper@redhat.com>
1340
1341 * memory-access.h: Add lots of const in case a pointer passed is const.
1342
1343 * dwarf_formflag.c: New file.
1344 * dwarf_getattrs.c: New file.
1345 * dwarf_error.c: Add new error value.
1346 * libdw.h: Add prototypes for new functions. Adjust prototype for
1347 dwarf_getpubnames.
1348 * libdw.map: Add new functions.
1349 * dwarf_getpubnames.c: Change type of return value and fourth parameter
1350 to ptrdiff_t.
1351 * libdwP.h: Add new error value.
1352 * Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and
1353 dwarf_formflag.c.
1354
1355 * dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL.
1356
13572004-01-12 Ulrich Drepper <drepper@redhat.com>
1358
1359 * dwarf_getarange_addr.c: New file
1360 * dwarf_getarangeinfo.c: New file.
1361 * dwarf_getaranges.c: New file.
1362 * dwarf_onerange.c: New file.
1363 * libdw.h: Declare new functions. Define Dwarf_Arange and
1364 Dwarf_Aranges.
1365 * libdw.map: Add new functions.
1366 * libdwP.h: Add new errors. Add aranges member to struct Dwarf.
1367 Define Dwarf_Aranges_s and Dwarf_Arange_s.
1368 * Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c,
1369 dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c.
1370 * dwarf_error.c: Add new message.
1371
13722004-01-11 Ulrich Drepper <drepper@redhat.com>
1373
1374 * Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c,
1375 dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c,
1376 dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c.
1377 * dwarf_error.c: Add another message.
1378 * dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines
1379 introduction.
1380 * dwarf_filesrc.c: Likewise.
1381 * dwarf_getsrcfiles.c: Likewise.
1382 * dwarf_getsrclines.c: Likewise.
1383 * dwarf_lineaddr.c: New file.
1384 * dwarf_linebeginstatement.c: New file.
1385 * dwarf_lineblock.c: New file.
1386 * dwarf_linecol.c: New file.
1387 * dwarf_lineendsequence.c: New file.
1388 * dwarf_lineepiloguebegin.c: New file.
1389 * dwarf_lineno.c: New file.
1390 * dwarf_lineprologueend.c: New file.
1391 * dwarf_onesrcline.c: New file.
1392 * dwarf_lineno.c: Change interface to store result in object pointed
1393 to by second parameter.
1394 * libdw.h: Add prototypes for new functions. Change dwarf_lineno
1395 prototype. Define Dwarf_Files and Dwarf_Lines.
1396 * libdw.map: Add new functions.
1397 * libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s.
1398 * libdw_findcu.c: Don't initialize nlines field.
1399
1400 * dwarf_siblingof: Little optimization.
1401
1402 * dwarf_begin.c: Remember that the ELF descriptor must be closed.
1403 * dwarf_end.c: Close ELF descriptor if free_elf is set.
1404 * libdwP.h (struct Dwarf): Add free_elf field.
1405
1406 * Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and
1407 dwarf_offabbrev.c.
1408 * dwarf_getstring.c: New file.
1409 * dwarf_offabbrev.c: New file.
1410 * libdw.map: Add dwarf_getstring and dwarf_offabbrev.
1411 * dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result
1412 parameters. Don't allocate memory if not necessary and don't lookup
1413 previous results if no CU given.
1414 (dwarf_getabbrev): Adjust call to __libdw_getabbrev.
1415 * dwarf_tag.c: Adjust call to __libdw_getabbrev.
1416 * libdw.h: Declare dwarf_offabbrev and dwarf_getstring.
1417 * libdwP.h: Change prototype for __libdw_getabbrev.
1418
1419 * dwarf_getabbrevattr.c: Add offsetp parameter. Fill in before
1420 returning if this is wanted.
1421
14222004-01-09 Ulrich Drepper <drepper@redhat.com>
1423
1424 * dwarf_nextcu.c: Add new parameter offset_sizep. Initialize it
1425 with offset_size value.
1426 * libdw.h: Adjust dwarf_nextcu prototype.
1427 * libdwP.h (struct Dwarf_CU): Add offset_size member.
1428 * libdw_findcu.c: Adjust dwarf_nextcu call. Initialize offset_size
1429 member of new CU struct.
1430 * dwarf_formstring.c: Depend on offset_size not address_size for
1431 DW_FORM_strp handling.
1432 * dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr.
1433
1434 * dwarf_tag.c (__libdw_findabbrev): Return correct value for
1435 failing lookup.
1436 (dwarf_tag): Correctly recognize failed lookup.
1437
1438 * dwarf_end.c (cu_free): Call tdestroy for locs member. Use new
1439 function noop_free.
1440 * dwarf_error.c: Add message for DWARF_E_NO_BLOCK.
1441 * dwarf_formblock.c: New file.
1442 * dwarf_getloclist.c: Rewrite to handle a single block.
1443 * libdw.h: Define Dwarf_Block. Rename Dwarf_Loc members. Remove
1444 Dwarf_Locdesc definition. Declare dwarf_formblock. Remove
1445 dwarf_getloclistent declaration.
1446 * libdw.map: Add dwarf_formblock, remove dwarf_getloclistent.
1447 * libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK.
1448 Add locs member to struct Dwarf_CU.
1449 * libdw_fundcu.c: Initialize locs member of new CU.
1450 * Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c.
1451 Remove dwarf_getloclistent.c.
1452
14532004-01-07 Ulrich Drepper <drepper@redhat.com>
1454
1455 * libdw.h: Use __nonnull__ attribute only for gcc >= 3.3.
1456 * libdwP.h: Likewise.
1457
1458 * dwarf_getloclist.c: New file.
1459 * dwarf_getloclistent.c: New file.
1460 * libdw.h: Define Dwarf_Loc and Dwarf_Locdesc.
1461 Declare dwarf_getloclistent and dwarf_getloclist.
1462 * libdw.map: Add dwarf_getloclistent and dwarf_getloclist.
1463 * libdwP.h: Define DWARF_E_NO_LOCLIST.
1464 * Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and
1465 dwarf_getloclist.c.
1466
1467 * dwarf_error.c: More error messages.
1468
14692004-01-06 Ulrich Drepper <drepper@redhat.com>
1470
1471 * dwarf_getsrclines.c: Remove debugging support.
1472
1473 * dwarf_getsrcfiles.c: New file.
1474 * dwarf_filesrc.c: New file.
1475 * libdw.h: Declare these functions. Define Dwarf_File.
1476 * libdwP.c: Adjust Dwarf_File_s definition.
1477 * libdw.map: Add these functions.
1478 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and
1479 dwarf_filesrc.c.
1480 * dwarf_getsrclines.c: Initialize cu->files.
1481
14822004-01-05 Ulrich Drepper <drepper@redhat.com>
1483
1484 * libdw.h: Add more nonnull function attributes.
1485
1486 * dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next.
1487 * dwarf_end.c (cu_free): New function.
1488 (dwarf_end): Also free CU tree. Correct freeing of memory blocks.
1489 * dwarf_error.c (errmsgs): Add new messages.
1490 * dwarf_getsrc_die.c: New file.
1491 * dwarf_getsrclines.c: New file.
1492 * dwarf_lineno.c: New file.
1493 * dwarf_linesrc.c: New file.
1494 * dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc
1495 instead of the *_inc-less variants.
Ulrich Drepper6fb34512010-05-28 20:28:04 -07001496 * libdw.h: Define Dwarf_Line. Add some function attributes. Declare
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00001497 dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc.
1498 * libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno,
1499 and dwarf_linesrc.
1500 * libdwP.h: Add more error codes.
1501 (struct Dwarf): Remove mem_tail.next member.
1502 (Dwarf_File): Define type.
1503 (struct Dwarf_Line_s): Define type.
1504 (struct Dwarf_CU): Add lines and nlines members.
1505 (libdw_alloc): Define local variable _tail and use it.
1506 Add some function attributes.
1507 * libdw_alloc.c (__libdw_allocate): Don't initialize next member.
1508 * libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members.
1509 * memory-access.h: Add unlikely for the endian conversion paths.
1510 * Makefile.am (AM_CFLAGS): Add -std parameter.
1511 (libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die,
1512 dwarf_lineno, and dwarf_linesrc.
1513
15142003-08-11 Ulrich Drepper <drepper@redhat.com>
1515
1516 * Moved to CVS archive.