blob: 50dc089ebe4695eda4f46d4136bf0fc298cf857e [file] [log] [blame]
Roland McGrath43da9892007-04-16 23:13:37 +000012007-04-16 Roland McGrath <roland@redhat.com>
2
3 * libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section.
4
Roland McGrathbf2ee482007-04-05 09:27:36 +000052007-04-05 Roland McGrath <roland@redhat.com>
6
Roland McGrath43da9892007-04-16 23:13:37 +00007 * dwarf_getsrcdirs.c: New file.
8 * Makefile.am (libdw_a_SOURCES): Add it.
9 * libdw.h: Declare dwarf_getsrcdirs.
10 * libdw.map (ELFUTILS_0.127): Add it.
11
12 * libdwP.h (struct Dwarf_Files_s): New member ndirs.
13 * dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to
14 zero before we use it to check for DWARF_E_INVALID_DIR_IDX.
15 Save DIRARRAY in the Dwarf_Files.
16
Roland McGrathbf2ee482007-04-05 09:27:36 +000017 * dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN
18 address to check for all-ones base address entry. Check directly.
19 Reported by Sébastien Dugué <sebastien.dugue@bull.net>.
20
Ulrich Drepperc07fbb32007-03-30 19:14:59 +0000212007-03-25 Roland McGrath <roland@redhat.com>
22
23 * dwarf_begin_elf.c (check_section): Return Dwarf * instead of void.
24 Return NULL when freeing RESULT on error.
25 (global_read, scngrp_read): Check return value from check_section,
26 break out of loop after it has freed RESULT.
27 (valid_p): Handle null argument.
28
Ulrich Drepper6258e742007-03-13 06:22:40 +0000292007-03-12 Roland McGrath <roland@redhat.com>
30
31 * libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add.
32
332007-03-04 Roland McGrath <roland@redhat.com>
34
35 * libdw.map (ELFUTILS_0.127): New version set, inherits from
36 ELFUTILS_0.126. Add dwfl_module_addrsym.
37
Ulrich Drepper903c1162007-02-15 19:40:37 +0000382007-02-10 Roland McGrath <roland@redhat.com>
39
40 * dwarf.h (DW_OP_fbreg): Comment fix.
41
Ulrich Drepperaa915fd2007-02-05 07:25:33 +0000422007-02-03 Roland McGrath <roland@redhat.com>
43
44 * dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf.
45 * libdw.map (ELFUTILS_0.126): New version set, inherits from
46 ELFUTILS_0.122. Move dwarf_getelf there; it was never truly
47 exported in the past.
48
Roland McGrath8190db62006-12-17 23:56:51 +0000492006-12-17 Roland McGrath <roland@redhat.com>
50
51 * dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base
52 address when the CU is missing attributes due to buggy GCC.
53
Roland McGrathc373d852006-10-10 00:25:21 +0000542006-08-29 Roland McGrath <roland@redhat.com>
55
56 * Makefile.am (CLEANFILES): Add libdw.so.$(VERSION).
57
58 * libdw.h (dwarf_diecu): Add __nonnull_attribute__.
59 (dwarf_child): Don't list arg 1 in __nonnull_attribute__.
60
61 * libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure
62 result is aligned. Adjust NEWP->remaining here for this allocation.
63 * libdwP.h: Update decl.
64 (libdw_alloc): Update caller.
65
Ulrich Drepper077c65f2006-07-12 19:54:51 +0000662006-07-12 Ulrich Drepper <drepper@redhat.com>
67
68 * dwarf_child.c: Adjust for internal_function_def removal.
69 * dwarf_getabbrev.c: Likewise.
70 * dwarf_tag.c: Likewise.
71 * libdw_form.c: Likewise.
72 * memory-access.c: Likewise.
73
Ulrich Dreppere1812e12006-07-12 07:46:03 +0000742006-06-28 Roland McGrath <roland@redhat.com>
75
76 * libdw.map: Export dwfl_linecu, dwfl_line_comp_dir.
77
78 * libdw.map: Bump to 0.122; export dwfl_module_getsymtab and
79 dwfl_module_getsym.
80
Ulrich Drepper3be74472006-05-27 18:15:40 +0000812006-05-27 Ulrich Drepper <drepper@redhat.com>
82
83 * libdw.h: Add extern "C".
84
Ulrich Dreppere7a73172006-05-22 18:16:45 +0000852006-05-22 Ulrich Drepper <drepper@redhat.com>
86
87 * dwarf_getaranges.c (dwarf_getaranges): Handle files without
88 aranges information.
89
Ulrich Drepper4f3d2a22006-05-22 01:30:56 +0000902006-05-21 Ulrich Drepper <drepper@redhat.com>
91
92 * libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs,
93 dwarf_haschildren.
94
Roland McGrath2dade662006-02-28 22:13:20 +0000952006-02-28 Roland McGrath <roland@redhat.com>
96
97 * dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*,
98 DW_OP_* values, to match DWARF 3.0. Add new DW_DS_*, DW_END_*
99 values from DWARF 3.0.
100
Roland McGrath08333122006-02-27 04:54:26 +00001012006-02-22 Roland McGrath <roland@redhat.com>
102
103 * libdw.map: Bump to 0.120; export dwfl_version.
104
Roland McGrath50ffcbf2005-12-23 01:51:43 +00001052005-12-22 Roland McGrath <roland@redhat.com>
106
107 * libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report.
108
Roland McGrathdec3a242005-12-12 08:35:55 +00001092005-12-12 Roland McGrath <roland@redhat.com>
110
111 * dwarf_ranges.c: Copy CU base address-finding code from
112 dwarf_getlocation.
113
Roland McGrathf64a4422005-12-09 23:40:30 +00001142005-12-09 Roland McGrath <roland@redhat.com>
115
116 * dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys.
117 Delay CU base lookup until it's needed.
118 If CU base lookup fails with no error, flag invalid DWARF.
119
Roland McGrath994b4892005-12-05 22:46:21 +00001202005-11-25 Roland McGrath <roland@redhat.com>
121
122 * libdw.map: Bump to 0.118; export dwfl_module_register_names.
123
Roland McGrathe47ab762005-11-17 03:16:00 +00001242005-11-15 Roland McGrath <roland@redhat.com>
125
126 * Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic.
127
1282005-11-13 Roland McGrath <roland@redhat.com>
129
130 * libdw.map: Bump to 0.117; export dwfl_module_return_value_location.
131
Roland McGrath07d4f2f2005-10-28 06:56:24 +00001322005-10-27 Roland McGrath <roland@redhat.com>
133
134 * dwarf_entry_breakpoints.c (search_range): Fix binary search code;
135 don't match end_sequence markers.
136
137 * dwarf_getsrclines.c (compare_lines): Sort end_sequence markers
138 before normal records at the same address.
139 * dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence
140 marker.
141
1422005-10-26 Roland McGrath <roland@redhat.com>
143
Roland McGrath6724c902005-10-28 07:07:19 +0000144 * dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func.
145 * dwarf_func_file.c: Renamed to ...
146 * dwarf_decl_file.c: ... here.
147 * dwarf_func_col.c: Renamed to ...
148 * dwarf_decl_column.c: ... here.
149 * dwarf_func_line.c: Renamed to ...
150 * dwarf_decl_line.c: ... here.
151 (dwarf_func_line): Renamed to ...
152 (dwarf_decl_line): ... this. Take a Dwarf_Die * argument.
153 (__libdw_func_intval): Renamed __libdw_attr_intval.
154 * dwarf_func_name.c: File removed.
155 * dwarf_func_lowpc.c: File removed.
156 * dwarf_func_highpc.c: File removed.
157 * dwarf_func_entrypc.c: File removed.
158 * dwarf_func_die.c: File removed.
159 * Makefile.am (libdw_a_SOURCES): Updated.
160 * libdw.h: Update decls.
161 (Dwarf_Func): Type removed.
162 * libdwP.h: Update decls.
163 (struct Dwarf_Func_s): Type removed.
164 * libdw.map: Updated.
165
166 * libdwP.h (CUDIE): New macro.
167 * dwarf_getlocation.c (dwarf_getlocation_addr): Use it.
168 * dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise.
169 * dwarf_ranges.c (dwarf_ranges): Likewise.
170
171 * dwarf_getloclist.c: Renamed to ...
172 * dwarf_getlocation.c: ... here.
173 (getloclist): Renamed to getlocation.
174 (dwarf_getloclist): Renamed to dwarf_getlocation.
175 (dwarf_addrloclists): Renamed to dwarf_getlocation_addr.
176 * Makefile.am (libdw_a_SOURCES): Updated.
177 * libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation.
178 (dwarf_addrloclists): Renamed dwarf_getlocation_addr.
179 (Dwarf_Loc): Renamed Dwarf_Op.
180 * libdwP.h (struct loc_s): Update use.
181 * libdw.map: Update map.
182
Roland McGrath07d4f2f2005-10-28 06:56:24 +0000183 * dwarf_entry_breakpoints.c: Use the second line record within the
184 function, regardless of its source location data.
185
1862005-10-25 Roland McGrath <roland@redhat.com>
187
188 * dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too.
189
190 * libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints.
191
1922005-10-14 Roland McGrath <roland@redhat.com>
193
194 * dwarf_diecu.c (dwarf_diecu): New file.
195 * Makefile.am (libdw_a_SOURCES): Add it.
196 * libdw.h: Declare dwarf_diecu.
197 * libdw.map: Export it.
198
199 * libdw.map: Bump to 0.116; export dwarf_ranges.
200
2012005-09-20 Roland McGrath <roland@redhat.com>
202
203 * dwarf_haspc.c: Use dwarf_ranges.
204 * dwarf_entry_breakpoints.c: Likewise.
205
206 * dwarf_ranges.c: New file.
207 * Makefile.am (libdw_a_SOURCES): Add it.
208 * libdw.h: Declare dwarf_ranges.
209 * libdwP.h: Add INTDECL.
210
2112005-09-14 Roland McGrath <roland@redhat.com>
212
213 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in
214 prologue_end marker scanning loop.
215
2162005-09-11 Roland McGrath <roland@redhat.com>
217
218 * dwarf.h: Comment typo fix.
219
2202005-09-07 Roland McGrath <roland@redhat.com>
221
222 * dwarf_entry_breakpoints.c: New file.
223 * Makefile.am (libdw_a_SOURCES): Add it.
224 * libdw.h: Declare dwarf_entry_breakpoints.
225
226 * dwarf_entrypc.c: New file.
227 * Makefile.am (libdw_a_SOURCES): Add it.
228 * libdw.h: Declare dwarf_entrypc.
229 * libdwP.h: Add INTDECL.
230
Ulrich Drepperfbe998a2005-08-29 16:27:10 +00002312005-08-28 Ulrich Drepper <drepper@redhat.com>
232
233 * Makefile.am: Use $(LINK) not $(CC) when creating DSO.
234 (%.os): Use COMPILE.os.
235 (COMPILE.os): Filter out gconv options.
236
Roland McGrath71e15a02005-08-27 10:33:26 +00002372005-08-27 Roland McGrath <roland@redhat.com>
238
239 * dwarf_getscopes.c (dwarf_getscopes): Rewritten using
240 __libdw_visit_scopes.
241
242 * dwarf_getscopes_die.c: New file.
243 * Makefile.am (libdw_a_SOURCES): Add it.
244 * libdw.h: Declare dwarf_getscopes_die.
245 * libdw.map: Bump to 0.115 and add it.
246
247 * libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct
248 containing a DIE and its parent pointer, instead of just Dwarf_Die.
249 Take two functions for both preorder and postorder visitors.
250 * libdwP.h: Update decl.
251 (struct Dwarf_Die_Chain): New type.
252 * dwarf_func_inline.c: Update uses.
253
254 * dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate.
255 Add INTDEF.
256 * libdwP.h: Add INTDECL.
257 * dwarf_func_name.c (dwarf_func_name): Use dwarf_diename.
258
Roland McGrathd17fac72005-08-23 08:20:21 +00002592005-08-23 Roland McGrath <roland@redhat.com>
260
261 * dwarf_attr_integrate.c (dwarf_attr_integrate): Treat
262 DW_AT_specification the same as DW_AT_abstract_origin.
263
2642005-08-20 Roland McGrath <roland@redhat.com>
265
266 * libdw.map: Add dwfl_cumodule, remove dwfl_linecu.
267 Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address,
268 and dwfl_report_offline.
269
2702005-08-19 Roland McGrath <roland@redhat.com>
271
272 * libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes.
273 Add dwfl_module_relocate_address, dwfl_module_relocations,
274 dwfl_module_relocation_info.
275
Roland McGrathf5fda7d2005-08-18 22:01:57 +00002762005-08-18 Roland McGrath <roland@redhat.com>
277
278 * dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as
279 outermost scope in the results.
280
Roland McGrath1ecb6062005-08-15 09:53:04 +00002812005-08-15 Roland McGrath <roland@redhat.com>
282
283 * dwarf_func_inline.c: New file.
284 * Makefile.am (libdw_a_SOURCES): Add it.
285 * libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances.
286 * libdw.map: Add them.
287
288 * dwarf_func_die.c: New file.
289 * Makefile.am (libdw_a_SOURCES): Add it.
290 * libdw.h: Declare dwarf_func_die.
291 * libdw.map: Add it. Bump version to ELFUTILS_0.114.
292
Roland McGrath1c83bf12005-08-11 07:03:55 +00002932005-08-10 Ulrich Drepper <drepper@redhat.com>
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +0000294
Roland McGrath1c83bf12005-08-11 07:03:55 +0000295 * dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming
296 of DW_LNS_set_epilog_begin.
Ulrich Drepper6d5c3bd2005-08-11 04:37:52 +0000297
Roland McGrath4959bf82005-08-09 10:31:08 +00002982005-08-09 Roland McGrath <roland@redhat.com>
299
Roland McGrathb6312e12005-08-09 10:36:01 +0000300 * dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin.
301
Roland McGrath4959bf82005-08-09 10:31:08 +0000302 * dwarf_end.c: Add INTDEF.
303 * dwarf_error.c (dwarf_errmsg): Likewise.
304 * libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs.
305
Roland McGratha5a89682005-08-02 01:24:01 +00003062005-08-01 Roland McGrath <roland@redhat.com>
307
308 * dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset.
309 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
310
Ulrich Drepper18618fd2005-07-28 21:29:22 +00003112005-07-28 Ulrich Drepper <drepper@redhat.com>
312
313 * Makefile.am (libdw.so): No need to link with libeu.a anymore.
314 (libdw_a_LIBADD): Add all files from libdwfl.a.
315
Roland McGrath366784a2005-07-28 06:20:53 +00003162005-07-27 Roland McGrath <roland@redhat.com>
317
Roland McGrath18385902005-07-28 07:12:38 +0000318 * Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in,
319 along with ../libebl/libebl.a and ../lib/libeu.a;
320 depend on ../libelf/libelf.so.
321 (libdw_so_LDADD): New variable.
322 * libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map.
323
Roland McGrath366784a2005-07-28 06:20:53 +0000324 * libdw.map: Define an empty base version and move all symbols to
325 version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet.
326
Ulrich Drepperb08d5a82005-07-26 05:00:05 +00003272005-07-23 Ulrich Drepper <drepper@redhat.com>
328
329 * dwarf_error.c: Add internal alias for dwarf_errno.
330 * libdwP.h: Declare __dwarf_errno_internal.
331 * dwarf_getloclist.c: Use INTDEF for dwarf_errno.
332
333 * dwarf_error.c [USE_TLS]: Actually use __thread in definition of
334 global_error.
335
3362005-06-01 Roland McGrath <roland@redhat.com>
337
338 * dwarf_getaranges.c (dwarf_getaranges): Sort result array.
339 * dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search.
340
3412005-06-08 Roland McGrath <roland@redhat.com>
342
343 * memory-access.h (get_uleb128_step, get_uleb128): Remove casts.
344 (get_sleb128_step, get_sleb128): Likewise.
345 * dwarf_getattrs.c (dwarf_getattrs): Add consts.
346 * dwarf_getloclist.c (getloclist): Likewise.
347 * dwarf_formblock.c (dwarf_formblock): Likewise.
348 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise.
349 * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise.
350 * dwarf_formref.c (dwarf_formref): Likewise.
351 * dwarf_formsdata.c (dwarf_formsdata): Likewise.
352 * dwarf_formudata.c (dwarf_formudata): Likewise.
353 * dwarf_haschildren.c (dwarf_haschildren): Likewise.
354 * dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise.
355 * dwarf_tag.c (dwarf_tag): Likewise.
356 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise.
357 * memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise.
358 * libdw_form.c (__libdw_form_val_len): Likewise.
359 * libdwP.h: Update decl.
360
3612005-06-04 Roland McGrath <roland@redhat.com>
362
363 * memory-access.h (get_uleb128_rest_return): New macro.
364 [! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it.
365 (get_sleb128_rest_return): New macro.
366 [! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it.
367 * memory-access.c: New file.
368 * Makefile.am (libdw_a_SOURCES): Add it.
369 (DEFS): Add -DIS_LIBDW.
370
3712005-05-31 Roland McGrath <roland@redhat.com>
372
373 * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to
374 formref offset.
375
3762005-05-30 Roland McGrath <roland@redhat.com>
377
378 * dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base
379 address if DW_AT_low_pc is missing. Not to spec, but GCC generates it.
380
381 * dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte
382 BEGIN value. Instead, match base address entries separately for
383 32/64 size cases.
384
3852005-05-28 Roland McGrath <roland@redhat.com>
386
387 * dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance
388 past location expression contents.
389
3902005-05-23 Roland McGrath <roland@redhat.com>
391
392 * dwarf_getsrclines.c: Comment typo fix.
393
394 * dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation.
395 * dwarf_getloclist.c (dwarf_addrloclists): Likewise.
396
3972005-05-22 Ulrich Drepper <drepper@redhat.com>
398
399 * libdwP.h: Only use INTDECL for alias prototypes.
400
4012005-05-19 Roland McGrath <roland@redhat.com>
402
403 * dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too.
404
405 * dwarf_getscopevar.c: New file.
406 * Makefile.am (libdw_a_SOURCES): Add it.
407 * libdw.h: Declare dwarf_getscopevar.
408
409 * dwarf_getsrcfiles.c: Add INTDEF.
410 * dwarf_haschildren.c: Likewise.
411 * libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL.
412
413 * dwarf_getscopes.c: New file.
414 * Makefile.am (libdw_a_SOURCES): Add it.
415 * libdw.h: Declare dwarf_getscopes.
416 * libdw.map: Add it.
417
4182005-05-18 Roland McGrath <roland@redhat.com>
419
420 * libdwP.h (IDX_debug_ranges): New enum constant.
421 * dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges".
422 * libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant.
423 * dwarf_error.c (errmsgs): Add it.
424 * dwarf_haspc.c: New file.
425 * libdw.h: Declare dwarf_haspc.
426 * libdw.map: Add it.
427 * libdwP.h: Add INTDECL.
428
429 * dwarf_attr_integrate.c: New file.
430 * dwarf_hasattr_integrate.c: New file.
431 * Makefile.am (libdw_a_SOURCES): Add them.
432 * libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate.
433 * libdw.map: Add them.
434
435 * dwarf_hasattr.c: Add INTDEF.
436 * libdwP.h: Add INTDECL for it.
437
438 * dwarf_formref_die.c: New file.
439 * Makefile.am (libdw_a_SOURCES): Add it.
440 * libdw.h (dwarf_formref_die): Declare it.
441 * libdwP.h (dwarf_formref_die): Add INTDECL.
442 * libdw.map: Add it.
443
444 * dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out
445 of ...
446 (dwarf_getloclist): ... here. Call them.
447 (dwarf_addrloclists): New function.
448 * libdw.h: Declare it.
449 * libdw.map: Add it.
450
451 * dwarf_getmacros.c (dwarf_getmacros): Don't bail at
452 DW_MACINFO_end_file. Recognize type 0 as terminator.
453
4542005-05-05 Roland McGrath <roland@redhat.com>
455
456 * dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search.
457
458 * dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since
459 the line program does not produce all entries in ascending order.
460
4612005-04-25 Ulrich Drepper <drepper@redhat.com>
462
463 * dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple
464 occurences (e.g., inlines) better.
465
4662005-04-24 Ulrich Drepper <drepper@redhat.com>
467
468 * libdw.h (DWARF_END_ABBREV): Define.
469 * dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if
470 end is reached.
471 * dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end
472 of records reached.
473 * dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV
474 as error of __libdw_getabbrev.
475
4762005-04-04 Ulrich Drepper <drepper@redhat.com>
477
478 * dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization.
479
480 * dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of
481 results back to caller.
482
4832005-04-04 Roland McGrath <roland@redhat.com>
484
485 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL.
486
487 * dwarf_func_line.c (__libdw_func_intval): Use internal_function in
488 defn.
489
4902005-04-04 Ulrich Drepper <drepper@redhat.com>
491
492 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE.
493
494 * dwarf_getsrc_file.c: New file.
495 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c.
496 * libdw.h: Declare dwarf_getsrc_file.
497 * libdw.map: Add dwarf_getsrc_file.
498
4992005-04-02 Ulrich Drepper <drepper@redhat.com>
500
501 * dwarf_func_entrypc.c: New file.
502 * dwarf_func_col.c: New file.
503 * dwarf_func_line.c: New file.
504 * dwarf_func_file.c: New file.
505 * libdw.h: Add prototypes for new functions.
506 * libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line,
507 dwarf_func_file.
508 * Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c,
509 dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c.
510 * libdwP.h (struct Dwarf_Func_s): Add cudie element.
511 Declare __libdw_func_intval and __dwarf_formsdata_internal.
512 * dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object.
513 * dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs.
514
515 * dwarf.h: Add some DWARF3 definitions.
516
5172005-04-01 Ulrich Drepper <drepper@redhat.com>
518
519 * dwarf_getfuncs.c: New file.
520 * dwarf_func_highpc.c: New file.
521 * dwarf_func_lowpc.c: New file.
522 * dwarf_func_name.c: New file.
523 * Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c,
524 dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c.
525 * libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc,
526 and dwarf_func_name.
527 * libdw.h: Add prototypes for new functions.
528 * dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs.
529 * dwarf_siblingof.c: Likewise.
530 * dwarf_dieoffset.c: Likewise.
531 * dwarf_highpc.c: Likewise.
532 * dwarf_lowpc.c: Likewise.
533 * libdwP.h: Add prototypes for internal functions.
534 Define Dwarf_Func_s structure.
535
5362005-03-29 Ulrich Drepper <drepper@redhat.com>
537
538 * libdw.h: Add padding in Dwarf_die.
539
540 * dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs.
541 * dwarf_attr.c: Likewise.
542 * dwarf_begin.c: Likewise.
543 * dwarf_begin_elf.c: Likewise.
544 * dwarf_bitoffset.c: Likewise.
545 * dwarf_bitsize.c: Likewise.
546 * dwarf_bytesize.c: Likewise.
547 * dwarf_diename.c: Likewise.
548 * dwarf_formaddr.c: Likewise.
549 * dwarf_formblock.c: Likewise.
550 * dwarf_formref.c: Likewise.
551 * dwarf_formstring.c: Likewise.
552 * dwarf_formudata.c: Likewise.
553 * dwarf_getarange_addr.c: Likewise.
554 * dwarf_getarangeinfo.c: Likewise.
555 * dwarf_getaranges.c: Likewise.
556 * dwarf_getloclist.c: Likewise.
557 * dwarf_getmacros.c: Likewise.
558 * dwarf_getsrc_die.c: Likewise.
559 * dwarf_getsrcfiles.c: Likewise.
560 * dwarf_getsrclines.c: Likewise.
561 * dwarf_highpc.c: Likewise.
562 * dwarf_lowpc.c: Likewise.
563 * dwarf_nextcu.c: Likewise.
564 * dwarf_offdie.c: Likewise.
565 * dwarf_siblingof.c: Likewise.
566 * dwarf_srclang.c: Likewise.
567 * dwarf_tag.c: Likewise.
568 * libdw_findcu.c: Likewise.
569 * libdwP.h: Add prototypes for internal functions.
570
571 * dwarf_addrdie.c: New file.
572 * dwarf_macro_opcode.c: New file.
573 * dwarf_macro_param1.c: New file.
574 * dwarf_macro_param2.c: New file.
575 * libdw.h: Add declarations. Move Dwarf_Macro definition to libdwP.h.
576 * libdwP.h: Remove Dwarf_Macro definition.
577 * Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c,
578 dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c.
579 * libdw.map: Add entries for new functions.
580
5812005-03-21 Ulrich Drepper <drepper@redhat.com>
582
583 * libdw.h: Handle broken gcc < 4.
584
5852005-02-15 Ulrich Drepper <drepper@redhat.com>
586
587 * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2.
588
589 * dwarf_begin_elf.c: Fix warnings.
590 * dwarf_dieoffset.c: Likewise.
591 * dwarf_end.c: Likewise.
592 * dwarf_error.c: Likewise.
593 * dwarf_getpubnames.c: Likewise.
594
595 * libdwP.h: Add new error values.
596 * dwarf_error.c: Support new error values.
597 * dwarf_getpubnames.c: Check parameter value.
598
5992005-02-05 Ulrich Drepper <drepper@redhat.com>
600
601 * Makefile.am: Check for text relocations in constructed DSO.
602
603 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap.
604
6052005-02-04 Ulrich Drepper <drepper@redhat.com>
606
607 * dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary
608 checks to not read over buffer boundaries for ill-formed DWARF data.
609
6102004-09-25 Ulrich Drepper <drepper@redhat.com>
611
612 * dwarf_child.c: Make compile with gcc 4.0.
613 * dwarf_error.c: Likewise.
614 * dwarf_formblock.c: Likewise.
615 * dwarf_getabbrev.c: Likewise.
616 * dwarf_getattrs.c: Likewise.
617 * dwarf_getsrclines.c: Likewise.
618 * dwarf_tag.c: Likewise.
619 * libdw_form.c: Likewise.
620
6212004-01-20 Ulrich Drepper <drepper@redhat.com>
622
623 * Makefile.am: Support building with mudflap.
624
625 * dwarf_getloclist.c: Fix warnings gcc 3.4 spits out.
626 * dwarf_getsrclines.c: Likewise.
627 * dwarf_memory-access.h: Likewise.
628
6292004-01-19 Ulrich Drepper <drepper@redhat.com>
630
631 * dwarf_getsrcfiles.c: Third parameter can be NULL.
632
633 * libdw.h: Define Dwarf_macro. Declare dwarf_getmacros.
634 Third parameter of dwarf_getsrcfiles can be NULL.
635
636 * libdw.map: Add dwarf_getmacros.
637 * Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros.
638 * dwarf_getmacros.c: New file.
639
6402004-01-18 Ulrich Drepper <drepper@redhat.com>
641
642 * libdw.h: Second parameter of dwarf_getaranges can be NULL.
643
644 * dwarf_nextcu.c: Return -1 if dwarf parameter is NULL.
645
646 * dwarf_getsrclines.c:
647 Use read_2ubyte_unaligned_inc instead of _inc-less variant.
648
649 * dwarf_getaranges.c: Allow naranges parameter to be NULL.
650
651 * libdwP.h (_): Use elfutils domain.
652
653 * dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction.
654
655 * dwarf_getsrclines.c: Fix typo in comment.
656
6572004-01-17 Ulrich Drepper <drepper@redhat.com>
658
659 * Makefile.am: Support building with mudflap.
660
6612004-01-16 Ulrich Drepper <drepper@redhat.com>
662
663 * memory-access.h: Add lots of const in case a pointer passed is const.
664
665 * dwarf_formflag.c: New file.
666 * dwarf_getattrs.c: New file.
667 * dwarf_error.c: Add new error value.
668 * libdw.h: Add prototypes for new functions. Adjust prototype for
669 dwarf_getpubnames.
670 * libdw.map: Add new functions.
671 * dwarf_getpubnames.c: Change type of return value and fourth parameter
672 to ptrdiff_t.
673 * libdwP.h: Add new error value.
674 * Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and
675 dwarf_formflag.c.
676
677 * dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL.
678
6792004-01-12 Ulrich Drepper <drepper@redhat.com>
680
681 * dwarf_getarange_addr.c: New file
682 * dwarf_getarangeinfo.c: New file.
683 * dwarf_getaranges.c: New file.
684 * dwarf_onerange.c: New file.
685 * libdw.h: Declare new functions. Define Dwarf_Arange and
686 Dwarf_Aranges.
687 * libdw.map: Add new functions.
688 * libdwP.h: Add new errors. Add aranges member to struct Dwarf.
689 Define Dwarf_Aranges_s and Dwarf_Arange_s.
690 * Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c,
691 dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c.
692 * dwarf_error.c: Add new message.
693
6942004-01-11 Ulrich Drepper <drepper@redhat.com>
695
696 * Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c,
697 dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c,
698 dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c.
699 * dwarf_error.c: Add another message.
700 * dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines
701 introduction.
702 * dwarf_filesrc.c: Likewise.
703 * dwarf_getsrcfiles.c: Likewise.
704 * dwarf_getsrclines.c: Likewise.
705 * dwarf_lineaddr.c: New file.
706 * dwarf_linebeginstatement.c: New file.
707 * dwarf_lineblock.c: New file.
708 * dwarf_linecol.c: New file.
709 * dwarf_lineendsequence.c: New file.
710 * dwarf_lineepiloguebegin.c: New file.
711 * dwarf_lineno.c: New file.
712 * dwarf_lineprologueend.c: New file.
713 * dwarf_onesrcline.c: New file.
714 * dwarf_lineno.c: Change interface to store result in object pointed
715 to by second parameter.
716 * libdw.h: Add prototypes for new functions. Change dwarf_lineno
717 prototype. Define Dwarf_Files and Dwarf_Lines.
718 * libdw.map: Add new functions.
719 * libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s.
720 * libdw_findcu.c: Don't initialize nlines field.
721
722 * dwarf_siblingof: Little optimization.
723
724 * dwarf_begin.c: Remember that the ELF descriptor must be closed.
725 * dwarf_end.c: Close ELF descriptor if free_elf is set.
726 * libdwP.h (struct Dwarf): Add free_elf field.
727
728 * Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and
729 dwarf_offabbrev.c.
730 * dwarf_getstring.c: New file.
731 * dwarf_offabbrev.c: New file.
732 * libdw.map: Add dwarf_getstring and dwarf_offabbrev.
733 * dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result
734 parameters. Don't allocate memory if not necessary and don't lookup
735 previous results if no CU given.
736 (dwarf_getabbrev): Adjust call to __libdw_getabbrev.
737 * dwarf_tag.c: Adjust call to __libdw_getabbrev.
738 * libdw.h: Declare dwarf_offabbrev and dwarf_getstring.
739 * libdwP.h: Change prototype for __libdw_getabbrev.
740
741 * dwarf_getabbrevattr.c: Add offsetp parameter. Fill in before
742 returning if this is wanted.
743
7442004-01-09 Ulrich Drepper <drepper@redhat.com>
745
746 * dwarf_nextcu.c: Add new parameter offset_sizep. Initialize it
747 with offset_size value.
748 * libdw.h: Adjust dwarf_nextcu prototype.
749 * libdwP.h (struct Dwarf_CU): Add offset_size member.
750 * libdw_findcu.c: Adjust dwarf_nextcu call. Initialize offset_size
751 member of new CU struct.
752 * dwarf_formstring.c: Depend on offset_size not address_size for
753 DW_FORM_strp handling.
754 * dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr.
755
756 * dwarf_tag.c (__libdw_findabbrev): Return correct value for
757 failing lookup.
758 (dwarf_tag): Correctly recognize failed lookup.
759
760 * dwarf_end.c (cu_free): Call tdestroy for locs member. Use new
761 function noop_free.
762 * dwarf_error.c: Add message for DWARF_E_NO_BLOCK.
763 * dwarf_formblock.c: New file.
764 * dwarf_getloclist.c: Rewrite to handle a single block.
765 * libdw.h: Define Dwarf_Block. Rename Dwarf_Loc members. Remove
766 Dwarf_Locdesc definition. Declare dwarf_formblock. Remove
767 dwarf_getloclistent declaration.
768 * libdw.map: Add dwarf_formblock, remove dwarf_getloclistent.
769 * libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK.
770 Add locs member to struct Dwarf_CU.
771 * libdw_fundcu.c: Initialize locs member of new CU.
772 * Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c.
773 Remove dwarf_getloclistent.c.
774
7752004-01-07 Ulrich Drepper <drepper@redhat.com>
776
777 * libdw.h: Use __nonnull__ attribute only for gcc >= 3.3.
778 * libdwP.h: Likewise.
779
780 * dwarf_getloclist.c: New file.
781 * dwarf_getloclistent.c: New file.
782 * libdw.h: Define Dwarf_Loc and Dwarf_Locdesc.
783 Declare dwarf_getloclistent and dwarf_getloclist.
784 * libdw.map: Add dwarf_getloclistent and dwarf_getloclist.
785 * libdwP.h: Define DWARF_E_NO_LOCLIST.
786 * Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and
787 dwarf_getloclist.c.
788
789 * dwarf_error.c: More error messages.
790
7912004-01-06 Ulrich Drepper <drepper@redhat.com>
792
793 * dwarf_getsrclines.c: Remove debugging support.
794
795 * dwarf_getsrcfiles.c: New file.
796 * dwarf_filesrc.c: New file.
797 * libdw.h: Declare these functions. Define Dwarf_File.
798 * libdwP.c: Adjust Dwarf_File_s definition.
799 * libdw.map: Add these functions.
800 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and
801 dwarf_filesrc.c.
802 * dwarf_getsrclines.c: Initialize cu->files.
803
8042004-01-05 Ulrich Drepper <drepper@redhat.com>
805
806 * libdw.h: Add more nonnull function attributes.
807
808 * dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next.
809 * dwarf_end.c (cu_free): New function.
810 (dwarf_end): Also free CU tree. Correct freeing of memory blocks.
811 * dwarf_error.c (errmsgs): Add new messages.
812 * dwarf_getsrc_die.c: New file.
813 * dwarf_getsrclines.c: New file.
814 * dwarf_lineno.c: New file.
815 * dwarf_linesrc.c: New file.
816 * dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc
817 instead of the *_inc-less variants.
818 * libdw.h: Define Dwarf_Line. Add some function attributes. Declare
819 dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc.
820 * libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno,
821 and dwarf_linesrc.
822 * libdwP.h: Add more error codes.
823 (struct Dwarf): Remove mem_tail.next member.
824 (Dwarf_File): Define type.
825 (struct Dwarf_Line_s): Define type.
826 (struct Dwarf_CU): Add lines and nlines members.
827 (libdw_alloc): Define local variable _tail and use it.
828 Add some function attributes.
829 * libdw_alloc.c (__libdw_allocate): Don't initialize next member.
830 * libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members.
831 * memory-access.h: Add unlikely for the endian conversion paths.
832 * Makefile.am (AM_CFLAGS): Add -std parameter.
833 (libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die,
834 dwarf_lineno, and dwarf_linesrc.
835
8362003-08-11 Ulrich Drepper <drepper@redhat.com>
837
838 * Moved to CVS archive.