blob: 59b6c63af90a0caf0fd8f5f79f4631a4dee8ff8c [file] [log] [blame]
Mark Wielaard9affad32013-05-03 11:28:49 +020012013-05-03 Mark Wielaard <mjw@redhat.com>
2
3 * dwarf_getsrclines.c (dwarf_getsrclines): Only set end_sequence
4 when nlinelist > 0.
5
Jan Kratochvil904aec22013-04-30 14:27:16 +020062013-04-28 Jan Kratochvil <jan.kratochvil@redhat.com>
7
8 * libdw.map (ELFUTILS_0.156): New.
9
Mark Wielaardcdaaf212013-04-25 16:50:11 -0400102013-04-24 Mark Wielaard <mjw@redhat.com>
11
12 * Makefile.am: Use AM_CPPFLAGS instead of INCLUDES.
13
Mark Wielaardd4744a72013-04-10 15:52:57 +0200142013-04-10 Mark Wielaard <mjw@redhat.com>
15
16 * dwarf_formref_die.c (dwarf_formref_die): Reference size is only
17 equal to address size when we have a DW_FORM_ref_addr for DWARF
18 version 2.
19
Mark Wielaard60ef9ab2013-03-25 17:07:21 +0100202013-03-25 Mark Wielaard <mjw@redhat.com>
21
22 * dwarf_getsrclines.c (dwarf_getsrclines): Mark highest address as
23 end_sequence.
24
Mark Wielaardf1b06b52013-03-12 12:02:51 +0100252013-03-12 Mark Wielaard <mjw@redhat.com>
26
27 * dwarf_getsrcfiles.c (dwarf_getsrcfiles): Allow DW_TAG_partial_unit.
28 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
29
Mark Wielaard443304e2013-02-15 22:45:22 +0100302013-02-15 Mark Wielaard <mjw@redhat.com>
31
32 * dwarf_formstring.c (dwarf_formstring): Check dbg_ret->sectiondata,
33 not dbg->sectiondata.
34
Roland McGrath3999ce12013-01-07 14:53:37 -0800352013-01-07 Roland McGrath <roland@hack.frob.com>
36
37 * memory-access.h
38 [ALLOW_UNALIGNED] (read_8ubyte_unaligned_noncvt): New macro.
39 [!ALLOW_UNALIGNED] (read_8ubyte_unaligned_noncvt): New inline function.
40
Mark Wielaard59254422012-12-18 14:14:22 +0100412012-12-18 Mark Wielaard <mjw@redhat.com>
42
43 * dwarf_begin_elf.c (valid_p): Call Dwarf_Sig8_Hash_free if invalid.
44 (check_section): Likewise on error.
45 (scngrp_read): Likewise.
46 (dwarf_begin_elf): Likewise.
47
Petr Machatab5c0b032012-10-09 02:11:29 +0200482012-10-09 Petr Machata <pmachata@redhat.com>
49
50 * dwarf_getlocation.c (__libdw_intern_expression): Handle
51 DW_OP_GNU_parameter_ref, DW_OP_GNU_convert, DW_OP_GNU_reinterpret,
52 DW_OP_GNU_regval_type, DW_OP_GNU_entry_value,
53 DW_OP_GNU_deref_type, DW_OP_GNU_const_type.
54
Jan Kratochvil6c45f4a2012-10-08 23:04:54 +0200552012-10-08 Jan Kratochvil <jan.kratochvil@redhat.com>
56
Jan Kratochvil1d67c0c2012-10-08 23:51:31 +020057 * cfi.c: New include system.h.
58 (execute_cfi) (enough_registers): Clear new memory after realloc.
59
602012-10-08 Jan Kratochvil <jan.kratochvil@redhat.com>
61
Jan Kratochvil07f35072012-10-08 23:34:35 +020062 * fde.c (__libdw_find_fde): Change <fde != NULL> to likely. Return
63 DWARF_E_NO_MATCH if .eh_frame_hdr points to FDE which is too short for
64 searched PC.
65
662012-10-08 Jan Kratochvil <jan.kratochvil@redhat.com>
67
Jan Kratochvil96a9fc62012-10-08 23:08:01 +020068 * dwarf_getlocation.c (__libdw_intern_expression) <cfap>: Make new
69 loclist element DW_OP_call_frame_cfa before decoding the opcodes.
70 Remove the later DW_OP_call_frame_cfa push to RESULT.
71
722012-10-08 Jan Kratochvil <jan.kratochvil@redhat.com>
73
Jan Kratochvil6c45f4a2012-10-08 23:04:54 +020074 Code cleanup.
75 * fde.c (binary_search_fde): Remove always true <address >= start>
76 conditional. Move L initialization upwards.
77
Mark Wielaardf5519fc2012-08-24 13:54:52 +0200782012-08-24 Mark Wielaard <mjw@redhat.com>
79
80 * dwarf_begin_elf.c (check_section): Only probe for dwz multi files
81 when ENABLE_DWZ is defined.
82 * libdwP.h (__check_build_id): Only declare when ENABLE_DWZ is
83 defined.
84
Mark Wielaardf31c4412012-08-17 00:35:03 +0200852012-08-16 Mark Wielaard <mjw@redhat.com>
86
87 * Makefile.am (EXTRA_DIST): Add known-dwarf.h.
88 * dwarf.h (DW_LANG_Go): Update comment.
89 (DW_LANG_Mips_Assembler): Likewise.
90
Mark Wielaard775375e2012-06-22 12:02:45 +0200912012-06-27 Mark Wielaard <mjw@redhat.com>
92
93 * dwarf.h: Add DW_FORM_GNU_ref_alt and DW_FORM_GNU_strp_alt.
94 * dwarf_begin.c (dwarf_begin): Add INTDEF.
95 * dwarf_begin_elf.c (__check_build_id): New internal_function.
96 (try_debugaltlink): New function.
97 (open_debugaltlink): Likewise.
98 (check_section): Try open_debugaltlink for .gnu_debugaltlink.
99 * dwarf_end.c (dwarf_end): Free the alternative Dwarf descriptor if
100 necessary.
101 * dwarf_error.c (errmsgs): Add DWARF_E_NO_ALT_DEBUGLINK.
102 * dwarf_formref.c (__libdw_formref): Using DW_FORM_GNU_ref_alt
103 is an error here.
104 * dwarf_formref_die.c (dwarf_formref_die): Handle DW_FORM_GNU_ref_alt.
105 * dwarf_formstring.c (dwarf_formstring): Handle DW_FORM_GNU_strp_alt.
106 * dwarf_formudata.c (__libdw_formptr): Adjust __libdw_read_offset
107 calls.
108 * dwarf_getpubnames.c (get_offsets): Adjust __libdw_read_offset call.
109 * libdwP.h: Add DWARF_E_NO_ALT_DEBUGLINK.
110 (struct Dwarf): Add alt_dwarf and free_alt fields.
111 (__libdw_read_offset): Add dbg_ret argument, use to check with
112 __libdw_offset_in_section.
113 (__check_build_id): New function declaration.
114 (dwarf_begin): Define as INTDECL.
115 * libdw_form.c (__libdw_form_val_len): Handle DW_FORM_GNU_ref_alt
116 and DW_FORM_GNU_strp_alt.
117
Mark Wielaard515fba92012-07-20 00:09:56 +02001182012-07-19 Mark Wielaard <mjw@redhat.com>
119
120 * dwarf.h: Add DW_OP_GNU_parameter_ref.
121
Mark Wielaarddf9ec3f2012-07-24 20:00:14 +02001222012-07-24 Mark Wielaard <mjw@redhat.com>
123
Mark Wielaardc4010b82012-07-24 13:20:41 +0200124 * dwarf.h: Correct spelling of DW_LANG_ObjC.
125 * dwarf_aggregate_size.c (array_size): Use correct spelling of
126 DW_LANG_ObjC.
127
1282012-07-24 Mark Wielaard <mjw@redhat.com>
129
Mark Wielaarddf9ec3f2012-07-24 20:00:14 +0200130 * dwarf.h: Add DW_ATE_UTF.
131
Mark Wielaardef5688e2012-06-27 10:15:27 +02001322012-06-27 Mark Wielaard <mjw@redhat.com>
133
134 * dwarf.h: Add DW_MACRO_GNU .debug_macro type encodings.
135
Mark Wielaarda0172d72012-06-25 17:18:53 +02001362012-06-26 Mark Wielaard <mjw@redhat.com>
137
138 * libdwP.h: Add IDX_debug_macro.
139 * dwarf.h: Add DW_AT_GNU_macros.
140 * dwarf_begin_elf.c (dwarf_scnnames): Add .debug_macro.
141 * dwarf_formudata.c (dwarf_formudata): Recognize DW_AT_GNU_macros.
142
Mark Wielaard54797252012-04-27 13:00:50 +02001432012-04-27 Mark Wielaard <mjw@redhat.com>
144
145 * libdw/dwarf_highpc.c (dwarf_highpc): Handle DW_AT_high_pc being
146 a constant offset from DW_AT_low_pc.
147
Tom Tromey581c3f62012-03-21 08:54:32 -06001482012-03-19 Tom Tromey <tromey@redhat.com>
149
150 * libdw_findcu.c (findcu_cb): Move earlier.
151 (__libdw_intern_next_unit): Add new CU to search tree here...
152 (__libdw_findcu): ... not here.
153
Mark Wielaardcb643d62012-01-31 19:22:03 +01001542012-01-31 Mark Wielaard <mjw@redhat.com>
155
156 * dwarf_formudata.c (dwarf_formudata): Handle DW_FORM_sec_offset.
157
Mark Wielaard387998b2011-10-31 15:01:50 +01001582011-11-31 Mark Wielaard <mjw@redhat.com>
159
160 * Makefile.am (known-dwarf.h): Run gawk on config/known-dwarf.awk.
161
Mark Wielaard0b72b652011-07-14 12:59:26 +02001622011-07-14 Mark Wielaard <mjw@redhat.com>
163
164 * libdw.h (dwarf_offdie): Fix documentation to mention .debug_info.
165
Jakub Jelinek03124242011-05-17 17:00:14 +02001662011-05-16 Jakub Jelinek <jakub@redhat.com>
167
168 * dwarf.h (DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
169 DW_OP_GNU_deref_type, DW_OP_GNU_convert, DW_OP_GNU_reinterpret):
170 New.
171
Mark Wielaardf4c39c72011-04-26 17:15:28 +02001722011-04-26 Mark Wielaard <mjw@redhat.com>
173
174 * dwarf_child (dwarf_child): Sanity check end of section against
175 cu_data () of die->cu.
176
Mark Wielaarde3368c52011-03-22 23:03:31 +01001772011-03-22 Mark Wielaard <mjw@redhat.com>
178
179 * dwarf.h: Add DW_TAG_GNU_call_site,
180 DW_TAG_GNU_call_site_parameter,
181 DW_AT_GNU_call_site_value,
182 DW_AT_GNU_call_site_data_value,
183 DW_AT_GNU_call_site_target,
184 DW_AT_GNU_call_site_target_clobbered,
185 DW_AT_GNU_tail_call,
186 DW_AT_GNU_all_tail_call_sites,
187 DW_AT_GNU_all_call_sites,
188 DW_AT_GNU_all_source_call_sites,
189 and DW_OP_GNU_entry_value.
190
Petr Machata02c56192011-03-10 01:50:32 +01001912011-03-10 Petr Machata <pmachata@redhat.com>
192
193 * libdw/dwarf_tag.c (__libdw_findabbrev): Reject requests for
194 abbreviation with code 0.
195
Petr Machata35870872011-03-09 10:01:29 -08001962011-03-09 Petr Machata <pmachata@redhat.com>
197
198 * libdw/dwarf_child.c (dwarf_child): Check for section overrun.
199
Roland McGrath725aad52011-02-23 19:52:46 -08002002011-02-23 Roland McGrath <roland@redhat.com>
201
202 * libdwP.h (struct Dwarf) [USE_ZLIB]: New member sectiondata_gzip_mask.
203 Declare __libdw_free_zdata.
204 * dwarf_end.c [USE_ZLIB] (__libdw_free_zdata): New function.
205 (dwarf_end): Call it.
206
207 * dwarf_begin_elf.c (valid_p): Likewise.
208 (check_section, scngrp_read): Likewise.
209 (check_section) [USE_ZLIB]: Grok .z* flavors of sections.
210
Roland McGrath8c0a3822010-10-13 11:21:17 -07002112010-10-13 Roland McGrath <roland@redhat.com>
212
213 * dwarf.h: Add DW_LANG_Go.
214
Roland McGrath5f95e2b2010-10-05 00:56:30 -07002152010-10-05 Roland McGrath <roland@redhat.com>
216
217 * dwarf_getaranges.c: Use malloc rather than alloca,
218 since the total number of elements can be quite huge.
219
Roland McGrath932585d2010-05-08 04:01:14 -07002202010-07-26 Roland McGrath <roland@redhat.com>
221
222 * dwarf_getlocation_implicit_pointer.c: New file.
223 * Makefile.am (libdw_a_SOURCES): Add it.
224 * libdw.map (ELFUTILS_0.149): New set.
225 Add dwarf_getlocation_implicit_pointer.
226 * libdw.h: Declare it.
227
228 * dwarf_offdie.c (do_offdie): Renamed to __libdw_offdie, made global.
229 (dwarf_offdie, dwarf_offdie_types): Update callers.
230 * libdwP.h: Declare it.
231
232 * dwarf.h: Add DW_OP_GNU_implicit_pointer.
233 * dwarf_getlocation.c (__libdw_intern_expression): Handle it.
234
Roland McGrathde44f132010-08-24 15:38:42 -07002352010-08-24 Roland McGrath <roland@redhat.com>
236
237 * libdw.map (ELFUTILS_0.149): New set. Add dwfl_dwarf_line.
238
Roland McGrath00aca7f2010-07-27 04:40:23 -07002392010-07-27 Roland McGrath <roland@redhat.com>
240
241 * dwarf_formref_die.c: Fix sig8 hash insertion.
242
Roland McGrath9616b852010-06-23 03:17:28 -07002432010-06-23 Roland McGrath <roland@redhat.com>
244
245 * cfi.c (dwarf_cfi_validate_fde): Function removed.
246 * libdw.h: Remove it.
247 * libdw.map: Likewise.
248
Roland McGrath499b8ff2010-06-22 13:13:53 -07002492010-06-22 Roland McGrath <roland@redhat.com>
250
Roland McGrathc16966a2010-06-22 17:08:43 -0700251 * dwarf_getlocation.c (check_constant_offset): data[48] are constant.
252
Roland McGrath499b8ff2010-06-22 13:13:53 -0700253 * dwarf_getsrclines.c: Fix signed comparison warning in extended
254 opcode parsing.
255
Roland McGrath0c5638c2010-06-21 23:00:35 -07002562010-06-21 Roland McGrath <roland@redhat.com>
257
Roland McGrath474cb482010-06-22 00:10:54 -0700258 * dwarf.h: Add DW_TAG_GNU_* constants.
259
Roland McGrath0c5638c2010-06-21 23:00:35 -0700260 * memory-access.h (get_sleb128_rest_return): Fix sign extension for
261 10-byte case.
262
Roland McGrath5cc030d2010-06-20 17:25:35 -07002632010-06-20 Roland McGrath <roland@redhat.com>
264
Roland McGrath2b1f0952010-06-20 17:55:50 -0700265 * libdw_findcu.c (__libdw_findcu): Take new flag argument,
266 to search TUs instead of CUs.
267 * libdwP.h: Update decl.
268 (struct Dwarf): New member tu_tree.
269 * dwarf_end.c (dwarf_end): Clean up tu_tree.
270 * dwarf_offdie.c (do_offdie): New function, broken out of ...
271 (dwarf_offdie): ... here.
272 (dwarf_offdie_types): New function.
273 * libdw.h: Declare it.
274 * libdw.map (ELFUTILS_0.148): Add it.
275
Roland McGrath5cc030d2010-06-20 17:25:35 -0700276 * libdwP.h (CUDIE): Use cu_data.
277 * dwarf_formblock.c: Likewise.
278 * dwarf_formref_die.c: Likewise.
279 * dwarf_diecu.c: Use CUDIE macro.
280 * dwarf_formaddr.c: Use cu_sec_idx.
281
Roland McGrathc70ebc02010-06-16 02:21:26 -07002822010-06-16 Roland McGrath <roland@redhat.com>
283
Roland McGrath3e0f7d12010-06-15 23:10:35 -0700284 * dwarf_formref_die.c: Use dwarf_offdie only for DW_FORM_ref_addr, so
285 we don't repeat a CU lookup we've already done. Handle
286 DW_FORM_ref_sig8 using sig8_hash table and __libdw_intern_next_unit.
287
288 * libdw_findcu.c (__libdw_intern_next_unit): New function,
289 broken out of ...
290 (__libdw_findcu): ... here. Call it.
291 * libdwP.h: Declare it.
292 (struct Dwarf): New member next_tu_offset.
293
294 * dwarf_sig8_hash.c: New file.
295 * dwarf_sig8_hash.h: New file.
296 * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
297 * dwarf_abbrev_hash.c: Include dwarf_sig8_hash.h before
298 defining NO_UNDEF.
299 * libdwP.h (struct Dwarf): New member sig8_hash.
300 * dwarf_begin_elf.c: Call Dwarf_Sig8_Hash_init on it.
301 * dwarf_end.c: Call Dwarf_Sig8_Hash_free on it.
302
303 * dwarf_nextcu.c (dwarf_next_unit): New function, broken out of ...
304 (dwarf_nextcu): ... here. Call it.
305 * libdw.h: Declare it.
306 * libdwP.h: Add INTDECL.
307 * libdw_findcu.c (__libdw_findcu): Use it instead of dwarf_nextcu.
308 * libdw.map (ELFUTILS_0.148): New set, add dwarf_next_unit.
309
310 * libdwP.h (cu_sec_idx, cu_data): New functions.
311 Use .debug_types when CU is a TU.
312 * dwarf_cuoffset.c: Use that instead of assuming IDX_debug_info.
313 * dwarf_siblingof.c: Likewise.
314 * dwarf_formstring.c: Likewise.
315 * dwarf_formudata.c (__libdw_formptr, dwarf_formudata): Likewise.
316 * dwarf_getlocation.c (dwarf_getlocation): Likewise.
317 (dwarf_getlocation_addr): Likewise.
318
319 * libdwP.h (struct Dwarf_CU): Add new members type_offset, type_sig8.
320 (DIE_OFFSET_FROM_CU_OFFSET): Take flag argument; if true, compute
321 .debug_types header size instead of .debug_info header size.
322 (CUDIE): Use it.
323 * dwarf_diecu.c: Update caller.
324 * dwarf_getaranges.c: Likewise.
325 * dwarf_nextcu.c: Likewise.
326 * libdw_findcu.c (__libdw_findcu): Initialize new members.
327
Roland McGrath3e4b5bb2010-06-16 03:40:56 -0700328 * fde.c (fde_by_offset): Renamed to ...
329 (__libdw_fde_by_offset): ... this, made global and internal_function.
330 Don't take ADDRESS argument.
331 (__libdw_find_fde): Update caller. Do address sanity check here.
332 * cfi.h: Declare __libdw_fde_by_offset.
333 * cfi.c (dwarf_cfi_validate_fde): New function.
334 * libdw.h: Declare it.
335 * libdw.map (ELFUTILS_0.148): Add it.
336
Roland McGrath5f4b5082010-06-16 03:11:57 -0700337 * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
338 either DW_EH_PE_udata8 or DW_EH_PE_udata4.
339
Roland McGrath7934ded2010-06-16 03:04:09 -0700340 * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
341 Don't assume DW_EH_PE_aligned refers to native address size.
342
Roland McGrathc70ebc02010-06-16 02:21:26 -0700343 * cfi.c (execute_cfi): Barf on CIE initial instructions changing the
344 address.
345
Roland McGrathc70cf4e2010-06-18 17:01:05 -07003462010-06-17 Roland McGrath <roland@redhat.com>
347
348 * libdwP.h (struct Dwarf_Line_s): Add members isa, discriminator, and
349 op_index.
350 * dwarf_getsrclines.c (dwarf_getsrclines): Move NEW_FILE macro guts
351 into an inner inline function. Set new fields. Check all fields for
352 overflow when setting.
353 * dwarf_lineisa.c: New file.
354 * dwarf_linediscriminator.c: New file.
355 * dwarf_lineop_index.c: New file.
356 * Makefile.am (libdw_a_SOURCES): Add them.
357 * libdw.map (ELFUTILS_0.148): Add them.
358 * libdw.h: Declare them.
359
Roland McGrath3f633072010-06-15 22:17:04 -07003602010-06-16 Roland McGrath <roland@redhat.com>
361
Roland McGrath4a87dfa2010-06-16 16:35:10 -0700362 * dwarf_next_cfi.c: Fix version 4 return_address_register decoding.
363
Roland McGrathb75f4442010-06-15 22:24:19 -0700364 * fde.c (fde_by_offset): Renamed to ...
365 (__libdw_fde_by_offset): ... this, made global and internal_function.
366 Don't take ADDRESS argument.
367 (__libdw_find_fde): Update caller. Do address sanity check here.
368 * cfi.h: Declare __libdw_fde_by_offset.
Roland McGrath9bcd2652010-06-15 22:17:20 -0700369 * cfi.c (dwarf_cfi_validate_fde): New function.
370 * libdw.h: Declare it.
Roland McGrath3f633072010-06-15 22:17:04 -0700371 * libdw.map (ELFUTILS_0.148): Add it.
372
Roland McGrath0b3363e2010-06-01 15:42:14 -0700373 * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to
374 either DW_EH_PE_udata8 or DW_EH_PE_udata4.
Roland McGrath827d4d12010-06-01 20:17:36 -0700375
376 * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect.
377 Don't assume DW_EH_PE_aligned refers to native address size.
Roland McGrath1a030b32010-06-01 20:11:40 -0700378
379 * cfi.c (execute_cfi): Barf on CIE initial instructions changing the
Roland McGrath675229b2010-06-01 20:10:19 -0700380 address.
381
3822010-06-15 Roland McGrath <roland@redhat.com>
Roland McGrath52123962010-06-01 19:05:08 -0700383
384 * dwarf_formref.c (__libdw_formref): Diagnose DW_FORM_ref_sig8 like
Roland McGrath7fac1ce2010-06-01 15:56:58 -0700385 DW_FORM_ref_addr.
386 * dwarf_formref_die.c (dwarf_formref_die): Diagnose it the same way
Roland McGrath0b3363e2010-06-01 15:42:14 -0700387 here, since we don't support it yet.
388
Mark Wielaard3f507bd2010-05-31 15:06:31 +0200389 * dwarf_next_cfi.c: Handle version 4 format.
390
Mark Wielaard08e71db2010-05-31 15:39:15 +0200391 * dwarf_getsrclines.c: Handle version 4 format.
392
3932010-06-01 Roland McGrath <roland@redhat.com>
394
395 * libdwP.h: Remove unused IDX_debug_*names, add IDX_debug_types.
Mark Wielaard3f507bd2010-05-31 15:06:31 +0200396 * dwarf_begin_elf.c (dwarf_scnnames): Likewise.
397
Eduardo Santiagod2240bc2010-05-28 14:26:52 -0700398 * libdwP.h (CIE_VERSION): Remove unused macro.
Ulrich Drepper6fb34512010-05-28 20:28:04 -0700399
Ulrich Drepper49fe7142010-05-28 20:32:37 -0700400 * dwarf_getsrclines.c: Fix version field test.
401 * libdwP.h (DWARF_VERSION): Remove useless macro.
Ulrich Drepper6fb34512010-05-28 20:28:04 -0700402
Roland McGrathcfa5da22010-05-27 13:49:25 -0700403 * dwarf_formudata.c (__libdw_formptr): Fix DW_FORM_sec_offset handling.
404
405 * dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_exprloc.
406
407 * libdw_findcu.c (__libdw_findcu): Accept version 4.
Roland McGrath688f7fc2010-05-08 03:22:59 -0700408
4092010-05-31 Mark Wielaard <mjw@redhat.com>
410
411 * cfi.h (dwarf_cfi_cie_p): Move definition from here, to ..
412 * libdw.h (dwarf_cfi_cie_p): ... here.
413
4142010-05-31 Mark Wielaard <mjw@redhat.com>
415
416 * dwarf.h: Fix DW_LANG_Python constant.
Roland McGrath0ab97832010-04-26 11:50:27 -0700417
4182010-05-28 Eduardo Santiago <santiago@redhat.com>
Roland McGrath3b10ac02010-04-26 18:45:36 -0700419
420 * dwarf_getlocation.c (dwarf_getlocation): Do attr_ok check first
421 thing.
422
4232010-05-27 Roland McGrath <roland@redhat.com>
Roland McGrath0ab97832010-04-26 11:50:27 -0700424
425 * dwarf.h: Add DW_AT_enum_class, DW_AT_linkage_name,
426 DW_TAG_template_alias, DW_LANG_Python, DW_LNE_set_discriminator.
427
4282010-05-08 Roland McGrath <roland@redhat.com>
429
430 * dwarf_getlocation.c (__libdw_intern_expression): Take new argument
Roland McGrath3f9d9552010-04-22 20:51:07 -0700431 REF_SIZE. Use that to handle DW_OP_call_ref correctly.
432 (getlocation): Update caller.
433 * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
434 * dwarf_frame_register.c (dwarf_frame_register): Likewise.
435 * libdwP.h: Update decl.
436
4372010-04-26 Roland McGrath <roland@redhat.com>
Roland McGrath8068e062010-03-10 23:49:13 -0800438
439 * cfi.h (struct Dwarf_Frame_s): Add cfa_invalid alternative in cfa_rule.
440 * cfi.c (execute_cfi): Set that instead of doing cfi_assert for
441 DW_CFA_def_cfa_{offset*,register} when a non-offset rule is in force.
Roland McGrath22359e22010-02-15 15:57:03 -0800442 * dwarf_frame_cfa.c (dwarf_frame_cfa): Handle cfa_invalid.
443
444 * dwarf_getlocation.c (__libdw_intern_expression): Take new arg CFAP.
445 Prepend DW_OP_call_frame_cfa if true.
Mark Wielaardee29a312010-02-02 20:44:53 +0100446 (getlocation): Update caller.
447 * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise.
448 * dwarf_frame_register.c (dwarf_frame_register): Likewise.
449 * libdwP.h: Update decl.
Roland McGrathf95760a2010-01-07 20:24:34 -0800450
4512010-04-22 Roland McGrath <roland@redhat.com>
452
453 * cfi.c (execute_cfi): Never return without cleanup.
Roland McGrath019d9fb2010-01-05 13:36:07 -0800454 Free FS on failure.
455 (cie_cache_initial_state): Adjust caller to expect that free.
Roland McGrathebc5c882010-01-05 22:53:31 -0800456 (__libdw_frame_at_address): Likewise.
457
4582010-03-10 Roland McGrath <roland@redhat.com>
459
460 * libdw.map (ELFUTILS_0.146): New set. Add dwfl_core_file_report.
461
4622010-02-15 Roland McGrath <roland@redhat.com>
463
464 * Makefile.am: Use config/eu.am for common stuff.
Roland McGrath0cb19832010-01-05 13:38:15 -0800465
4662010-02-02 Mark Wielaard <mjw@redhat.com>
Roland McGrath019d9fb2010-01-05 13:36:07 -0800467
468 * fde.c (intern_fde): Fix length check for sized_augmentation_data.
Roland McGrath888381b2009-11-21 17:03:34 -0800469
4702010-01-07 Roland McGrath <roland@redhat.com>
471
472 * dwarf_getcfi_elf.c (getcfi_phdr): Use elf_getphdrnum.
473
Roland McGrath9ca7bc42009-10-15 12:26:49 -07004742010-01-05 Roland McGrath <roland@redhat.com>
475
476 * dwarf_aggregate_size.c: New file.
477 * Makefile.am (libdw_a_SOURCES): Add it.
478 * libdw.h: Declare it.
Roland McGrath7e0aecd2009-09-17 15:02:34 -0700479 * libdwP.h: Add INTDECL.
480 * libdw.map (ELFUTILS_0.144): New set. Add dwarf_aggregate_size.
481
482 * dwarf_srclang.c: Add INTDEF.
483 * libdwP.h: Add INTDECL.
484
Roland McGrathf0371042009-09-10 12:39:09 -0700485 * dwarf.h: Add some more DW_AT_GNU_* types from gcc.
486
487 * dwarf.h: Add DW_AT_GNU_vector, DW_AT_GNU_template_name.
488
4892009-11-21 Roland McGrath <roland@redhat.com>
490
491 * dwarf_getlocation.c (check_constant_offset): Return 1 for all
492 non-constant forms.
Mark Wielaard418ae4c2009-09-09 20:59:26 +0200493
4942009-10-15 Roland McGrath <roland@redhat.com>
495
496 * libdw_form.c (__libdw_form_val_len): Grok DW_FORM_sec_offset,
Josh Stonecc93cc42009-08-21 18:04:44 -0700497 DW_FORM_exprloc, DW_FORM_flag_present, and DW_FORM_ref_sig8.
498
4992009-09-17 Roland McGrath <roland@redhat.com>
500
Roland McGrath08277ba2009-08-10 15:08:08 -0700501 * dwarf_getlocation.c (dwarf_getlocation_implicit_value): Make OP
502 argument a pointer to const.
503 * libdw.h: Update decl.
504
Roland McGrathebfb6482009-08-09 15:40:52 -07005052009-09-10 Roland McGrath <roland@redhat.com>
506
507 * dwarf_getlocation.c (store_implicit_value): New function.
508 (__libdw_intern_expression): Use it, handle DW_OP_implicit_value.
509 (dwarf_getlocation_implicit_value): New function.
510 * libdw.h: Declare it.
511 * libdw.map (ELFUTILS_0.143): Add it.
512
5132009-09-09 Mark Wielaard <mjw@redhat.com>
514
515 * dwarf_getcfi.c (dwarf_getcfi): Clear cfi->ebl.
516
5172009-08-21 Josh Stone <jistone@redhat.com>
518
Roland McGrathde69d522009-08-07 18:26:19 -0700519 * dwarf_hasattr_integrate.c: Integrate DW_AT_specification too.
520
5212009-08-10 Roland McGrath <roland@redhat.com>
522
523 * dwarf_getscopevar.c: Use dwarf_diename.
524
5252009-08-09 Roland McGrath <roland@redhat.com>
526
527 * libdw.map (ELFUTILS_0.143): New version set,
528 inherits from ELFUTILS_0.142.
Roland McGrathaf800142009-07-22 13:55:50 -0700529 * dwarf_arrayorder.c: Use OLD_VERSION and NEW_VERSION to define an
530 alias in the ELFUTILS_0.122 version set and the default in the new set.
531 * dwarf_srclang.c: Likewise.
532 * dwarf_decl_file.c: Likewise.
533 * dwarf_decl_line.c: Likewise.
534 * dwarf_decl_column.c: Likewise.
535 * dwarf_bytesize.c: Likewise.
536 * dwarf_bitsize.c: Likewise.
537 * dwarf_bitoffset.c: Likewise.
538
5392009-08-07 Roland McGrath <roland@redhat.com>
540
541 * dwarf_arrayorder.c: Use dwarf_attr_integrate.
542 * dwarf_srclang.c: Likewise.
543 * dwarf_decl_file.c: Likewise.
544 * dwarf_decl_line.c (__libdw_attr_intval): Likewise.
Roland McGrathe23e9e72009-07-21 18:14:52 -0700545 * dwarf_bytesize.c: Likewise.
546 * dwarf_bitsize.c: Likewise.
547 * dwarf_bitoffset.c: Likewise.
548
5492009-07-22 Roland McGrath <roland@redhat.com>
550
551 * dwarf_frame_cfa.c: Change calling convention.
552 * libdw.h: Update decl.
Roland McGrath96349ff2009-07-20 11:51:41 -0700553
554 * dwarf_frame_register.c: Change calling/return-value convention for
555 value-only results and undefined/same_value.
556 * libdw.h: Update decl.
557
Roland McGratha6abdfd2009-07-16 17:40:19 -0700558 * dwarf_getlocation.c (__libdw_intern_expression): Take new bool
559 argument, append DW_OP_stack_value if set. Don't take NOPS argument,
Roland McGrathe160cc92009-07-16 17:48:27 -0700560 return that value instead.
561 (getlocation): Update caller.
562 * dwarf_frame_cfa.c: Likewise.
563 * libdwP.h: Update decl.
564
Roland McGratha6abdfd2009-07-16 17:40:19 -07005652009-07-21 Roland McGrath <roland@redhat.com>
566
567 * dwarf_getsrc_file.c: Ignore a CU that just has no DW_AT_stmt_list.
568 Fix loop iteration after skipping a bogus or useless CU.
569
570 * dwarf_entry_breakpoints.c: Handle 0 dwarf_errno () as harmless
571 absence, not DWARF_E_NO_DEBUG_LINE.
Roland McGrath7dd94642009-07-15 11:14:23 -0700572
5732009-07-20 Roland McGrath <roland@redhat.com>
574
575 * dwarf_getlocation.c (__libdw_intern_expression):
576 Handle DW_OP_stack_value.
Roland McGrath80893432009-07-13 12:08:55 -0700577
5782009-07-16 Roland McGrath <roland@redhat.com>
579
580 * dwarf_formudata.c (__libdw_formptr): Handle DW_FORM_sec_offset,
Roland McGrathcfdd86e2009-07-08 13:15:07 -0700581 reject others when CU's version > 3.
582
Roland McGrath3c84db32009-06-24 17:41:40 -0700583 * dwarf_formflag.c: Handle DW_FORM_flag_present.
584
585 * dwarf.h: Add DW_OP_{implicit,stack}_value from DWARF 4 draft.
586 Also DW_TAG_type_unit and DW_TAG_rvalue_reference_type.
587 Also DW_AT_signature, DW_AT_main_subprogram, DW_AT_data_bit_offset,
588 and DW_AT_const_expr.
589 Also DW_FORM_sec_offset, DW_FORM_exprloc, DW_FORM_flag_present,
590 and DW_FORM_ref_sig8.
591
5922009-07-15 Roland McGrath <roland@redhat.com>
593
594 * dwarf_getlocation.c: Grok DW_OP_form_tls_address,
595 DW_OP_GNU_push_tls_address, and DW_OP_bit_piece.
596
5972009-07-13 Roland McGrath <roland@redhat.com>
598
599 * dwarf_getlocation.c: Grok DW_OP_call_frame_cfa.
600
6012009-07-08 Roland McGrath <roland@redhat.com>
602
603 * libdw.map (ELFUTILS_0.142): Add dwfl_module_dwarf_cfi,
604 dwfl_module_eh_cfi.
605
606 * libdwP.h (struct Dwarf): Add member `cfi'.
607 * dwarf_end.c (dwarf_end): Call __libdw_destroy_frame_cache on it.
608 * dwarf_getcfi.c: New file.
609 * dwarf_getcfi_elf.c: New file.
610 * dwarf_cfi_end.c: New file.
611 * dwarf_cfi_addrframe.c: New file.
612 * dwarf_frame_cfa.c: New file.
613 * dwarf_frame_register.c: New file.
614 * dwarf_frame_return_address_register.c: New file.
615 * Makefile.am (libdw_a_SOURCES): Add them.
616 * unwind.h: Declare those functions.
617 * libdw.map (ELFUTILS_0.142): Export them.
618
619 * dwarf_getlocation.c (__libdw_intern_expression): New function,
620 broken out of ...
621 (getlocation): ... here, call it.
622 * libdwP.h: Declare it.
623
624 * cie.c: New file.
625 * fde.c: New file.
626 * frame-cache.c: New file.
627 * cfi.c: New file.
628 * cfi.h: New file.
629 * encoded-value.h: New file.
630 * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
631 * libdwP.h: Add DWARF_E_INVALID_CFI to errors enum.
632 * dwarf_error.c (errmsgs): Add element for it.
633
634 * dwarf_next_cfi.c: New file.
635 * Makefile.am (libdw_a_SOURCES): Add it.
Roland McGrath6e1f4652009-07-08 14:48:34 -0700636 * libdw.h (Dwarf_CIE, Dwarf_FDE, Dwarf_CIE_Entry): New types.
637 Declare dwarf_next_cfi.
Roland McGrathcfdd86e2009-07-08 13:15:07 -0700638 * libdw.map (ELFUTILS_0.142): New set, inherits from ELFUTILS_0.136.
639 Add dwarf_next_cfi.
640
641 * memory-access.h [! ALLOW_UNALIGNED]
Roland McGrath05c4e042009-06-18 13:56:02 -0700642 (read_2ubyte_unaligned): Renamed to ...
643 (read_2ubyte_unaligned_1): ... this. Take bool rather than Dwarf *.
644 (read_2ubyte_unaligned): Define as macro passing dbg->other_byte_order.
645 (read_2sbyte_unaligned): Likewise.
646 (read_4ubyte_unaligned): Likewise.
647 (read_4sbyte_unaligned): Likewise.
648 (read_8ubyte_unaligned): Likewise.
649 (read_8sbyte_unaligned): Likewise.
650
Ulrich Drepper99d23722009-06-14 20:19:45 -0700651 * libdwP.h (IDX_eh_frame): Remove it.
652 * dwarf_begin_elf.c (dwarf_scnnames): Remove its element.
653
6542009-07-08 Roland McGrath <roland@redhat.com>
655
656 * libdwP.h (struct Dwarf_Line_s): Reorder members to pack better.
657
658 * dwarf_getlocation.c (check_constant_offset): New function.
659 (dwarf_getlocation, dwarf_getlocation_addr): Call it to
660 handle DW_AT_data_member_location of data[48] as constant offset.
661
6622009-06-18 Roland McGrath <roland@redhat.com>
663
664 * libdwP.h (__libdw_read_address_inc): Constify.
665 (__libdw_read_offset_inc): Likewise.
666 * dwarf_getaranges.c: Likewise.
667 * dwarf_getlocation.c: Likewise.
668 * dwarf_getsrclines.c: Likewise.
669 * dwarf_nextcu.c: Likewise.
670
6712009-05-05 Petr Machata <pmachata@redhat.com>
672
673 * libdwP.h (__libdw_formptr): Declare new function.
674 * dwarf_formudata.c: Implement it here.
675 * dwarf_getlocation.c (dwarf_getlocation_addr):
676 Call it instead of hand-rolled offset handling code.
677 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
678 * dwarf_ranges.c (dwarf_ranges): Likewise.
679
6802009-05-04 Petr Machata <pmachata@redhat.com>
681
682 * libdwP.h (__libdw_read_begin_end_pair_inc): Declare new function.
683 * dwarf_ranges.c: Implement it here.
684 (dwarf_ranges): Call it.
Roland McGrathe2eabd82009-05-07 18:54:52 -0700685 * dwarf_getlocation.c (dwarf_getlocation_addr): Call it also here.
686
6872009-04-23 Petr Machata <pmachata@redhat.com>
688
689 * dwarf_formaddr.c (dwarf_formaddr): Call __libdw_read_* instead
690 of read_*ubyte_unaligned.
Petr Machataf3df61f2009-05-07 21:02:33 +0200691 * dwarf_formref_die.c (dwarf_formref_die): Likewise.
692 * dwarf_formstring.c (dwarf_formstring): Likewise.
693 * dwarf_formudate.c (dwarf_formudata): Likewise.
694 * dwarf_getaranges.c (dwarf_getaranges): Likewise.
695 * dwarf_getlocation.c (dwarf_getlocation_addr): Likewise.
Roland McGrath2fb90512009-04-15 14:47:13 -0700696 * dwarf_getpubnames.c (get_offsets): Likewise.
697 * dwarf_nextcu.c (dwarf_nextcu): Likewise.
698
6992009-04-23 Petr Machata <pmachata@redhat.com>
700
Roland McGrath6a4bdd92009-04-01 14:25:29 -0700701 * libdwP.h (__libdw_read_addr_inc, __libdw_read_off_inc,
702 __libdw_read_addr, __libdw_read_off): Add four new internal
703 functions.
704
Roland McGrathc5acb302009-01-28 18:28:52 -08007052009-05-07 Roland McGrath <roland@redhat.com>
706
Roland McGrath03288f02009-01-28 22:00:54 -0800707 * dwarf_getmacros.c (dwarf_getmacros): Use absolute section offset in
708 return value and OFFSET argument, not CU-relative. Only fetch the
709 attribute data when called with OFFSET of 0.
Roland McGrathc5acb302009-01-28 18:28:52 -0800710
7112009-05-07 Petr Machata <pmachata@redhat.com>
Roland McGrathf46272a2009-01-26 18:36:16 -0800712
713 * dwarf_getmacros.c (dwarf_getmacros): Take into account offset in
714 DW_AT_macro_info attribute of CU DIE.
715
Roland McGrathd31505f2009-01-25 19:37:33 -08007162009-04-15 Roland McGrath <roland@redhat.com>
717
718 * dwarf.h (DW_CIE_ID): Removed.
719 (DW_CIE_ID_32, DW_CIE_ID_64): New constants replace it.
Roland McGrath3bf7a092009-01-23 16:34:07 -0800720
7212009-04-01 Roland McGrath <roland@redhat.com>
722
723 * dwarf.h: Add DW_CFA_GNU_negative_offset_extended.
724
Roland McGrathafdd51e2009-01-22 02:26:24 -08007252009-01-28 Roland McGrath <roland@redhat.com>
726
727 * libdwP.h (struct Dwarf_Line_s): Move out of struct Dwarf_Lines_s
728 defn so C++ doesn't scope the name to not match the Dwarf_Line typedef.
Roland McGrath1ea4fdc2009-01-21 19:14:37 -0800729
730 * libdwP.h (struct Dwarf_Files_s): Replace dbg field with cu field.
731
7322009-01-26 Roland McGrath <roland@redhat.com>
733
734 * dwarf_ranges.c: Return 0 when no ranges or *_pc attrs at all.
Roland McGrath24b03302009-01-17 14:34:13 -0800735
7362009-01-25 Roland McGrath <roland@redhat.com>
Roland McGrath54456d82009-01-17 14:39:35 -0800737
738 * dwarf_getattrs.c: Correctly skip attribute values when restarting.
739
Roland McGrath5513e642009-01-11 01:35:11 -08007402009-01-23 Roland McGrath <roland@redhat.com>
741
742 * Makefile.am ($(srcdir)/known-dwarf.h): Target renamed back.
743 Put these rules under if MAINTAINER_MODE.
744
7452009-01-22 Roland McGrath <roland@redhat.com>
746
Roland McGrath24b03302009-01-17 14:34:13 -0800747 * dwarf.h: Add DW_OP_GNU_encoded_addr.
748
Ulrich Drepper7e678fa2009-01-10 18:02:05 -08007492009-01-21 Roland McGrath <roland@redhat.com>
750
751 * Makefile.am (CLEANFILES): Renamed to ...
752 (MOSTLYCLEANFILES): ... here.
Roland McGrathe06762c2009-01-08 13:39:08 -0800753 (CLEANFILES): New variable, add known-dwarf.h.
754
7552009-01-17 Roland McGrath <roland@redhat.com>
756
Roland McGrath7e827f22009-01-06 02:09:50 -0800757 * Makefile.am (known-dwarf.h): Target renamed, not in $(srcdir).
Roland McGrath1f6d2012008-12-31 00:21:04 -0800758 Make it unconditional.
759 (BUILT_SOURCES): Updated.
760
761 * dwarf.h: Add description comments for DW_LANG_* values.
Roland McGrathbca43152009-01-05 23:59:32 -0800762
763 * Makefile.am [MAINTAINER_MODE]
764 ($(srcdir)/known-dwarf.h): New target.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800765 (BUILT_SOURCES): Add it.
766
Roland McGrathc462c632009-01-06 01:04:31 -0800767 * dwarf.h: Add DW_OP_GNU_push_tls_address, DW_OP_GNU_uninit.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800768
7692009-01-10 Ulrich Drepper <drepper@redhat.com>
770
771 * dwarf_error.c: Always use __thread. Remove all !USE_TLS code.
Roland McGrathb4d6f0f2008-08-25 22:55:17 +0000772
7732009-01-08 Roland McGrath <roland@redhat.com>
774
775 * Makefile.am (libdw.so): Don't depend on $(zip_LIBS), just link it in.
776
Ulrich Drepper8d358d92008-01-22 06:34:31 +00007772008-01-06 Roland McGrath <roland@redhat.com>
778
779 * libdwP.h (struct Dwarf_Abbrev): Change type of 'has_children' to bool.
780 Reorder members.
781 * dwarf_haschildren.c: Return -1 for error case, not 0.
782
783 * Makefile.am (libdw.so): Link in $(zip_LIBS).
784
Ulrich Drepperb27ce002008-01-18 20:08:54 +00007852009-01-06 Ulrich Drepper <drepper@redhat.com>
786
787 * dwarf.h: Add definition for unwind and call frame information.
788
789 * memory-access.h: Define read_ubyte_unaligned, read_sbyte_unaligned,
Ulrich Drepper35f08c42008-01-18 19:59:08 +0000790 read_ubyte_unaligned_inc, and read_sbyte_unaligned_inc.
791
7922008-08-15 Roland McGrath <roland@redhat.com>
793
794 * libdw.map (ELFUTILS_0.136): New version set, inherits from
795 ELFUTILS_0.130. Add dwfl_addrsegment, dwfl_report_segment.
796
7972008-01-21 Ulrich Drepper <drepper@redhat.com>
798
799 * dwarf_child.c: Minor optimizations.
800 * dwarf_getattrs.c: Likewise.
801 * dwarf_getpubnames.c: Likewise.
802 * dwarf_siblingof.c: Likewise.
Ulrich Dreppera969d8e2008-01-22 06:15:00 +0000803 * dwarf_tag.c: Likewise.
Ulrich Drepper35f08c42008-01-18 19:59:08 +0000804
8052008-01-18 Ulrich Drepper <drepper@redhat.com>
806
807 * dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match
808 of DWARF_VERSION comparison, just fail if the file's version is newer.
809
8102008-01-17 Nick Clifton <nickc@redhat.com>
811
812 * dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define.
813 (DWARF3_LENGTH_MAX_ESCAPE_CODE): New define.
814 (DWARF3_LENGTH_64_BIT): New define.
815 * dwarf_getaranges (dwarf_getaranges): Use the new definitions.
816 * dwarf_getpubnames: Include dwarf.h.
817 (get_offsets): Use the new definitions.
818 * dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions.
819 * dwarf_nextcu.c: Include dwarf.h. Correct comment.
820 (dwarf_nextcu): Use the new definitions.
821
822 * libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro.
823 * dwarf_diecu.c (dwarf_diecu): Use the new macro.
824 * dwarf_getaranges (dwarf_getaranges): Use the new macro.
825 * dwarf_nextcu.c (dwarf_nextcu): Use the new macro.
826
827 * dwarf_getpubnames (get_offsets): Replace assertion with test and
828 error return.
829
830 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE.
831
832 * dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer.
833 Set the address in the return structure to the address of the next
834 non-sibling die, if there is no sibling and the return pointer is
835 not the same as the die pointer.
Ulrich Dreppere219f1c2008-01-09 05:49:49 +0000836 * libdw.h: Expand the description of the dwarf_siblingof prototype.
837
838 * dwarf_child.c: Fix typo in comment.
839
840 * libdwP.h (DWARF_VERSION): Change to 3.
841
Roland McGrathe4c22ea2007-10-23 13:07:39 +0000842 * dwarf_formref.c (__libdw_formref.c): Handle attributes which do
843 not have a initialised valp pointer.
844
845 * dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when
846 the end of the attributes is reached. When the callback fails,
847 return the address of the failing attribute, not the address of
848 its successor.
849 * libdw.h: Expand the description of the dwarf_getattrs prototype.
850
851 * dwarf_child.c (__libdw_find_attr): Use the new definition.
852 (dwarf_child): Likewise.
853 * dwarf_tag.c (__libdw_findabbrev): Likewise.
854 (dwarf_tag): Likewise.
855
8562008-01-08 Roland McGrath <roland@redhat.com>
857
858 * Makefile.am (euinclude): Variable removed.
859 (pkginclude_HEADERS): Set this instead of euinclude_HEADERS.
860 (libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir).
Ulrich Drepperb597dfa2007-10-16 05:21:27 +0000861
8622007-10-17 Roland McGrath <roland@redhat.com>
863
864 * libdw.h (__deprecated_attribute__): New macro.
865 (dwarf_formref): Mark it deprecated.
866 * dwarf_formref.c (__libdw_formref): New function, broken out of ...
867 (dwarf_formref): ... here. Call it. Remove INTDEF.
Roland McGrath59ea7f32007-10-04 08:50:09 +0000868 * libdwP.h: Remove INTDECL.
869 Declare __libdw_formref.
870 * dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead.
871 * dwarf_formref_die.c: Likewise. Handle DW_FORM_ref_addr here.
872
873 * libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result,
874 needs to check CU->version.
875
Roland McGrath057ec6b2007-10-02 20:55:05 +0000876 * libdwP.h (struct Dwarf_CU): New member `version'.
877 * libdw_findcu.c (__libdw_findcu): Initialize it.
878
879 * dwarf_child.c: Return 1 for null entry as first child.
880
Roland McGrathd1a48172007-08-07 19:51:01 +00008812007-10-05 Roland McGrath <roland@redhat.com>
882
883 * dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections.
884
885 * libdw.h (__extern_inline): Rename to __libdw_extern_inline.
886 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses.
887
8882007-10-03 Roland McGrath <roland@redhat.com>
889
890 * libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf
891 and dwfl_build_id_find_debuginfo.
Roland McGrath87d47802007-07-16 22:23:37 +0000892
893 * libdw.map (ELFUTILS_0.130): New version set, inherits from
894 ELFUTILS_0.127. Add dwfl_module_build_id, dwfl_module_report_build_id.
895
8962007-10-02 Roland McGrath <roland@redhat.com>
Roland McGrath43da9892007-04-16 23:13:37 +0000897
898 * libdw_visit_scopes.c (classify_die): Return walk for class_type and
899 structure_type.
900
Roland McGrathbf2ee482007-04-05 09:27:36 +00009012007-08-07 Roland McGrath <roland@redhat.com>
902
Roland McGrath43da9892007-04-16 23:13:37 +0000903 * dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when
904 error code is DWARF_E_NOERROR (0).
905
906 * dwarf_getscopes.c (pc_record): Always bail early if DIE->prune.
907 Fix typo in __libdw_visit_scopes argument.
908
909 * dwarf_getscopes.c (pc_match): Check dwarf_haspc error return,
910 swallow DWARF_E_NO_DEBUG_RANGES but not other errors.
911
9122007-07-03 Roland McGrath <roland@redhat.com>
Roland McGrathbf2ee482007-04-05 09:27:36 +0000913
914 * libdw.h (__extern_inline): New macro.
915 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it.
916
Ulrich Drepperc07fbb32007-03-30 19:14:59 +00009172007-04-16 Roland McGrath <roland@redhat.com>
918
919 * libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section.
920
9212007-04-05 Roland McGrath <roland@redhat.com>
922
923 * dwarf_getsrcdirs.c: New file.
924 * Makefile.am (libdw_a_SOURCES): Add it.
Ulrich Drepper6258e742007-03-13 06:22:40 +0000925 * libdw.h: Declare dwarf_getsrcdirs.
926 * libdw.map (ELFUTILS_0.127): Add it.
927
928 * libdwP.h (struct Dwarf_Files_s): New member ndirs.
929 * dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to
930 zero before we use it to check for DWARF_E_INVALID_DIR_IDX.
931 Save DIRARRAY in the Dwarf_Files.
932
933 * dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN
Ulrich Drepper903c1162007-02-15 19:40:37 +0000934 address to check for all-ones base address entry. Check directly.
935 Reported by Sébastien Dugué <sebastien.dugue@bull.net>.
936
9372007-03-25 Roland McGrath <roland@redhat.com>
Ulrich Drepperaa915fd2007-02-05 07:25:33 +0000938
939 * dwarf_begin_elf.c (check_section): Return Dwarf * instead of void.
940 Return NULL when freeing RESULT on error.
941 (global_read, scngrp_read): Check return value from check_section,
942 break out of loop after it has freed RESULT.
943 (valid_p): Handle null argument.
944
Roland McGrath8190db62006-12-17 23:56:51 +00009452007-03-12 Roland McGrath <roland@redhat.com>
946
947 * libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add.
948
9492007-03-04 Roland McGrath <roland@redhat.com>
Roland McGrathc373d852006-10-10 00:25:21 +0000950
951 * libdw.map (ELFUTILS_0.127): New version set, inherits from
952 ELFUTILS_0.126. Add dwfl_module_addrsym.
953
9542007-02-10 Roland McGrath <roland@redhat.com>
955
956 * dwarf.h (DW_OP_fbreg): Comment fix.
957
9582007-02-03 Roland McGrath <roland@redhat.com>
959
960 * dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf.
961 * libdw.map (ELFUTILS_0.126): New version set, inherits from
Ulrich Drepper077c65f2006-07-12 19:54:51 +0000962 ELFUTILS_0.122. Move dwarf_getelf there; it was never truly
963 exported in the past.
964
9652006-12-17 Roland McGrath <roland@redhat.com>
966
967 * dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base
968 address when the CU is missing attributes due to buggy GCC.
969
Ulrich Dreppere1812e12006-07-12 07:46:03 +00009702006-08-29 Roland McGrath <roland@redhat.com>
971
972 * Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).
973
974 * libdw.h (dwarf_diecu): Add __nonnull_attribute__.
975 (dwarf_child): Don't list arg 1 in __nonnull_attribute__.
976
Ulrich Drepper3be74472006-05-27 18:15:40 +0000977 * libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure
978 result is aligned. Adjust NEWP->remaining here for this allocation.
979 * libdwP.h: Update decl.
980 (libdw_alloc): Update caller.
Ulrich Dreppere7a73172006-05-22 18:16:45 +0000981
9822006-07-12 Ulrich Drepper <drepper@redhat.com>
983
984 * dwarf_child.c: Adjust for internal_function_def removal.
985 * dwarf_getabbrev.c: Likewise.
Ulrich Drepper4f3d2a22006-05-22 01:30:56 +0000986 * dwarf_tag.c: Likewise.
987 * libdw_form.c: Likewise.
988 * memory-access.c: Likewise.
989
9902006-06-28 Roland McGrath <roland@redhat.com>
Roland McGrath2dade662006-02-28 22:13:20 +0000991
992 * libdw.map: Export dwfl_linecu, dwfl_line_comp_dir.
993
994 * libdw.map: Bump to 0.122; export dwfl_module_getsymtab and
995 dwfl_module_getsym.
996
Roland McGrath08333122006-02-27 04:54:26 +00009972006-05-27 Ulrich Drepper <drepper@redhat.com>
998
999 * libdw.h: Add extern "C".
1000
Roland McGrath50ffcbf2005-12-23 01:51:43 +000010012006-05-22 Ulrich Drepper <drepper@redhat.com>
1002
1003 * dwarf_getaranges.c (dwarf_getaranges): Handle files without
1004 aranges information.
Roland McGrathdec3a242005-12-12 08:35:55 +00001005
10062006-05-21 Ulrich Drepper <drepper@redhat.com>
1007
1008 * libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs,
1009 dwarf_haschildren.
Roland McGrathf64a4422005-12-09 23:40:30 +00001010
10112006-02-28 Roland McGrath <roland@redhat.com>
1012
1013 * dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*,
1014 DW_OP_* values, to match DWARF 3.0. Add new DW_DS_*, DW_END_*
1015 values from DWARF 3.0.
Roland McGrath994b4892005-12-05 22:46:21 +00001016
10172006-02-22 Roland McGrath <roland@redhat.com>
1018
1019 * libdw.map: Bump to 0.120; export dwfl_version.
Roland McGrathe47ab762005-11-17 03:16:00 +00001020
10212005-12-22 Roland McGrath <roland@redhat.com>
1022
1023 * libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report.
1024
10252005-12-12 Roland McGrath <roland@redhat.com>
1026
1027 * dwarf_ranges.c: Copy CU base address-finding code from
Roland McGrath07d4f2f2005-10-28 06:56:24 +00001028 dwarf_getlocation.
1029
10302005-12-09 Roland McGrath <roland@redhat.com>
1031
1032 * dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys.
1033 Delay CU base lookup until it's needed.
1034 If CU base lookup fails with no error, flag invalid DWARF.
1035
10362005-11-25 Roland McGrath <roland@redhat.com>
1037
1038 * libdw.map: Bump to 0.118; export dwfl_module_register_names.
1039
Roland McGrath6724c902005-10-28 07:07:19 +000010402005-11-15 Roland McGrath <roland@redhat.com>
1041
1042 * Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic.
1043
10442005-11-13 Roland McGrath <roland@redhat.com>
1045
1046 * libdw.map: Bump to 0.117; export dwfl_module_return_value_location.
1047
10482005-10-27 Roland McGrath <roland@redhat.com>
1049
1050 * dwarf_entry_breakpoints.c (search_range): Fix binary search code;
1051 don't match end_sequence markers.
1052
1053 * dwarf_getsrclines.c (compare_lines): Sort end_sequence markers
1054 before normal records at the same address.
1055 * dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence
1056 marker.
1057
10582005-10-26 Roland McGrath <roland@redhat.com>
1059
1060 * dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func.
1061 * dwarf_func_file.c: Renamed to ...
1062 * dwarf_decl_file.c: ... here.
1063 * dwarf_func_col.c: Renamed to ...
1064 * dwarf_decl_column.c: ... here.
1065 * dwarf_func_line.c: Renamed to ...
1066 * dwarf_decl_line.c: ... here.
1067 (dwarf_func_line): Renamed to ...
1068 (dwarf_decl_line): ... this. Take a Dwarf_Die * argument.
1069 (__libdw_func_intval): Renamed __libdw_attr_intval.
1070 * dwarf_func_name.c: File removed.
1071 * dwarf_func_lowpc.c: File removed.
1072 * dwarf_func_highpc.c: File removed.
1073 * dwarf_func_entrypc.c: File removed.
1074 * dwarf_func_die.c: File removed.
1075 * Makefile.am (libdw_a_SOURCES): Updated.
1076 * libdw.h: Update decls.
1077 (Dwarf_Func): Type removed.
1078 * libdwP.h: Update decls.
Roland McGrath07d4f2f2005-10-28 06:56:24 +00001079 (struct Dwarf_Func_s): Type removed.
1080 * libdw.map: Updated.
1081
1082 * libdwP.h (CUDIE): New macro.
1083 * dwarf_getlocation.c (dwarf_getlocation_addr): Use it.
1084 * dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
1085 * dwarf_ranges.c (dwarf_ranges): Likewise.
1086
1087 * dwarf_getloclist.c: Renamed to ...
1088 * dwarf_getlocation.c: ... here.
1089 (getloclist): Renamed to getlocation.
1090 (dwarf_getloclist): Renamed to dwarf_getlocation.
1091 (dwarf_addrloclists): Renamed to dwarf_getlocation_addr.
1092 * Makefile.am (libdw_a_SOURCES): Updated.
1093 * libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation.
1094 (dwarf_addrloclists): Renamed dwarf_getlocation_addr.
1095 (Dwarf_Loc): Renamed Dwarf_Op.
1096 * libdwP.h (struct loc_s): Update use.
1097 * libdw.map: Update map.
1098
1099 * dwarf_entry_breakpoints.c: Use the second line record within the
1100 function, regardless of its source location data.
1101
11022005-10-25 Roland McGrath <roland@redhat.com>
1103
1104 * dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too.
1105
1106 * libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints.
1107
11082005-10-14 Roland McGrath <roland@redhat.com>
1109
1110 * dwarf_diecu.c (dwarf_diecu): New file.
1111 * Makefile.am (libdw_a_SOURCES): Add it.
1112 * libdw.h: Declare dwarf_diecu.
1113 * libdw.map: Export it.
1114
1115 * libdw.map: Bump to 0.116; export dwarf_ranges.
1116
11172005-09-20 Roland McGrath <roland@redhat.com>
1118
1119 * dwarf_haspc.c: Use dwarf_ranges.
1120 * dwarf_entry_breakpoints.c: Likewise.
1121
1122 * dwarf_ranges.c: New file.
1123 * Makefile.am (libdw_a_SOURCES): Add it.
1124 * libdw.h: Declare dwarf_ranges.
1125 * libdwP.h: Add INTDECL.
1126
Ulrich Drepperfbe998a2005-08-29 16:27:10 +000011272005-09-14 Roland McGrath <roland@redhat.com>
1128
1129 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in
1130 prologue_end marker scanning loop.
1131
11322005-09-11 Roland McGrath <roland@redhat.com>
Roland McGrath71e15a02005-08-27 10:33:26 +00001133
1134 * dwarf.h: Comment typo fix.
1135
11362005-09-07 Roland McGrath <roland@redhat.com>
1137
1138 * dwarf_entry_breakpoints.c: New file.
1139 * Makefile.am (libdw_a_SOURCES): Add it.
1140 * libdw.h: Declare dwarf_entry_breakpoints.
1141
1142 * dwarf_entrypc.c: New file.
1143 * Makefile.am (libdw_a_SOURCES): Add it.
1144 * libdw.h: Declare dwarf_entrypc.
1145 * libdwP.h: Add INTDECL.
1146
11472005-08-28 Ulrich Drepper <drepper@redhat.com>
1148
1149 * Makefile.am: Use $(LINK) not $(CC) when creating DSO.
1150 (%.os): Use COMPILE.os.
1151 (COMPILE.os): Filter out gconv options.
1152
11532005-08-27 Roland McGrath <roland@redhat.com>
1154
Roland McGrathd17fac72005-08-23 08:20:21 +00001155 * dwarf_getscopes.c (dwarf_getscopes): Rewritten using
1156 __libdw_visit_scopes.
1157
1158 * dwarf_getscopes_die.c: New file.
1159 * Makefile.am (libdw_a_SOURCES): Add it.
1160 * libdw.h: Declare dwarf_getscopes_die.
1161 * libdw.map: Bump to 0.115 and add it.
1162
1163 * libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct
1164 containing a DIE and its parent pointer, instead of just Dwarf_Die.
1165 Take two functions for both preorder and postorder visitors.
1166 * libdwP.h: Update decl.
1167 (struct Dwarf_Die_Chain): New type.
1168 * dwarf_func_inline.c: Update uses.
1169
1170 * dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate.
1171 Add INTDEF.
Roland McGrathf5fda7d2005-08-18 22:01:57 +00001172 * libdwP.h: Add INTDECL.
1173 * dwarf_func_name.c (dwarf_func_name): Use dwarf_diename.
1174
11752005-08-23 Roland McGrath <roland@redhat.com>
1176
Roland McGrath1ecb6062005-08-15 09:53:04 +00001177 * dwarf_attr_integrate.c (dwarf_attr_integrate): Treat
1178 DW_AT_specification the same as DW_AT_abstract_origin.
1179
11802005-08-20 Roland McGrath <roland@redhat.com>
1181
1182 * libdw.map: Add dwfl_cumodule, remove dwfl_linecu.
1183 Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address,
1184 and dwfl_report_offline.
1185
11862005-08-19 Roland McGrath <roland@redhat.com>
1187
1188 * libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes.
Roland McGrath1c83bf12005-08-11 07:03:55 +00001189 Add dwfl_module_relocate_address, dwfl_module_relocations,
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +00001190 dwfl_module_relocation_info.
Roland McGrath1c83bf12005-08-11 07:03:55 +00001191
11922005-08-18 Roland McGrath <roland@redhat.com>
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +00001193
Roland McGrath4959bf82005-08-09 10:31:08 +00001194 * dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as
1195 outermost scope in the results.
Roland McGrathb6312e12005-08-09 10:36:01 +00001196
11972005-08-15 Roland McGrath <roland@redhat.com>
Roland McGrath4959bf82005-08-09 10:31:08 +00001198
1199 * dwarf_func_inline.c: New file.
1200 * Makefile.am (libdw_a_SOURCES): Add it.
1201 * libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances.
Roland McGratha5a89682005-08-02 01:24:01 +00001202 * libdw.map: Add them.
1203
1204 * dwarf_func_die.c: New file.
1205 * Makefile.am (libdw_a_SOURCES): Add it.
1206 * libdw.h: Declare dwarf_func_die.
Ulrich Drepper18618fd2005-07-28 21:29:22 +00001207 * libdw.map: Add it. Bump version to ELFUTILS_0.114.
1208
12092005-08-10 Ulrich Drepper <drepper@redhat.com>
1210
1211 * dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming
Roland McGrath366784a2005-07-28 06:20:53 +00001212 of DW_LNS_set_epilog_begin.
1213
Roland McGrath18385902005-07-28 07:12:38 +000012142005-08-09 Roland McGrath <roland@redhat.com>
1215
1216 * dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin.
1217
1218 * dwarf_end.c: Add INTDEF.
1219 * dwarf_error.c (dwarf_errmsg): Likewise.
Roland McGrath366784a2005-07-28 06:20:53 +00001220 * libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs.
1221
12222005-08-01 Roland McGrath <roland@redhat.com>
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00001223
1224 * dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset.
1225 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
1226
12272005-07-28 Ulrich Drepper <drepper@redhat.com>
1228
1229 * Makefile.am (libdw.so): No need to link with libeu.a anymore.
1230 (libdw_a_LIBADD): Add all files from libdwfl.a.
1231
12322005-07-27 Roland McGrath <roland@redhat.com>
1233
1234 * Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in,
1235 along with ../libebl/libebl.a and ../lib/libeu.a;
1236 depend on ../libelf/libelf.so.
1237 (libdw_so_LDADD): New variable.
1238 * libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map.
1239
1240 * libdw.map: Define an empty base version and move all symbols to
1241 version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet.
1242
12432005-07-23 Ulrich Drepper <drepper@redhat.com>
1244
1245 * dwarf_error.c: Add internal alias for dwarf_errno.
1246 * libdwP.h: Declare __dwarf_errno_internal.
1247 * dwarf_getloclist.c: Use INTDEF for dwarf_errno.
1248
1249 * dwarf_error.c [USE_TLS]: Actually use __thread in definition of
1250 global_error.
1251
12522005-06-01 Roland McGrath <roland@redhat.com>
1253
1254 * dwarf_getaranges.c (dwarf_getaranges): Sort result array.
1255 * dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search.
1256
12572005-06-08 Roland McGrath <roland@redhat.com>
1258
1259 * memory-access.h (get_uleb128_step, get_uleb128): Remove casts.
1260 (get_sleb128_step, get_sleb128): Likewise.
1261 * dwarf_getattrs.c (dwarf_getattrs): Add consts.
1262 * dwarf_getloclist.c (getloclist): Likewise.
1263 * dwarf_formblock.c (dwarf_formblock): Likewise.
1264 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
1265 * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
1266 * dwarf_formref.c (dwarf_formref): Likewise.
1267 * dwarf_formsdata.c (dwarf_formsdata): Likewise.
1268 * dwarf_formudata.c (dwarf_formudata): Likewise.
1269 * dwarf_haschildren.c (dwarf_haschildren): Likewise.
1270 * dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise.
1271 * dwarf_tag.c (dwarf_tag): Likewise.
1272 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
1273 * memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise.
1274 * libdw_form.c (__libdw_form_val_len): Likewise.
1275 * libdwP.h: Update decl.
1276
12772005-06-04 Roland McGrath <roland@redhat.com>
1278
1279 * memory-access.h (get_uleb128_rest_return): New macro.
1280 [! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it.
1281 (get_sleb128_rest_return): New macro.
1282 [! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it.
1283 * memory-access.c: New file.
1284 * Makefile.am (libdw_a_SOURCES): Add it.
1285 (DEFS): Add -DIS_LIBDW.
1286
12872005-05-31 Roland McGrath <roland@redhat.com>
1288
1289 * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
1290 formref offset.
1291
12922005-05-30 Roland McGrath <roland@redhat.com>
1293
1294 * dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base
1295 address if DW_AT_low_pc is missing. Not to spec, but GCC generates it.
1296
1297 * dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte
1298 BEGIN value. Instead, match base address entries separately for
1299 32/64 size cases.
1300
13012005-05-28 Roland McGrath <roland@redhat.com>
1302
1303 * dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance
1304 past location expression contents.
1305
13062005-05-23 Roland McGrath <roland@redhat.com>
1307
1308 * dwarf_getsrclines.c: Comment typo fix.
1309
1310 * dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation.
1311 * dwarf_getloclist.c (dwarf_addrloclists): Likewise.
1312
13132005-05-22 Ulrich Drepper <drepper@redhat.com>
1314
1315 * libdwP.h: Only use INTDECL for alias prototypes.
1316
13172005-05-19 Roland McGrath <roland@redhat.com>
1318
1319 * dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too.
1320
1321 * dwarf_getscopevar.c: New file.
1322 * Makefile.am (libdw_a_SOURCES): Add it.
1323 * libdw.h: Declare dwarf_getscopevar.
1324
1325 * dwarf_getsrcfiles.c: Add INTDEF.
1326 * dwarf_haschildren.c: Likewise.
1327 * libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL.
1328
1329 * dwarf_getscopes.c: New file.
1330 * Makefile.am (libdw_a_SOURCES): Add it.
1331 * libdw.h: Declare dwarf_getscopes.
1332 * libdw.map: Add it.
1333
13342005-05-18 Roland McGrath <roland@redhat.com>
1335
1336 * libdwP.h (IDX_debug_ranges): New enum constant.
1337 * dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges".
1338 * libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant.
1339 * dwarf_error.c (errmsgs): Add it.
1340 * dwarf_haspc.c: New file.
1341 * libdw.h: Declare dwarf_haspc.
1342 * libdw.map: Add it.
1343 * libdwP.h: Add INTDECL.
1344
1345 * dwarf_attr_integrate.c: New file.
1346 * dwarf_hasattr_integrate.c: New file.
1347 * Makefile.am (libdw_a_SOURCES): Add them.
1348 * libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate.
1349 * libdw.map: Add them.
1350
1351 * dwarf_hasattr.c: Add INTDEF.
1352 * libdwP.h: Add INTDECL for it.
1353
1354 * dwarf_formref_die.c: New file.
1355 * Makefile.am (libdw_a_SOURCES): Add it.
1356 * libdw.h (dwarf_formref_die): Declare it.
1357 * libdwP.h (dwarf_formref_die): Add INTDECL.
1358 * libdw.map: Add it.
1359
1360 * dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out
1361 of ...
1362 (dwarf_getloclist): ... here. Call them.
1363 (dwarf_addrloclists): New function.
1364 * libdw.h: Declare it.
1365 * libdw.map: Add it.
1366
1367 * dwarf_getmacros.c (dwarf_getmacros): Don't bail at
1368 DW_MACINFO_end_file. Recognize type 0 as terminator.
1369
13702005-05-05 Roland McGrath <roland@redhat.com>
1371
1372 * dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search.
1373
1374 * dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since
1375 the line program does not produce all entries in ascending order.
1376
13772005-04-25 Ulrich Drepper <drepper@redhat.com>
1378
1379 * dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple
1380 occurences (e.g., inlines) better.
1381
13822005-04-24 Ulrich Drepper <drepper@redhat.com>
1383
1384 * libdw.h (DWARF_END_ABBREV): Define.
1385 * dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if
1386 end is reached.
1387 * dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end
1388 of records reached.
1389 * dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV
1390 as error of __libdw_getabbrev.
1391
13922005-04-04 Ulrich Drepper <drepper@redhat.com>
1393
1394 * dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization.
1395
1396 * dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of
1397 results back to caller.
1398
13992005-04-04 Roland McGrath <roland@redhat.com>
1400
1401 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL.
1402
1403 * dwarf_func_line.c (__libdw_func_intval): Use internal_function in
1404 defn.
1405
14062005-04-04 Ulrich Drepper <drepper@redhat.com>
1407
1408 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE.
1409
1410 * dwarf_getsrc_file.c: New file.
1411 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c.
1412 * libdw.h: Declare dwarf_getsrc_file.
1413 * libdw.map: Add dwarf_getsrc_file.
1414
14152005-04-02 Ulrich Drepper <drepper@redhat.com>
1416
1417 * dwarf_func_entrypc.c: New file.
1418 * dwarf_func_col.c: New file.
1419 * dwarf_func_line.c: New file.
1420 * dwarf_func_file.c: New file.
1421 * libdw.h: Add prototypes for new functions.
1422 * libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line,
1423 dwarf_func_file.
1424 * Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c,
1425 dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c.
1426 * libdwP.h (struct Dwarf_Func_s): Add cudie element.
1427 Declare __libdw_func_intval and __dwarf_formsdata_internal.
1428 * dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object.
1429 * dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs.
1430
1431 * dwarf.h: Add some DWARF3 definitions.
1432
14332005-04-01 Ulrich Drepper <drepper@redhat.com>
1434
1435 * dwarf_getfuncs.c: New file.
1436 * dwarf_func_highpc.c: New file.
1437 * dwarf_func_lowpc.c: New file.
1438 * dwarf_func_name.c: New file.
1439 * Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c,
1440 dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c.
1441 * libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc,
1442 and dwarf_func_name.
1443 * libdw.h: Add prototypes for new functions.
1444 * dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs.
1445 * dwarf_siblingof.c: Likewise.
1446 * dwarf_dieoffset.c: Likewise.
1447 * dwarf_highpc.c: Likewise.
1448 * dwarf_lowpc.c: Likewise.
1449 * libdwP.h: Add prototypes for internal functions.
1450 Define Dwarf_Func_s structure.
1451
14522005-03-29 Ulrich Drepper <drepper@redhat.com>
1453
1454 * libdw.h: Add padding in Dwarf_die.
1455
1456 * dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs.
1457 * dwarf_attr.c: Likewise.
1458 * dwarf_begin.c: Likewise.
1459 * dwarf_begin_elf.c: Likewise.
1460 * dwarf_bitoffset.c: Likewise.
1461 * dwarf_bitsize.c: Likewise.
1462 * dwarf_bytesize.c: Likewise.
1463 * dwarf_diename.c: Likewise.
1464 * dwarf_formaddr.c: Likewise.
1465 * dwarf_formblock.c: Likewise.
1466 * dwarf_formref.c: Likewise.
1467 * dwarf_formstring.c: Likewise.
1468 * dwarf_formudata.c: Likewise.
1469 * dwarf_getarange_addr.c: Likewise.
1470 * dwarf_getarangeinfo.c: Likewise.
1471 * dwarf_getaranges.c: Likewise.
1472 * dwarf_getloclist.c: Likewise.
1473 * dwarf_getmacros.c: Likewise.
1474 * dwarf_getsrc_die.c: Likewise.
1475 * dwarf_getsrcfiles.c: Likewise.
1476 * dwarf_getsrclines.c: Likewise.
1477 * dwarf_highpc.c: Likewise.
1478 * dwarf_lowpc.c: Likewise.
1479 * dwarf_nextcu.c: Likewise.
1480 * dwarf_offdie.c: Likewise.
1481 * dwarf_siblingof.c: Likewise.
1482 * dwarf_srclang.c: Likewise.
1483 * dwarf_tag.c: Likewise.
1484 * libdw_findcu.c: Likewise.
1485 * libdwP.h: Add prototypes for internal functions.
1486
1487 * dwarf_addrdie.c: New file.
1488 * dwarf_macro_opcode.c: New file.
1489 * dwarf_macro_param1.c: New file.
1490 * dwarf_macro_param2.c: New file.
1491 * libdw.h: Add declarations. Move Dwarf_Macro definition to libdwP.h.
1492 * libdwP.h: Remove Dwarf_Macro definition.
1493 * Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c,
1494 dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c.
1495 * libdw.map: Add entries for new functions.
1496
14972005-03-21 Ulrich Drepper <drepper@redhat.com>
1498
1499 * libdw.h: Handle broken gcc < 4.
1500
15012005-02-15 Ulrich Drepper <drepper@redhat.com>
1502
1503 * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
1504
1505 * dwarf_begin_elf.c: Fix warnings.
1506 * dwarf_dieoffset.c: Likewise.
1507 * dwarf_end.c: Likewise.
1508 * dwarf_error.c: Likewise.
1509 * dwarf_getpubnames.c: Likewise.
1510
1511 * libdwP.h: Add new error values.
1512 * dwarf_error.c: Support new error values.
1513 * dwarf_getpubnames.c: Check parameter value.
1514
15152005-02-05 Ulrich Drepper <drepper@redhat.com>
1516
1517 * Makefile.am: Check for text relocations in constructed DSO.
1518
1519 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.
1520
15212005-02-04 Ulrich Drepper <drepper@redhat.com>
1522
1523 * dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary
1524 checks to not read over buffer boundaries for ill-formed DWARF data.
1525
15262004-09-25 Ulrich Drepper <drepper@redhat.com>
1527
1528 * dwarf_child.c: Make compile with gcc 4.0.
1529 * dwarf_error.c: Likewise.
1530 * dwarf_formblock.c: Likewise.
1531 * dwarf_getabbrev.c: Likewise.
1532 * dwarf_getattrs.c: Likewise.
1533 * dwarf_getsrclines.c: Likewise.
1534 * dwarf_tag.c: Likewise.
1535 * libdw_form.c: Likewise.
1536
15372004-01-20 Ulrich Drepper <drepper@redhat.com>
1538
1539 * Makefile.am: Support building with mudflap.
1540
1541 * dwarf_getloclist.c: Fix warnings gcc 3.4 spits out.
1542 * dwarf_getsrclines.c: Likewise.
1543 * dwarf_memory-access.h: Likewise.
1544
15452004-01-19 Ulrich Drepper <drepper@redhat.com>
1546
1547 * dwarf_getsrcfiles.c: Third parameter can be NULL.
1548
1549 * libdw.h: Define Dwarf_macro. Declare dwarf_getmacros.
1550 Third parameter of dwarf_getsrcfiles can be NULL.
1551
1552 * libdw.map: Add dwarf_getmacros.
1553 * Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros.
1554 * dwarf_getmacros.c: New file.
1555
15562004-01-18 Ulrich Drepper <drepper@redhat.com>
1557
1558 * libdw.h: Second parameter of dwarf_getaranges can be NULL.
1559
1560 * dwarf_nextcu.c: Return -1 if dwarf parameter is NULL.
1561
1562 * dwarf_getsrclines.c:
1563 Use read_2ubyte_unaligned_inc instead of _inc-less variant.
1564
1565 * dwarf_getaranges.c: Allow naranges parameter to be NULL.
1566
1567 * libdwP.h (_): Use elfutils domain.
1568
1569 * dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction.
1570
1571 * dwarf_getsrclines.c: Fix typo in comment.
1572
15732004-01-17 Ulrich Drepper <drepper@redhat.com>
1574
1575 * Makefile.am: Support building with mudflap.
1576
15772004-01-16 Ulrich Drepper <drepper@redhat.com>
1578
1579 * memory-access.h: Add lots of const in case a pointer passed is const.
1580
1581 * dwarf_formflag.c: New file.
1582 * dwarf_getattrs.c: New file.
1583 * dwarf_error.c: Add new error value.
1584 * libdw.h: Add prototypes for new functions. Adjust prototype for
1585 dwarf_getpubnames.
1586 * libdw.map: Add new functions.
1587 * dwarf_getpubnames.c: Change type of return value and fourth parameter
1588 to ptrdiff_t.
1589 * libdwP.h: Add new error value.
1590 * Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and
1591 dwarf_formflag.c.
1592
1593 * dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL.
1594
15952004-01-12 Ulrich Drepper <drepper@redhat.com>
1596
1597 * dwarf_getarange_addr.c: New file
1598 * dwarf_getarangeinfo.c: New file.
1599 * dwarf_getaranges.c: New file.
1600 * dwarf_onerange.c: New file.
1601 * libdw.h: Declare new functions. Define Dwarf_Arange and
1602 Dwarf_Aranges.
1603 * libdw.map: Add new functions.
1604 * libdwP.h: Add new errors. Add aranges member to struct Dwarf.
1605 Define Dwarf_Aranges_s and Dwarf_Arange_s.
1606 * Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c,
1607 dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c.
1608 * dwarf_error.c: Add new message.
1609
16102004-01-11 Ulrich Drepper <drepper@redhat.com>
1611
1612 * Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c,
1613 dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c,
1614 dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c.
1615 * dwarf_error.c: Add another message.
1616 * dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines
1617 introduction.
1618 * dwarf_filesrc.c: Likewise.
1619 * dwarf_getsrcfiles.c: Likewise.
1620 * dwarf_getsrclines.c: Likewise.
1621 * dwarf_lineaddr.c: New file.
1622 * dwarf_linebeginstatement.c: New file.
1623 * dwarf_lineblock.c: New file.
1624 * dwarf_linecol.c: New file.
1625 * dwarf_lineendsequence.c: New file.
1626 * dwarf_lineepiloguebegin.c: New file.
1627 * dwarf_lineno.c: New file.
1628 * dwarf_lineprologueend.c: New file.
1629 * dwarf_onesrcline.c: New file.
1630 * dwarf_lineno.c: Change interface to store result in object pointed
1631 to by second parameter.
1632 * libdw.h: Add prototypes for new functions. Change dwarf_lineno
1633 prototype. Define Dwarf_Files and Dwarf_Lines.
1634 * libdw.map: Add new functions.
1635 * libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s.
1636 * libdw_findcu.c: Don't initialize nlines field.
1637
1638 * dwarf_siblingof: Little optimization.
1639
1640 * dwarf_begin.c: Remember that the ELF descriptor must be closed.
1641 * dwarf_end.c: Close ELF descriptor if free_elf is set.
1642 * libdwP.h (struct Dwarf): Add free_elf field.
1643
1644 * Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and
1645 dwarf_offabbrev.c.
1646 * dwarf_getstring.c: New file.
1647 * dwarf_offabbrev.c: New file.
1648 * libdw.map: Add dwarf_getstring and dwarf_offabbrev.
1649 * dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result
1650 parameters. Don't allocate memory if not necessary and don't lookup
1651 previous results if no CU given.
1652 (dwarf_getabbrev): Adjust call to __libdw_getabbrev.
1653 * dwarf_tag.c: Adjust call to __libdw_getabbrev.
1654 * libdw.h: Declare dwarf_offabbrev and dwarf_getstring.
1655 * libdwP.h: Change prototype for __libdw_getabbrev.
1656
1657 * dwarf_getabbrevattr.c: Add offsetp parameter. Fill in before
1658 returning if this is wanted.
1659
16602004-01-09 Ulrich Drepper <drepper@redhat.com>
1661
1662 * dwarf_nextcu.c: Add new parameter offset_sizep. Initialize it
1663 with offset_size value.
1664 * libdw.h: Adjust dwarf_nextcu prototype.
1665 * libdwP.h (struct Dwarf_CU): Add offset_size member.
1666 * libdw_findcu.c: Adjust dwarf_nextcu call. Initialize offset_size
1667 member of new CU struct.
1668 * dwarf_formstring.c: Depend on offset_size not address_size for
1669 DW_FORM_strp handling.
1670 * dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr.
1671
1672 * dwarf_tag.c (__libdw_findabbrev): Return correct value for
1673 failing lookup.
1674 (dwarf_tag): Correctly recognize failed lookup.
1675
1676 * dwarf_end.c (cu_free): Call tdestroy for locs member. Use new
1677 function noop_free.
1678 * dwarf_error.c: Add message for DWARF_E_NO_BLOCK.
1679 * dwarf_formblock.c: New file.
1680 * dwarf_getloclist.c: Rewrite to handle a single block.
1681 * libdw.h: Define Dwarf_Block. Rename Dwarf_Loc members. Remove
1682 Dwarf_Locdesc definition. Declare dwarf_formblock. Remove
1683 dwarf_getloclistent declaration.
1684 * libdw.map: Add dwarf_formblock, remove dwarf_getloclistent.
1685 * libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK.
1686 Add locs member to struct Dwarf_CU.
1687 * libdw_fundcu.c: Initialize locs member of new CU.
1688 * Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c.
1689 Remove dwarf_getloclistent.c.
1690
16912004-01-07 Ulrich Drepper <drepper@redhat.com>
1692
1693 * libdw.h: Use __nonnull__ attribute only for gcc >= 3.3.
1694 * libdwP.h: Likewise.
1695
1696 * dwarf_getloclist.c: New file.
1697 * dwarf_getloclistent.c: New file.
1698 * libdw.h: Define Dwarf_Loc and Dwarf_Locdesc.
1699 Declare dwarf_getloclistent and dwarf_getloclist.
1700 * libdw.map: Add dwarf_getloclistent and dwarf_getloclist.
1701 * libdwP.h: Define DWARF_E_NO_LOCLIST.
1702 * Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and
1703 dwarf_getloclist.c.
1704
1705 * dwarf_error.c: More error messages.
1706
17072004-01-06 Ulrich Drepper <drepper@redhat.com>
1708
1709 * dwarf_getsrclines.c: Remove debugging support.
1710
1711 * dwarf_getsrcfiles.c: New file.
1712 * dwarf_filesrc.c: New file.
1713 * libdw.h: Declare these functions. Define Dwarf_File.
1714 * libdwP.c: Adjust Dwarf_File_s definition.
1715 * libdw.map: Add these functions.
1716 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and
1717 dwarf_filesrc.c.
1718 * dwarf_getsrclines.c: Initialize cu->files.
1719
17202004-01-05 Ulrich Drepper <drepper@redhat.com>
1721
1722 * libdw.h: Add more nonnull function attributes.
1723
1724 * dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next.
1725 * dwarf_end.c (cu_free): New function.
1726 (dwarf_end): Also free CU tree. Correct freeing of memory blocks.
1727 * dwarf_error.c (errmsgs): Add new messages.
1728 * dwarf_getsrc_die.c: New file.
1729 * dwarf_getsrclines.c: New file.
1730 * dwarf_lineno.c: New file.
1731 * dwarf_linesrc.c: New file.
1732 * dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc
1733 instead of the *_inc-less variants.
Ulrich Drepper6fb34512010-05-28 20:28:04 -07001734 * libdw.h: Define Dwarf_Line. Add some function attributes. Declare
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00001735 dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc.
1736 * libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno,
1737 and dwarf_linesrc.
1738 * libdwP.h: Add more error codes.
1739 (struct Dwarf): Remove mem_tail.next member.
1740 (Dwarf_File): Define type.
1741 (struct Dwarf_Line_s): Define type.
1742 (struct Dwarf_CU): Add lines and nlines members.
1743 (libdw_alloc): Define local variable _tail and use it.
1744 Add some function attributes.
1745 * libdw_alloc.c (__libdw_allocate): Don't initialize next member.
1746 * libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members.
1747 * memory-access.h: Add unlikely for the endian conversion paths.
1748 * Makefile.am (AM_CFLAGS): Add -std parameter.
1749 (libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die,
1750 dwarf_lineno, and dwarf_linesrc.
1751
17522003-08-11 Ulrich Drepper <drepper@redhat.com>
1753
1754 * Moved to CVS archive.