blob: f04880b55629c8a5c198dee2a1e01ac3cd760820 [file] [log] [blame]
Roland McGrath96349ff2009-07-20 11:51:41 -070012009-07-20 Roland McGrath <roland@redhat.com>
2
3 * dwarf_getlocation.c (__libdw_intern_expression):
4 Handle DW_OP_stack_value.
5
Roland McGratha6abdfd2009-07-16 17:40:19 -070062009-07-16 Roland McGrath <roland@redhat.com>
7
Roland McGrathe160cc92009-07-16 17:48:27 -07008 * dwarf_formudata.c (__libdw_formptr): Handle DW_FORM_sec_offset,
9 reject others when CU's version > 3.
10
11 * dwarf_formflag.c: Handle DW_FORM_flag_present.
12
Roland McGratha6abdfd2009-07-16 17:40:19 -070013 * dwarf.h: Add DW_OP_{implicit,stack}_value from DWARF 4 draft.
14 Also DW_TAG_type_unit and DW_TAG_rvalue_reference_type.
15 Also DW_AT_signature, DW_AT_main_subprogram, DW_AT_data_bit_offset,
16 and DW_AT_const_expr.
17 Also DW_FORM_sec_offset, DW_FORM_exprloc, DW_FORM_flag_present,
18 and DW_FORM_ref_sig8.
19
Roland McGrath7dd94642009-07-15 11:14:23 -0700202009-07-15 Roland McGrath <roland@redhat.com>
21
22 * dwarf_getlocation.c: Grok DW_OP_form_tls_address,
23 DW_OP_GNU_push_tls_address, and DW_OP_bit_piece.
24
Roland McGrath80893432009-07-13 12:08:55 -0700252009-07-13 Roland McGrath <roland@redhat.com>
26
27 * dwarf_getlocation.c: Grok DW_OP_call_frame_cfa.
28
Roland McGrathcfdd86e2009-07-08 13:15:07 -0700292009-07-08 Roland McGrath <roland@redhat.com>
30
Roland McGrath3c84db32009-06-24 17:41:40 -070031 * libdw.map (ELFUTILS_0.142): Add dwfl_module_dwarf_cfi,
32 dwfl_module_eh_cfi.
33
34 * libdwP.h (struct Dwarf): Add member `cfi'.
35 * dwarf_end.c (dwarf_end): Call __libdw_destroy_frame_cache on it.
36 * dwarf_getcfi.c: New file.
37 * dwarf_getcfi_elf.c: New file.
38 * dwarf_cfi_end.c: New file.
39 * dwarf_cfi_addrframe.c: New file.
40 * dwarf_frame_cfa.c: New file.
41 * dwarf_frame_register.c: New file.
42 * dwarf_frame_return_address_register.c: New file.
43 * Makefile.am (libdw_a_SOURCES): Add them.
44 * unwind.h: Declare those functions.
45 * libdw.map (ELFUTILS_0.142): Export them.
46
47 * dwarf_getlocation.c (__libdw_intern_expression): New function,
48 broken out of ...
49 (getlocation): ... here, call it.
50 * libdwP.h: Declare it.
51
52 * cie.c: New file.
53 * fde.c: New file.
54 * frame-cache.c: New file.
55 * cfi.c: New file.
56 * cfi.h: New file.
57 * encoded-value.h: New file.
58 * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them.
59 * libdwP.h: Add DWARF_E_INVALID_CFI to errors enum.
60 * dwarf_error.c (errmsgs): Add element for it.
61
62 * dwarf_next_cfi.c: New file.
63 * Makefile.am (libdw_a_SOURCES): Add it.
64 * libdw.h (Dwarf_CIE, Dwarf_FDE, Dwarf_CIE_Entry): New types.
65 Declare dwarf_next_cfi.
66 * libdw.map (ELFUTILS_0.142): New set, inherits from ELFUTILS_0.136.
67 Add dwarf_next_cfi.
68
69 * memory-access.h [! ALLOW_UNALIGNED]
70 (read_2ubyte_unaligned): Renamed to ...
71 (read_2ubyte_unaligned_1): ... this. Take bool rather than Dwarf *.
72 (read_2ubyte_unaligned): Define as macro passing dbg->other_byte_order.
73 (read_2sbyte_unaligned): Likewise.
74 (read_4ubyte_unaligned): Likewise.
75 (read_4sbyte_unaligned): Likewise.
76 (read_8ubyte_unaligned): Likewise.
77 (read_8sbyte_unaligned): Likewise.
78
79 * libdwP.h (IDX_eh_frame): Remove it.
80 * dwarf_begin_elf.c (dwarf_scnnames): Remove its element.
81
822009-07-08 Roland McGrath <roland@redhat.com>
83
Roland McGrath6e1f4652009-07-08 14:48:34 -070084 * libdwP.h (struct Dwarf_Line_s): Reorder members to pack better.
85
Roland McGrathcfdd86e2009-07-08 13:15:07 -070086 * dwarf_getlocation.c (check_constant_offset): New function.
87 (dwarf_getlocation, dwarf_getlocation_addr): Call it to
88 handle DW_AT_data_member_location of data[48] as constant offset.
89
Roland McGrath05c4e042009-06-18 13:56:02 -0700902009-06-18 Roland McGrath <roland@redhat.com>
91
92 * libdwP.h (__libdw_read_address_inc): Constify.
93 (__libdw_read_offset_inc): Likewise.
94 * dwarf_getaranges.c: Likewise.
95 * dwarf_getlocation.c: Likewise.
96 * dwarf_getsrclines.c: Likewise.
97 * dwarf_nextcu.c: Likewise.
98
Ulrich Drepper99d23722009-06-14 20:19:45 -0700992009-05-05 Petr Machata <pmachata@redhat.com>
100
101 * libdwP.h (__libdw_formptr): Declare new function.
102 * dwarf_formudata.c: Implement it here.
103 * dwarf_getlocation.c (dwarf_getlocation_addr):
104 Call it instead of hand-rolled offset handling code.
105 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
106 * dwarf_ranges.c (dwarf_ranges): Likewise.
107
1082009-05-04 Petr Machata <pmachata@redhat.com>
109
110 * libdwP.h (__libdw_read_begin_end_pair_inc): Declare new function.
111 * dwarf_ranges.c: Implement it here.
112 (dwarf_ranges): Call it.
113 * dwarf_getlocation.c (dwarf_getlocation_addr): Call it also here.
114
1152009-04-23 Petr Machata <pmachata@redhat.com>
116
117 * dwarf_formaddr.c (dwarf_formaddr): Call __libdw_read_* instead
118 of read_*ubyte_unaligned.
119 * dwarf_formref_die.c (dwarf_formref_die): Likewise.
120 * dwarf_formstring.c (dwarf_formstring): Likewise.
121 * dwarf_formudate.c (dwarf_formudata): Likewise.
122 * dwarf_getaranges.c (dwarf_getaranges): Likewise.
123 * dwarf_getlocation.c (dwarf_getlocation_addr): Likewise.
124 * dwarf_getpubnames.c (get_offsets): Likewise.
125 * dwarf_nextcu.c (dwarf_nextcu): Likewise.
126
1272009-04-23 Petr Machata <pmachata@redhat.com>
128
129 * libdwP.h (__libdw_read_addr_inc, __libdw_read_off_inc,
130 __libdw_read_addr, __libdw_read_off): Add four new internal
131 functions.
132
Roland McGrathe2eabd82009-05-07 18:54:52 -07001332009-05-07 Roland McGrath <roland@redhat.com>
134
135 * dwarf_getmacros.c (dwarf_getmacros): Use absolute section offset in
136 return value and OFFSET argument, not CU-relative. Only fetch the
137 attribute data when called with OFFSET of 0.
138
Petr Machataf3df61f2009-05-07 21:02:33 +02001392009-05-07 Petr Machata <pmachata@redhat.com>
140
141 * dwarf_getmacros.c (dwarf_getmacros): Take into account offset in
142 DW_AT_macro_info attribute of CU DIE.
143
Roland McGrath2fb90512009-04-15 14:47:13 -07001442009-04-15 Roland McGrath <roland@redhat.com>
145
146 * dwarf.h (DW_CIE_ID): Removed.
147 (DW_CIE_ID_32, DW_CIE_ID_64): New constants replace it.
148
Roland McGrath6a4bdd92009-04-01 14:25:29 -07001492009-04-01 Roland McGrath <roland@redhat.com>
150
151 * dwarf.h: Add DW_CFA_GNU_negative_offset_extended.
152
Roland McGrathc5acb302009-01-28 18:28:52 -08001532009-01-28 Roland McGrath <roland@redhat.com>
154
Roland McGrath03288f02009-01-28 22:00:54 -0800155 * libdwP.h (struct Dwarf_Line_s): Move out of struct Dwarf_Lines_s
156 defn so C++ doesn't scope the name to not match the Dwarf_Line typedef.
157
Roland McGrathc5acb302009-01-28 18:28:52 -0800158 * libdwP.h (struct Dwarf_Files_s): Replace dbg field with cu field.
159
Roland McGrathf46272a2009-01-26 18:36:16 -08001602009-01-26 Roland McGrath <roland@redhat.com>
161
162 * dwarf_ranges.c: Return 0 when no ranges or *_pc attrs at all.
163
Roland McGrathd31505f2009-01-25 19:37:33 -08001642009-01-25 Roland McGrath <roland@redhat.com>
165
166 * dwarf_getattrs.c: Correctly skip attribute values when restarting.
167
Roland McGrath3bf7a092009-01-23 16:34:07 -08001682009-01-23 Roland McGrath <roland@redhat.com>
169
170 * Makefile.am ($(srcdir)/known-dwarf.h): Target renamed back.
171 Put these rules under if MAINTAINER_MODE.
172
Roland McGrathafdd51e2009-01-22 02:26:24 -08001732009-01-22 Roland McGrath <roland@redhat.com>
174
175 * dwarf.h: Add DW_OP_GNU_encoded_addr.
176
Roland McGrath1ea4fdc2009-01-21 19:14:37 -08001772009-01-21 Roland McGrath <roland@redhat.com>
178
179 * Makefile.am (CLEANFILES): Renamed to ...
180 (MOSTLYCLEANFILES): ... here.
181 (CLEANFILES): New variable, add known-dwarf.h.
182
Roland McGrath24b03302009-01-17 14:34:13 -08001832009-01-17 Roland McGrath <roland@redhat.com>
184
Roland McGrath54456d82009-01-17 14:39:35 -0800185 * Makefile.am (known-dwarf.h): Target renamed, not in $(srcdir).
186 Make it unconditional.
187 (BUILT_SOURCES): Updated.
Roland McGrath5513e642009-01-11 01:35:11 -0800188
189 * dwarf.h: Add description comments for DW_LANG_* values.
190
191 * Makefile.am [MAINTAINER_MODE]
192 ($(srcdir)/known-dwarf.h): New target.
193 (BUILT_SOURCES): Add it.
194
Roland McGrath24b03302009-01-17 14:34:13 -0800195 * dwarf.h: Add DW_OP_GNU_push_tls_address, DW_OP_GNU_uninit.
196
Ulrich Drepper7e678fa2009-01-10 18:02:05 -08001972009-01-10 Ulrich Drepper <drepper@redhat.com>
198
199 * dwarf_error.c: Always use __thread. Remove all !USE_TLS code.
200
Roland McGrathe06762c2009-01-08 13:39:08 -08002012009-01-08 Roland McGrath <roland@redhat.com>
202
203 * Makefile.am (libdw.so): Don't depend on $(zip_LIBS), just link it in.
204
Roland McGrath7e827f22009-01-06 02:09:50 -08002052008-01-06 Roland McGrath <roland@redhat.com>
Roland McGrath1f6d2012008-12-31 00:21:04 -0800206
207 * libdwP.h (struct Dwarf_Abbrev): Change type of 'has_children' to bool.
208 Reorder members.
209 * dwarf_haschildren.c: Return -1 for error case, not 0.
Roland McGrathbca43152009-01-05 23:59:32 -0800210
211 * Makefile.am (libdw.so): Link in $(zip_LIBS).
212
Ulrich Drepperac194d02009-01-06 00:30:01 -08002132009-01-06 Ulrich Drepper <drepper@redhat.com>
214
Roland McGrathc462c632009-01-06 01:04:31 -0800215 * dwarf.h: Add definition for unwind and call frame information.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800216
217 * memory-access.h: Define read_ubyte_unaligned, read_sbyte_unaligned,
218 read_ubyte_unaligned_inc, and read_sbyte_unaligned_inc.
219
Roland McGrathb4d6f0f2008-08-25 22:55:17 +00002202008-08-15 Roland McGrath <roland@redhat.com>
221
222 * libdw.map (ELFUTILS_0.136): New version set, inherits from
223 ELFUTILS_0.130. Add dwfl_addrsegment, dwfl_report_segment.
224
Ulrich Drepper8d358d92008-01-22 06:34:31 +00002252008-01-21 Ulrich Drepper <drepper@redhat.com>
226
227 * dwarf_child.c: Minor optimizations.
228 * dwarf_getattrs.c: Likewise.
229 * dwarf_getpubnames.c: Likewise.
230 * dwarf_siblingof.c: Likewise.
231 * dwarf_tag.c: Likewise.
232
Ulrich Drepperb27ce002008-01-18 20:08:54 +00002332008-01-18 Ulrich Drepper <drepper@redhat.com>
234
235 * dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match
236 of DWARF_VERSION comparison, just fail if the file's version is newer.
237
Ulrich Drepper35f08c42008-01-18 19:59:08 +00002382008-01-17 Nick Clifton <nickc@redhat.com>
239
240 * dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define.
241 (DWARF3_LENGTH_MAX_ESCAPE_CODE): New define.
242 (DWARF3_LENGTH_64_BIT): New define.
243 * dwarf_getaranges (dwarf_getaranges): Use the new definitions.
244 * dwarf_getpubnames: Include dwarf.h.
245 (get_offsets): Use the new definitions.
246 * dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions.
247 * dwarf_nextcu.c: Include dwarf.h. Correct comment.
248 (dwarf_nextcu): Use the new definitions.
249
250 * libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro.
Ulrich Dreppera969d8e2008-01-22 06:15:00 +0000251 * dwarf_diecu.c (dwarf_diecu): Use the new macro.
Ulrich Drepper35f08c42008-01-18 19:59:08 +0000252 * dwarf_getaranges (dwarf_getaranges): Use the new macro.
253 * dwarf_nextcu.c (dwarf_nextcu): Use the new macro.
254
255 * dwarf_getpubnames (get_offsets): Replace assertion with test and
256 error return.
257
258 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE.
259
260 * dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer.
261 Set the address in the return structure to the address of the next
262 non-sibling die, if there is no sibling and the return pointer is
263 not the same as the die pointer.
264 * libdw.h: Expand the description of the dwarf_siblingof prototype.
265
266 * dwarf_child.c: Fix typo in comment.
267
268 * libdwP.h (DWARF_VERSION): Change to 3.
269
270 * dwarf_formref.c (__libdw_formref.c): Handle attributes which do
271 not have a initialised valp pointer.
272
273 * dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when
274 the end of the attributes is reached. When the callback fails,
275 return the address of the failing attribute, not the address of
276 its successor.
277 * libdw.h: Expand the description of the dwarf_getattrs prototype.
278
279 * dwarf_child.c (__libdw_find_attr): Use the new definition.
280 (dwarf_child): Likewise.
281 * dwarf_tag.c (__libdw_findabbrev): Likewise.
282 (dwarf_tag): Likewise.
283
Ulrich Dreppere219f1c2008-01-09 05:49:49 +00002842008-01-08 Roland McGrath <roland@redhat.com>
285
286 * Makefile.am (euinclude): Variable removed.
287 (pkginclude_HEADERS): Set this instead of euinclude_HEADERS.
288 (libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir).
289
Roland McGrathe4c22ea2007-10-23 13:07:39 +00002902007-10-17 Roland McGrath <roland@redhat.com>
291
292 * libdw.h (__deprecated_attribute__): New macro.
293 (dwarf_formref): Mark it deprecated.
294 * dwarf_formref.c (__libdw_formref): New function, broken out of ...
295 (dwarf_formref): ... here. Call it. Remove INTDEF.
296 * libdwP.h: Remove INTDECL.
297 Declare __libdw_formref.
298 * dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead.
299 * dwarf_formref_die.c: Likewise. Handle DW_FORM_ref_addr here.
300
301 * libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result,
302 needs to check CU->version.
303
304 * libdwP.h (struct Dwarf_CU): New member `version'.
305 * libdw_findcu.c (__libdw_findcu): Initialize it.
306
307 * dwarf_child.c: Return 1 for null entry as first child.
308
Ulrich Drepperb597dfa2007-10-16 05:21:27 +00003092007-10-05 Roland McGrath <roland@redhat.com>
310
311 * dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections.
312
313 * libdw.h (__extern_inline): Rename to __libdw_extern_inline.
314 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses.
315
Roland McGrath59ea7f32007-10-04 08:50:09 +00003162007-10-03 Roland McGrath <roland@redhat.com>
317
318 * libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf
319 and dwfl_build_id_find_debuginfo.
320
321 * libdw.map (ELFUTILS_0.130): New version set, inherits from
322 ELFUTILS_0.127. Add dwfl_module_build_id, dwfl_module_report_build_id.
323
Roland McGrath057ec6b2007-10-02 20:55:05 +00003242007-10-02 Roland McGrath <roland@redhat.com>
325
326 * libdw_visit_scopes.c (classify_die): Return walk for class_type and
327 structure_type.
328
Roland McGrathd1a48172007-08-07 19:51:01 +00003292007-08-07 Roland McGrath <roland@redhat.com>
330
331 * dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when
332 error code is DWARF_E_NOERROR (0).
333
334 * dwarf_getscopes.c (pc_record): Always bail early if DIE->prune.
335 Fix typo in __libdw_visit_scopes argument.
336
337 * dwarf_getscopes.c (pc_match): Check dwarf_haspc error return,
338 swallow DWARF_E_NO_DEBUG_RANGES but not other errors.
339
Roland McGrath87d47802007-07-16 22:23:37 +00003402007-07-03 Roland McGrath <roland@redhat.com>
341
342 * libdw.h (__extern_inline): New macro.
343 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it.
344
Roland McGrath43da9892007-04-16 23:13:37 +00003452007-04-16 Roland McGrath <roland@redhat.com>
346
347 * libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section.
348
Roland McGrathbf2ee482007-04-05 09:27:36 +00003492007-04-05 Roland McGrath <roland@redhat.com>
350
Roland McGrath43da9892007-04-16 23:13:37 +0000351 * dwarf_getsrcdirs.c: New file.
352 * Makefile.am (libdw_a_SOURCES): Add it.
353 * libdw.h: Declare dwarf_getsrcdirs.
354 * libdw.map (ELFUTILS_0.127): Add it.
355
356 * libdwP.h (struct Dwarf_Files_s): New member ndirs.
357 * dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to
358 zero before we use it to check for DWARF_E_INVALID_DIR_IDX.
359 Save DIRARRAY in the Dwarf_Files.
360
Roland McGrathbf2ee482007-04-05 09:27:36 +0000361 * dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN
362 address to check for all-ones base address entry. Check directly.
363 Reported by Sébastien Dugué <sebastien.dugue@bull.net>.
364
Ulrich Drepperc07fbb32007-03-30 19:14:59 +00003652007-03-25 Roland McGrath <roland@redhat.com>
366
367 * dwarf_begin_elf.c (check_section): Return Dwarf * instead of void.
368 Return NULL when freeing RESULT on error.
369 (global_read, scngrp_read): Check return value from check_section,
370 break out of loop after it has freed RESULT.
371 (valid_p): Handle null argument.
372
Ulrich Drepper6258e742007-03-13 06:22:40 +00003732007-03-12 Roland McGrath <roland@redhat.com>
374
375 * libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add.
376
3772007-03-04 Roland McGrath <roland@redhat.com>
378
379 * libdw.map (ELFUTILS_0.127): New version set, inherits from
380 ELFUTILS_0.126. Add dwfl_module_addrsym.
381
Ulrich Drepper903c1162007-02-15 19:40:37 +00003822007-02-10 Roland McGrath <roland@redhat.com>
383
384 * dwarf.h (DW_OP_fbreg): Comment fix.
385
Ulrich Drepperaa915fd2007-02-05 07:25:33 +00003862007-02-03 Roland McGrath <roland@redhat.com>
387
388 * dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf.
389 * libdw.map (ELFUTILS_0.126): New version set, inherits from
390 ELFUTILS_0.122. Move dwarf_getelf there; it was never truly
391 exported in the past.
392
Roland McGrath8190db62006-12-17 23:56:51 +00003932006-12-17 Roland McGrath <roland@redhat.com>
394
395 * dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base
396 address when the CU is missing attributes due to buggy GCC.
397
Roland McGrathc373d852006-10-10 00:25:21 +00003982006-08-29 Roland McGrath <roland@redhat.com>
399
400 * Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).
401
402 * libdw.h (dwarf_diecu): Add __nonnull_attribute__.
403 (dwarf_child): Don't list arg 1 in __nonnull_attribute__.
404
405 * libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure
406 result is aligned. Adjust NEWP->remaining here for this allocation.
407 * libdwP.h: Update decl.
408 (libdw_alloc): Update caller.
409
Ulrich Drepper077c65f2006-07-12 19:54:51 +00004102006-07-12 Ulrich Drepper <drepper@redhat.com>
411
412 * dwarf_child.c: Adjust for internal_function_def removal.
413 * dwarf_getabbrev.c: Likewise.
414 * dwarf_tag.c: Likewise.
415 * libdw_form.c: Likewise.
416 * memory-access.c: Likewise.
417
Ulrich Dreppere1812e12006-07-12 07:46:03 +00004182006-06-28 Roland McGrath <roland@redhat.com>
419
420 * libdw.map: Export dwfl_linecu, dwfl_line_comp_dir.
421
422 * libdw.map: Bump to 0.122; export dwfl_module_getsymtab and
423 dwfl_module_getsym.
424
Ulrich Drepper3be74472006-05-27 18:15:40 +00004252006-05-27 Ulrich Drepper <drepper@redhat.com>
426
427 * libdw.h: Add extern "C".
428
Ulrich Dreppere7a73172006-05-22 18:16:45 +00004292006-05-22 Ulrich Drepper <drepper@redhat.com>
430
431 * dwarf_getaranges.c (dwarf_getaranges): Handle files without
432 aranges information.
433
Ulrich Drepper4f3d2a22006-05-22 01:30:56 +00004342006-05-21 Ulrich Drepper <drepper@redhat.com>
435
436 * libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs,
437 dwarf_haschildren.
438
Roland McGrath2dade662006-02-28 22:13:20 +00004392006-02-28 Roland McGrath <roland@redhat.com>
440
441 * dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*,
442 DW_OP_* values, to match DWARF 3.0. Add new DW_DS_*, DW_END_*
443 values from DWARF 3.0.
444
Roland McGrath08333122006-02-27 04:54:26 +00004452006-02-22 Roland McGrath <roland@redhat.com>
446
447 * libdw.map: Bump to 0.120; export dwfl_version.
448
Roland McGrath50ffcbf2005-12-23 01:51:43 +00004492005-12-22 Roland McGrath <roland@redhat.com>
450
451 * libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report.
452
Roland McGrathdec3a242005-12-12 08:35:55 +00004532005-12-12 Roland McGrath <roland@redhat.com>
454
455 * dwarf_ranges.c: Copy CU base address-finding code from
456 dwarf_getlocation.
457
Roland McGrathf64a4422005-12-09 23:40:30 +00004582005-12-09 Roland McGrath <roland@redhat.com>
459
460 * dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys.
461 Delay CU base lookup until it's needed.
462 If CU base lookup fails with no error, flag invalid DWARF.
463
Roland McGrath994b4892005-12-05 22:46:21 +00004642005-11-25 Roland McGrath <roland@redhat.com>
465
466 * libdw.map: Bump to 0.118; export dwfl_module_register_names.
467
Roland McGrathe47ab762005-11-17 03:16:00 +00004682005-11-15 Roland McGrath <roland@redhat.com>
469
470 * Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic.
471
4722005-11-13 Roland McGrath <roland@redhat.com>
473
474 * libdw.map: Bump to 0.117; export dwfl_module_return_value_location.
475
Roland McGrath07d4f2f2005-10-28 06:56:24 +00004762005-10-27 Roland McGrath <roland@redhat.com>
477
478 * dwarf_entry_breakpoints.c (search_range): Fix binary search code;
479 don't match end_sequence markers.
480
481 * dwarf_getsrclines.c (compare_lines): Sort end_sequence markers
482 before normal records at the same address.
483 * dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence
484 marker.
485
4862005-10-26 Roland McGrath <roland@redhat.com>
487
Roland McGrath6724c902005-10-28 07:07:19 +0000488 * dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func.
489 * dwarf_func_file.c: Renamed to ...
490 * dwarf_decl_file.c: ... here.
491 * dwarf_func_col.c: Renamed to ...
492 * dwarf_decl_column.c: ... here.
493 * dwarf_func_line.c: Renamed to ...
494 * dwarf_decl_line.c: ... here.
495 (dwarf_func_line): Renamed to ...
496 (dwarf_decl_line): ... this. Take a Dwarf_Die * argument.
497 (__libdw_func_intval): Renamed __libdw_attr_intval.
498 * dwarf_func_name.c: File removed.
499 * dwarf_func_lowpc.c: File removed.
500 * dwarf_func_highpc.c: File removed.
501 * dwarf_func_entrypc.c: File removed.
502 * dwarf_func_die.c: File removed.
503 * Makefile.am (libdw_a_SOURCES): Updated.
504 * libdw.h: Update decls.
505 (Dwarf_Func): Type removed.
506 * libdwP.h: Update decls.
507 (struct Dwarf_Func_s): Type removed.
508 * libdw.map: Updated.
509
510 * libdwP.h (CUDIE): New macro.
511 * dwarf_getlocation.c (dwarf_getlocation_addr): Use it.
512 * dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
513 * dwarf_ranges.c (dwarf_ranges): Likewise.
514
515 * dwarf_getloclist.c: Renamed to ...
516 * dwarf_getlocation.c: ... here.
517 (getloclist): Renamed to getlocation.
518 (dwarf_getloclist): Renamed to dwarf_getlocation.
519 (dwarf_addrloclists): Renamed to dwarf_getlocation_addr.
520 * Makefile.am (libdw_a_SOURCES): Updated.
521 * libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation.
522 (dwarf_addrloclists): Renamed dwarf_getlocation_addr.
523 (Dwarf_Loc): Renamed Dwarf_Op.
524 * libdwP.h (struct loc_s): Update use.
525 * libdw.map: Update map.
526
Roland McGrath07d4f2f2005-10-28 06:56:24 +0000527 * dwarf_entry_breakpoints.c: Use the second line record within the
528 function, regardless of its source location data.
529
5302005-10-25 Roland McGrath <roland@redhat.com>
531
532 * dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too.
533
534 * libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints.
535
5362005-10-14 Roland McGrath <roland@redhat.com>
537
538 * dwarf_diecu.c (dwarf_diecu): New file.
539 * Makefile.am (libdw_a_SOURCES): Add it.
540 * libdw.h: Declare dwarf_diecu.
541 * libdw.map: Export it.
542
543 * libdw.map: Bump to 0.116; export dwarf_ranges.
544
5452005-09-20 Roland McGrath <roland@redhat.com>
546
547 * dwarf_haspc.c: Use dwarf_ranges.
548 * dwarf_entry_breakpoints.c: Likewise.
549
550 * dwarf_ranges.c: New file.
551 * Makefile.am (libdw_a_SOURCES): Add it.
552 * libdw.h: Declare dwarf_ranges.
553 * libdwP.h: Add INTDECL.
554
5552005-09-14 Roland McGrath <roland@redhat.com>
556
557 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in
558 prologue_end marker scanning loop.
559
5602005-09-11 Roland McGrath <roland@redhat.com>
561
562 * dwarf.h: Comment typo fix.
563
5642005-09-07 Roland McGrath <roland@redhat.com>
565
566 * dwarf_entry_breakpoints.c: New file.
567 * Makefile.am (libdw_a_SOURCES): Add it.
568 * libdw.h: Declare dwarf_entry_breakpoints.
569
570 * dwarf_entrypc.c: New file.
571 * Makefile.am (libdw_a_SOURCES): Add it.
572 * libdw.h: Declare dwarf_entrypc.
573 * libdwP.h: Add INTDECL.
574
Ulrich Drepperfbe998a2005-08-29 16:27:10 +00005752005-08-28 Ulrich Drepper <drepper@redhat.com>
576
577 * Makefile.am: Use $(LINK) not $(CC) when creating DSO.
578 (%.os): Use COMPILE.os.
579 (COMPILE.os): Filter out gconv options.
580
Roland McGrath71e15a02005-08-27 10:33:26 +00005812005-08-27 Roland McGrath <roland@redhat.com>
582
583 * dwarf_getscopes.c (dwarf_getscopes): Rewritten using
584 __libdw_visit_scopes.
585
586 * dwarf_getscopes_die.c: New file.
587 * Makefile.am (libdw_a_SOURCES): Add it.
588 * libdw.h: Declare dwarf_getscopes_die.
589 * libdw.map: Bump to 0.115 and add it.
590
591 * libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct
592 containing a DIE and its parent pointer, instead of just Dwarf_Die.
593 Take two functions for both preorder and postorder visitors.
594 * libdwP.h: Update decl.
595 (struct Dwarf_Die_Chain): New type.
596 * dwarf_func_inline.c: Update uses.
597
598 * dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate.
599 Add INTDEF.
600 * libdwP.h: Add INTDECL.
601 * dwarf_func_name.c (dwarf_func_name): Use dwarf_diename.
602
Roland McGrathd17fac72005-08-23 08:20:21 +00006032005-08-23 Roland McGrath <roland@redhat.com>
604
605 * dwarf_attr_integrate.c (dwarf_attr_integrate): Treat
606 DW_AT_specification the same as DW_AT_abstract_origin.
607
6082005-08-20 Roland McGrath <roland@redhat.com>
609
610 * libdw.map: Add dwfl_cumodule, remove dwfl_linecu.
611 Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address,
612 and dwfl_report_offline.
613
6142005-08-19 Roland McGrath <roland@redhat.com>
615
616 * libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes.
617 Add dwfl_module_relocate_address, dwfl_module_relocations,
618 dwfl_module_relocation_info.
619
Roland McGrathf5fda7d2005-08-18 22:01:57 +00006202005-08-18 Roland McGrath <roland@redhat.com>
621
622 * dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as
623 outermost scope in the results.
624
Roland McGrath1ecb6062005-08-15 09:53:04 +00006252005-08-15 Roland McGrath <roland@redhat.com>
626
627 * dwarf_func_inline.c: New file.
628 * Makefile.am (libdw_a_SOURCES): Add it.
629 * libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances.
630 * libdw.map: Add them.
631
632 * dwarf_func_die.c: New file.
633 * Makefile.am (libdw_a_SOURCES): Add it.
634 * libdw.h: Declare dwarf_func_die.
635 * libdw.map: Add it. Bump version to ELFUTILS_0.114.
636
Roland McGrath1c83bf12005-08-11 07:03:55 +00006372005-08-10 Ulrich Drepper <drepper@redhat.com>
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +0000638
Roland McGrath1c83bf12005-08-11 07:03:55 +0000639 * dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming
640 of DW_LNS_set_epilog_begin.
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +0000641
Roland McGrath4959bf82005-08-09 10:31:08 +00006422005-08-09 Roland McGrath <roland@redhat.com>
643
Roland McGrathb6312e12005-08-09 10:36:01 +0000644 * dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin.
645
Roland McGrath4959bf82005-08-09 10:31:08 +0000646 * dwarf_end.c: Add INTDEF.
647 * dwarf_error.c (dwarf_errmsg): Likewise.
648 * libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs.
649
Roland McGratha5a89682005-08-02 01:24:01 +00006502005-08-01 Roland McGrath <roland@redhat.com>
651
652 * dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset.
653 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
654
Ulrich Drepper18618fd2005-07-28 21:29:22 +00006552005-07-28 Ulrich Drepper <drepper@redhat.com>
656
657 * Makefile.am (libdw.so): No need to link with libeu.a anymore.
658 (libdw_a_LIBADD): Add all files from libdwfl.a.
659
Roland McGrath366784a2005-07-28 06:20:53 +00006602005-07-27 Roland McGrath <roland@redhat.com>
661
Roland McGrath18385902005-07-28 07:12:38 +0000662 * Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in,
663 along with ../libebl/libebl.a and ../lib/libeu.a;
664 depend on ../libelf/libelf.so.
665 (libdw_so_LDADD): New variable.
666 * libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map.
667
Roland McGrath366784a2005-07-28 06:20:53 +0000668 * libdw.map: Define an empty base version and move all symbols to
669 version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet.
670
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00006712005-07-23 Ulrich Drepper <drepper@redhat.com>
672
673 * dwarf_error.c: Add internal alias for dwarf_errno.
674 * libdwP.h: Declare __dwarf_errno_internal.
675 * dwarf_getloclist.c: Use INTDEF for dwarf_errno.
676
677 * dwarf_error.c [USE_TLS]: Actually use __thread in definition of
678 global_error.
679
6802005-06-01 Roland McGrath <roland@redhat.com>
681
682 * dwarf_getaranges.c (dwarf_getaranges): Sort result array.
683 * dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search.
684
6852005-06-08 Roland McGrath <roland@redhat.com>
686
687 * memory-access.h (get_uleb128_step, get_uleb128): Remove casts.
688 (get_sleb128_step, get_sleb128): Likewise.
689 * dwarf_getattrs.c (dwarf_getattrs): Add consts.
690 * dwarf_getloclist.c (getloclist): Likewise.
691 * dwarf_formblock.c (dwarf_formblock): Likewise.
692 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
693 * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
694 * dwarf_formref.c (dwarf_formref): Likewise.
695 * dwarf_formsdata.c (dwarf_formsdata): Likewise.
696 * dwarf_formudata.c (dwarf_formudata): Likewise.
697 * dwarf_haschildren.c (dwarf_haschildren): Likewise.
698 * dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise.
699 * dwarf_tag.c (dwarf_tag): Likewise.
700 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
701 * memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise.
702 * libdw_form.c (__libdw_form_val_len): Likewise.
703 * libdwP.h: Update decl.
704
7052005-06-04 Roland McGrath <roland@redhat.com>
706
707 * memory-access.h (get_uleb128_rest_return): New macro.
708 [! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it.
709 (get_sleb128_rest_return): New macro.
710 [! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it.
711 * memory-access.c: New file.
712 * Makefile.am (libdw_a_SOURCES): Add it.
713 (DEFS): Add -DIS_LIBDW.
714
7152005-05-31 Roland McGrath <roland@redhat.com>
716
717 * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
718 formref offset.
719
7202005-05-30 Roland McGrath <roland@redhat.com>
721
722 * dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base
723 address if DW_AT_low_pc is missing. Not to spec, but GCC generates it.
724
725 * dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte
726 BEGIN value. Instead, match base address entries separately for
727 32/64 size cases.
728
7292005-05-28 Roland McGrath <roland@redhat.com>
730
731 * dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance
732 past location expression contents.
733
7342005-05-23 Roland McGrath <roland@redhat.com>
735
736 * dwarf_getsrclines.c: Comment typo fix.
737
738 * dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation.
739 * dwarf_getloclist.c (dwarf_addrloclists): Likewise.
740
7412005-05-22 Ulrich Drepper <drepper@redhat.com>
742
743 * libdwP.h: Only use INTDECL for alias prototypes.
744
7452005-05-19 Roland McGrath <roland@redhat.com>
746
747 * dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too.
748
749 * dwarf_getscopevar.c: New file.
750 * Makefile.am (libdw_a_SOURCES): Add it.
751 * libdw.h: Declare dwarf_getscopevar.
752
753 * dwarf_getsrcfiles.c: Add INTDEF.
754 * dwarf_haschildren.c: Likewise.
755 * libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL.
756
757 * dwarf_getscopes.c: New file.
758 * Makefile.am (libdw_a_SOURCES): Add it.
759 * libdw.h: Declare dwarf_getscopes.
760 * libdw.map: Add it.
761
7622005-05-18 Roland McGrath <roland@redhat.com>
763
764 * libdwP.h (IDX_debug_ranges): New enum constant.
765 * dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges".
766 * libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant.
767 * dwarf_error.c (errmsgs): Add it.
768 * dwarf_haspc.c: New file.
769 * libdw.h: Declare dwarf_haspc.
770 * libdw.map: Add it.
771 * libdwP.h: Add INTDECL.
772
773 * dwarf_attr_integrate.c: New file.
774 * dwarf_hasattr_integrate.c: New file.
775 * Makefile.am (libdw_a_SOURCES): Add them.
776 * libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate.
777 * libdw.map: Add them.
778
779 * dwarf_hasattr.c: Add INTDEF.
780 * libdwP.h: Add INTDECL for it.
781
782 * dwarf_formref_die.c: New file.
783 * Makefile.am (libdw_a_SOURCES): Add it.
784 * libdw.h (dwarf_formref_die): Declare it.
785 * libdwP.h (dwarf_formref_die): Add INTDECL.
786 * libdw.map: Add it.
787
788 * dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out
789 of ...
790 (dwarf_getloclist): ... here. Call them.
791 (dwarf_addrloclists): New function.
792 * libdw.h: Declare it.
793 * libdw.map: Add it.
794
795 * dwarf_getmacros.c (dwarf_getmacros): Don't bail at
796 DW_MACINFO_end_file. Recognize type 0 as terminator.
797
7982005-05-05 Roland McGrath <roland@redhat.com>
799
800 * dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search.
801
802 * dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since
803 the line program does not produce all entries in ascending order.
804
8052005-04-25 Ulrich Drepper <drepper@redhat.com>
806
807 * dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple
808 occurences (e.g., inlines) better.
809
8102005-04-24 Ulrich Drepper <drepper@redhat.com>
811
812 * libdw.h (DWARF_END_ABBREV): Define.
813 * dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if
814 end is reached.
815 * dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end
816 of records reached.
817 * dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV
818 as error of __libdw_getabbrev.
819
8202005-04-04 Ulrich Drepper <drepper@redhat.com>
821
822 * dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization.
823
824 * dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of
825 results back to caller.
826
8272005-04-04 Roland McGrath <roland@redhat.com>
828
829 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL.
830
831 * dwarf_func_line.c (__libdw_func_intval): Use internal_function in
832 defn.
833
8342005-04-04 Ulrich Drepper <drepper@redhat.com>
835
836 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE.
837
838 * dwarf_getsrc_file.c: New file.
839 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c.
840 * libdw.h: Declare dwarf_getsrc_file.
841 * libdw.map: Add dwarf_getsrc_file.
842
8432005-04-02 Ulrich Drepper <drepper@redhat.com>
844
845 * dwarf_func_entrypc.c: New file.
846 * dwarf_func_col.c: New file.
847 * dwarf_func_line.c: New file.
848 * dwarf_func_file.c: New file.
849 * libdw.h: Add prototypes for new functions.
850 * libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line,
851 dwarf_func_file.
852 * Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c,
853 dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c.
854 * libdwP.h (struct Dwarf_Func_s): Add cudie element.
855 Declare __libdw_func_intval and __dwarf_formsdata_internal.
856 * dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object.
857 * dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs.
858
859 * dwarf.h: Add some DWARF3 definitions.
860
8612005-04-01 Ulrich Drepper <drepper@redhat.com>
862
863 * dwarf_getfuncs.c: New file.
864 * dwarf_func_highpc.c: New file.
865 * dwarf_func_lowpc.c: New file.
866 * dwarf_func_name.c: New file.
867 * Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c,
868 dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c.
869 * libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc,
870 and dwarf_func_name.
871 * libdw.h: Add prototypes for new functions.
872 * dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs.
873 * dwarf_siblingof.c: Likewise.
874 * dwarf_dieoffset.c: Likewise.
875 * dwarf_highpc.c: Likewise.
876 * dwarf_lowpc.c: Likewise.
877 * libdwP.h: Add prototypes for internal functions.
878 Define Dwarf_Func_s structure.
879
8802005-03-29 Ulrich Drepper <drepper@redhat.com>
881
882 * libdw.h: Add padding in Dwarf_die.
883
884 * dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs.
885 * dwarf_attr.c: Likewise.
886 * dwarf_begin.c: Likewise.
887 * dwarf_begin_elf.c: Likewise.
888 * dwarf_bitoffset.c: Likewise.
889 * dwarf_bitsize.c: Likewise.
890 * dwarf_bytesize.c: Likewise.
891 * dwarf_diename.c: Likewise.
892 * dwarf_formaddr.c: Likewise.
893 * dwarf_formblock.c: Likewise.
894 * dwarf_formref.c: Likewise.
895 * dwarf_formstring.c: Likewise.
896 * dwarf_formudata.c: Likewise.
897 * dwarf_getarange_addr.c: Likewise.
898 * dwarf_getarangeinfo.c: Likewise.
899 * dwarf_getaranges.c: Likewise.
900 * dwarf_getloclist.c: Likewise.
901 * dwarf_getmacros.c: Likewise.
902 * dwarf_getsrc_die.c: Likewise.
903 * dwarf_getsrcfiles.c: Likewise.
904 * dwarf_getsrclines.c: Likewise.
905 * dwarf_highpc.c: Likewise.
906 * dwarf_lowpc.c: Likewise.
907 * dwarf_nextcu.c: Likewise.
908 * dwarf_offdie.c: Likewise.
909 * dwarf_siblingof.c: Likewise.
910 * dwarf_srclang.c: Likewise.
911 * dwarf_tag.c: Likewise.
912 * libdw_findcu.c: Likewise.
913 * libdwP.h: Add prototypes for internal functions.
914
915 * dwarf_addrdie.c: New file.
916 * dwarf_macro_opcode.c: New file.
917 * dwarf_macro_param1.c: New file.
918 * dwarf_macro_param2.c: New file.
919 * libdw.h: Add declarations. Move Dwarf_Macro definition to libdwP.h.
920 * libdwP.h: Remove Dwarf_Macro definition.
921 * Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c,
922 dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c.
923 * libdw.map: Add entries for new functions.
924
9252005-03-21 Ulrich Drepper <drepper@redhat.com>
926
927 * libdw.h: Handle broken gcc < 4.
928
9292005-02-15 Ulrich Drepper <drepper@redhat.com>
930
931 * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
932
933 * dwarf_begin_elf.c: Fix warnings.
934 * dwarf_dieoffset.c: Likewise.
935 * dwarf_end.c: Likewise.
936 * dwarf_error.c: Likewise.
937 * dwarf_getpubnames.c: Likewise.
938
939 * libdwP.h: Add new error values.
940 * dwarf_error.c: Support new error values.
941 * dwarf_getpubnames.c: Check parameter value.
942
9432005-02-05 Ulrich Drepper <drepper@redhat.com>
944
945 * Makefile.am: Check for text relocations in constructed DSO.
946
947 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.
948
9492005-02-04 Ulrich Drepper <drepper@redhat.com>
950
951 * dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary
952 checks to not read over buffer boundaries for ill-formed DWARF data.
953
9542004-09-25 Ulrich Drepper <drepper@redhat.com>
955
956 * dwarf_child.c: Make compile with gcc 4.0.
957 * dwarf_error.c: Likewise.
958 * dwarf_formblock.c: Likewise.
959 * dwarf_getabbrev.c: Likewise.
960 * dwarf_getattrs.c: Likewise.
961 * dwarf_getsrclines.c: Likewise.
962 * dwarf_tag.c: Likewise.
963 * libdw_form.c: Likewise.
964
9652004-01-20 Ulrich Drepper <drepper@redhat.com>
966
967 * Makefile.am: Support building with mudflap.
968
969 * dwarf_getloclist.c: Fix warnings gcc 3.4 spits out.
970 * dwarf_getsrclines.c: Likewise.
971 * dwarf_memory-access.h: Likewise.
972
9732004-01-19 Ulrich Drepper <drepper@redhat.com>
974
975 * dwarf_getsrcfiles.c: Third parameter can be NULL.
976
977 * libdw.h: Define Dwarf_macro. Declare dwarf_getmacros.
978 Third parameter of dwarf_getsrcfiles can be NULL.
979
980 * libdw.map: Add dwarf_getmacros.
981 * Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros.
982 * dwarf_getmacros.c: New file.
983
9842004-01-18 Ulrich Drepper <drepper@redhat.com>
985
986 * libdw.h: Second parameter of dwarf_getaranges can be NULL.
987
988 * dwarf_nextcu.c: Return -1 if dwarf parameter is NULL.
989
990 * dwarf_getsrclines.c:
991 Use read_2ubyte_unaligned_inc instead of _inc-less variant.
992
993 * dwarf_getaranges.c: Allow naranges parameter to be NULL.
994
995 * libdwP.h (_): Use elfutils domain.
996
997 * dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction.
998
999 * dwarf_getsrclines.c: Fix typo in comment.
1000
10012004-01-17 Ulrich Drepper <drepper@redhat.com>
1002
1003 * Makefile.am: Support building with mudflap.
1004
10052004-01-16 Ulrich Drepper <drepper@redhat.com>
1006
1007 * memory-access.h: Add lots of const in case a pointer passed is const.
1008
1009 * dwarf_formflag.c: New file.
1010 * dwarf_getattrs.c: New file.
1011 * dwarf_error.c: Add new error value.
1012 * libdw.h: Add prototypes for new functions. Adjust prototype for
1013 dwarf_getpubnames.
1014 * libdw.map: Add new functions.
1015 * dwarf_getpubnames.c: Change type of return value and fourth parameter
1016 to ptrdiff_t.
1017 * libdwP.h: Add new error value.
1018 * Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and
1019 dwarf_formflag.c.
1020
1021 * dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL.
1022
10232004-01-12 Ulrich Drepper <drepper@redhat.com>
1024
1025 * dwarf_getarange_addr.c: New file
1026 * dwarf_getarangeinfo.c: New file.
1027 * dwarf_getaranges.c: New file.
1028 * dwarf_onerange.c: New file.
1029 * libdw.h: Declare new functions. Define Dwarf_Arange and
1030 Dwarf_Aranges.
1031 * libdw.map: Add new functions.
1032 * libdwP.h: Add new errors. Add aranges member to struct Dwarf.
1033 Define Dwarf_Aranges_s and Dwarf_Arange_s.
1034 * Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c,
1035 dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c.
1036 * dwarf_error.c: Add new message.
1037
10382004-01-11 Ulrich Drepper <drepper@redhat.com>
1039
1040 * Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c,
1041 dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c,
1042 dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c.
1043 * dwarf_error.c: Add another message.
1044 * dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines
1045 introduction.
1046 * dwarf_filesrc.c: Likewise.
1047 * dwarf_getsrcfiles.c: Likewise.
1048 * dwarf_getsrclines.c: Likewise.
1049 * dwarf_lineaddr.c: New file.
1050 * dwarf_linebeginstatement.c: New file.
1051 * dwarf_lineblock.c: New file.
1052 * dwarf_linecol.c: New file.
1053 * dwarf_lineendsequence.c: New file.
1054 * dwarf_lineepiloguebegin.c: New file.
1055 * dwarf_lineno.c: New file.
1056 * dwarf_lineprologueend.c: New file.
1057 * dwarf_onesrcline.c: New file.
1058 * dwarf_lineno.c: Change interface to store result in object pointed
1059 to by second parameter.
1060 * libdw.h: Add prototypes for new functions. Change dwarf_lineno
1061 prototype. Define Dwarf_Files and Dwarf_Lines.
1062 * libdw.map: Add new functions.
1063 * libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s.
1064 * libdw_findcu.c: Don't initialize nlines field.
1065
1066 * dwarf_siblingof: Little optimization.
1067
1068 * dwarf_begin.c: Remember that the ELF descriptor must be closed.
1069 * dwarf_end.c: Close ELF descriptor if free_elf is set.
1070 * libdwP.h (struct Dwarf): Add free_elf field.
1071
1072 * Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and
1073 dwarf_offabbrev.c.
1074 * dwarf_getstring.c: New file.
1075 * dwarf_offabbrev.c: New file.
1076 * libdw.map: Add dwarf_getstring and dwarf_offabbrev.
1077 * dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result
1078 parameters. Don't allocate memory if not necessary and don't lookup
1079 previous results if no CU given.
1080 (dwarf_getabbrev): Adjust call to __libdw_getabbrev.
1081 * dwarf_tag.c: Adjust call to __libdw_getabbrev.
1082 * libdw.h: Declare dwarf_offabbrev and dwarf_getstring.
1083 * libdwP.h: Change prototype for __libdw_getabbrev.
1084
1085 * dwarf_getabbrevattr.c: Add offsetp parameter. Fill in before
1086 returning if this is wanted.
1087
10882004-01-09 Ulrich Drepper <drepper@redhat.com>
1089
1090 * dwarf_nextcu.c: Add new parameter offset_sizep. Initialize it
1091 with offset_size value.
1092 * libdw.h: Adjust dwarf_nextcu prototype.
1093 * libdwP.h (struct Dwarf_CU): Add offset_size member.
1094 * libdw_findcu.c: Adjust dwarf_nextcu call. Initialize offset_size
1095 member of new CU struct.
1096 * dwarf_formstring.c: Depend on offset_size not address_size for
1097 DW_FORM_strp handling.
1098 * dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr.
1099
1100 * dwarf_tag.c (__libdw_findabbrev): Return correct value for
1101 failing lookup.
1102 (dwarf_tag): Correctly recognize failed lookup.
1103
1104 * dwarf_end.c (cu_free): Call tdestroy for locs member. Use new
1105 function noop_free.
1106 * dwarf_error.c: Add message for DWARF_E_NO_BLOCK.
1107 * dwarf_formblock.c: New file.
1108 * dwarf_getloclist.c: Rewrite to handle a single block.
1109 * libdw.h: Define Dwarf_Block. Rename Dwarf_Loc members. Remove
1110 Dwarf_Locdesc definition. Declare dwarf_formblock. Remove
1111 dwarf_getloclistent declaration.
1112 * libdw.map: Add dwarf_formblock, remove dwarf_getloclistent.
1113 * libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK.
1114 Add locs member to struct Dwarf_CU.
1115 * libdw_fundcu.c: Initialize locs member of new CU.
1116 * Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c.
1117 Remove dwarf_getloclistent.c.
1118
11192004-01-07 Ulrich Drepper <drepper@redhat.com>
1120
1121 * libdw.h: Use __nonnull__ attribute only for gcc >= 3.3.
1122 * libdwP.h: Likewise.
1123
1124 * dwarf_getloclist.c: New file.
1125 * dwarf_getloclistent.c: New file.
1126 * libdw.h: Define Dwarf_Loc and Dwarf_Locdesc.
1127 Declare dwarf_getloclistent and dwarf_getloclist.
1128 * libdw.map: Add dwarf_getloclistent and dwarf_getloclist.
1129 * libdwP.h: Define DWARF_E_NO_LOCLIST.
1130 * Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and
1131 dwarf_getloclist.c.
1132
1133 * dwarf_error.c: More error messages.
1134
11352004-01-06 Ulrich Drepper <drepper@redhat.com>
1136
1137 * dwarf_getsrclines.c: Remove debugging support.
1138
1139 * dwarf_getsrcfiles.c: New file.
1140 * dwarf_filesrc.c: New file.
1141 * libdw.h: Declare these functions. Define Dwarf_File.
1142 * libdwP.c: Adjust Dwarf_File_s definition.
1143 * libdw.map: Add these functions.
1144 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and
1145 dwarf_filesrc.c.
1146 * dwarf_getsrclines.c: Initialize cu->files.
1147
11482004-01-05 Ulrich Drepper <drepper@redhat.com>
1149
1150 * libdw.h: Add more nonnull function attributes.
1151
1152 * dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next.
1153 * dwarf_end.c (cu_free): New function.
1154 (dwarf_end): Also free CU tree. Correct freeing of memory blocks.
1155 * dwarf_error.c (errmsgs): Add new messages.
1156 * dwarf_getsrc_die.c: New file.
1157 * dwarf_getsrclines.c: New file.
1158 * dwarf_lineno.c: New file.
1159 * dwarf_linesrc.c: New file.
1160 * dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc
1161 instead of the *_inc-less variants.
1162 * libdw.h: Define Dwarf_Line. Add some function attributes. Declare
1163 dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc.
1164 * libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno,
1165 and dwarf_linesrc.
1166 * libdwP.h: Add more error codes.
1167 (struct Dwarf): Remove mem_tail.next member.
1168 (Dwarf_File): Define type.
1169 (struct Dwarf_Line_s): Define type.
1170 (struct Dwarf_CU): Add lines and nlines members.
1171 (libdw_alloc): Define local variable _tail and use it.
1172 Add some function attributes.
1173 * libdw_alloc.c (__libdw_allocate): Don't initialize next member.
1174 * libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members.
1175 * memory-access.h: Add unlikely for the endian conversion paths.
1176 * Makefile.am (AM_CFLAGS): Add -std parameter.
1177 (libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die,
1178 dwarf_lineno, and dwarf_linesrc.
1179
11802003-08-11 Ulrich Drepper <drepper@redhat.com>
1181
1182 * Moved to CVS archive.