1 2008-08-15 Roland McGrath <roland (a] redhat.com> 2 3 * libdw.map (ELFUTILS_0.136): New version set, inherits from 4 ELFUTILS_0.130. Add dwfl_addrsegment, dwfl_report_segment. 5 6 2008-01-21 Ulrich Drepper <drepper (a] redhat.com> 7 8 * dwarf_child.c: Minor optimizations. 9 * dwarf_getattrs.c: Likewise. 10 * dwarf_getpubnames.c: Likewise. 11 * dwarf_siblingof.c: Likewise. 12 * dwarf_tag.c: Likewise. 13 14 2008-01-18 Ulrich Drepper <drepper (a] redhat.com> 15 16 * dwarf_getsrclines.c (dwarf_getsrclines): Don't require exact match 17 of DWARF_VERSION comparison, just fail if the file's version is newer. 18 19 2008-01-17 Nick Clifton <nickc (a] redhat.com> 20 21 * dwarf.h (DWARF3_LENGTH_MIN_ESCAPE_CODE): New define. 22 (DWARF3_LENGTH_MAX_ESCAPE_CODE): New define. 23 (DWARF3_LENGTH_64_BIT): New define. 24 * dwarf_getaranges (dwarf_getaranges): Use the new definitions. 25 * dwarf_getpubnames: Include dwarf.h. 26 (get_offsets): Use the new definitions. 27 * dwarf_getsrclines.c (dwarf_getsrclines): Use the new defintions. 28 * dwarf_nextcu.c: Include dwarf.h. Correct comment. 29 (dwarf_nextcu): Use the new definitions. 30 31 * libdwP.h (DIE_OFFSET_FROM_CU_OFFSET): New macro. 32 * dwarf_diecu.c (dwarf_diecu): Use the new macro. 33 * dwarf_getaranges (dwarf_getaranges): Use the new macro. 34 * dwarf_nextcu.c (dwarf_nextcu): Use the new macro. 35 36 * dwarf_getpubnames (get_offsets): Replace assertion with test and 37 error return. 38 39 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Use CUDIE. 40 41 * dwarf_siblingof (dwarf_siblingof): Detect a NULL return pointer. 42 Set the address in the return structure to the address of the next 43 non-sibling die, if there is no sibling and the return pointer is 44 not the same as the die pointer. 45 * libdw.h: Expand the description of the dwarf_siblingof prototype. 46 47 * dwarf_child.c: Fix typo in comment. 48 49 * libdwP.h (DWARF_VERSION): Change to 3. 50 51 * dwarf_formref.c (__libdw_formref.c): Handle attributes which do 52 not have a initialised valp pointer. 53 54 * dwarf_getattrs.c (dwarf_getattrs): Return 1 rather than 0 when 55 the end of the attributes is reached. When the callback fails, 56 return the address of the failing attribute, not the address of 57 its successor. 58 * libdw.h: Expand the description of the dwarf_getattrs prototype. 59 60 * dwarf_child.c (__libdw_find_attr): Use the new definition. 61 (dwarf_child): Likewise. 62 * dwarf_tag.c (__libdw_findabbrev): Likewise. 63 (dwarf_tag): Likewise. 64 65 2008-01-08 Roland McGrath <roland (a] redhat.com> 66 67 * Makefile.am (euinclude): Variable removed. 68 (pkginclude_HEADERS): Set this instead of euinclude_HEADERS. 69 (libdw.so): Pass -Wl,--enable-new-dtags,-rpath,$(pkglibdir). 70 71 2007-10-17 Roland McGrath <roland (a] redhat.com> 72 73 * libdw.h (__deprecated_attribute__): New macro. 74 (dwarf_formref): Mark it deprecated. 75 * dwarf_formref.c (__libdw_formref): New function, broken out of ... 76 (dwarf_formref): ... here. Call it. Remove INTDEF. 77 * libdwP.h: Remove INTDECL. 78 Declare __libdw_formref. 79 * dwarf_siblingof.c (dwarf_siblingof): Call __libdw_formref instead. 80 * dwarf_formref_die.c: Likewise. Handle DW_FORM_ref_addr here. 81 82 * libdw_form.c (__libdw_form_val_len): Fix DW_FORM_ref_addr result, 83 needs to check CU->version. 84 85 * libdwP.h (struct Dwarf_CU): New member `version'. 86 * libdw_findcu.c (__libdw_findcu): Initialize it. 87 88 * dwarf_child.c: Return 1 for null entry as first child. 89 90 2007-10-05 Roland McGrath <roland (a] redhat.com> 91 92 * dwarf_begin_elf.c (check_section): Punt on SHT_NOBITS sections. 93 94 * libdw.h (__extern_inline): Rename to __libdw_extern_inline. 95 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Update uses. 96 97 2007-10-03 Roland McGrath <roland (a] redhat.com> 98 99 * libdw.map (ELFUTILS_0.130: Add dwfl_build_id_find_elf 100 and dwfl_build_id_find_debuginfo. 101 102 * libdw.map (ELFUTILS_0.130): New version set, inherits from 103 ELFUTILS_0.127. Add dwfl_module_build_id, dwfl_module_report_build_id. 104 105 2007-10-02 Roland McGrath <roland (a] redhat.com> 106 107 * libdw_visit_scopes.c (classify_die): Return walk for class_type and 108 structure_type. 109 110 2007-08-07 Roland McGrath <roland (a] redhat.com> 111 112 * dwarf_getscopes.c (pc_match): Swallow dwarf_haspc error return when 113 error code is DWARF_E_NOERROR (0). 114 115 * dwarf_getscopes.c (pc_record): Always bail early if DIE->prune. 116 Fix typo in __libdw_visit_scopes argument. 117 118 * dwarf_getscopes.c (pc_match): Check dwarf_haspc error return, 119 swallow DWARF_E_NO_DEBUG_RANGES but not other errors. 120 121 2007-07-03 Roland McGrath <roland (a] redhat.com> 122 123 * libdw.h (__extern_inline): New macro. 124 [__OPTIMIZE__] (dwarf_whatattr, dwarf_whatform): Use it. 125 126 2007-04-16 Roland McGrath <roland (a] redhat.com> 127 128 * libdw.map (ELFUTILS_0.127): Add dwfl_module_address_section. 129 130 2007-04-05 Roland McGrath <roland (a] redhat.com> 131 132 * dwarf_getsrcdirs.c: New file. 133 * Makefile.am (libdw_a_SOURCES): Add it. 134 * libdw.h: Declare dwarf_getsrcdirs. 135 * libdw.map (ELFUTILS_0.127): Add it. 136 137 * libdwP.h (struct Dwarf_Files_s): New member ndirs. 138 * dwarf_getsrclines.c (dwarf_getsrclines): Don't clobber NDIRLIST to 139 zero before we use it to check for DWARF_E_INVALID_DIR_IDX. 140 Save DIRARRAY in the Dwarf_Files. 141 142 * dwarf_ranges.c (dwarf_ranges): Don't sign-extend 32-bit BEGIN 143 address to check for all-ones base address entry. Check directly. 144 Reported by Sbastien Dugu <sebastien.dugue (a] bull.net>. 145 146 2007-03-25 Roland McGrath <roland (a] redhat.com> 147 148 * dwarf_begin_elf.c (check_section): Return Dwarf * instead of void. 149 Return NULL when freeing RESULT on error. 150 (global_read, scngrp_read): Check return value from check_section, 151 break out of loop after it has freed RESULT. 152 (valid_p): Handle null argument. 153 154 2007-03-12 Roland McGrath <roland (a] redhat.com> 155 156 * libdw.map (ELFUTILS_0.127): Add dwfl_report_begin_add. 157 158 2007-03-04 Roland McGrath <roland (a] redhat.com> 159 160 * libdw.map (ELFUTILS_0.127): New version set, inherits from 161 ELFUTILS_0.126. Add dwfl_module_addrsym. 162 163 2007-02-10 Roland McGrath <roland (a] redhat.com> 164 165 * dwarf.h (DW_OP_fbreg): Comment fix. 166 167 2007-02-03 Roland McGrath <roland (a] redhat.com> 168 169 * dwarf_getelf.c (dwarf_getelf): Renamed from dwarf_get_elf. 170 * libdw.map (ELFUTILS_0.126): New version set, inherits from 171 ELFUTILS_0.122. Move dwarf_getelf there; it was never truly 172 exported in the past. 173 174 2006-12-17 Roland McGrath <roland (a] redhat.com> 175 176 * dwarf_getlocation.c (dwarf_getlocation_addr): Use zero as base 177 address when the CU is missing attributes due to buggy GCC. 178 179 2006-08-29 Roland McGrath <roland (a] redhat.com> 180 181 * Makefile.am (CLEANFILES): Add libdw.so.$(VERSION). 182 183 * libdw.h (dwarf_diecu): Add __nonnull_attribute__. 184 (dwarf_child): Don't list arg 1 in __nonnull_attribute__. 185 186 * libdw_alloc.c (__libdw_allocate): Take new ALIGN argument, make sure 187 result is aligned. Adjust NEWP->remaining here for this allocation. 188 * libdwP.h: Update decl. 189 (libdw_alloc): Update caller. 190 191 2006-07-12 Ulrich Drepper <drepper (a] redhat.com> 192 193 * dwarf_child.c: Adjust for internal_function_def removal. 194 * dwarf_getabbrev.c: Likewise. 195 * dwarf_tag.c: Likewise. 196 * libdw_form.c: Likewise. 197 * memory-access.c: Likewise. 198 199 2006-06-28 Roland McGrath <roland (a] redhat.com> 200 201 * libdw.map: Export dwfl_linecu, dwfl_line_comp_dir. 202 203 * libdw.map: Bump to 0.122; export dwfl_module_getsymtab and 204 dwfl_module_getsym. 205 206 2006-05-27 Ulrich Drepper <drepper (a] redhat.com> 207 208 * libdw.h: Add extern "C". 209 210 2006-05-22 Ulrich Drepper <drepper (a] redhat.com> 211 212 * dwarf_getaranges.c (dwarf_getaranges): Handle files without 213 aranges information. 214 215 2006-05-21 Ulrich Drepper <drepper (a] redhat.com> 216 217 * libdw.h: Add nonnull attributes to dwarf_tag, dwarf_getattrs, 218 dwarf_haschildren. 219 220 2006-02-28 Roland McGrath <roland (a] redhat.com> 221 222 * dwarf.h: Add missing DW_ATE_*, DW_TAG_*, DW_LANG_*, DW_CFA_*, 223 DW_OP_* values, to match DWARF 3.0. Add new DW_DS_*, DW_END_* 224 values from DWARF 3.0. 225 226 2006-02-22 Roland McGrath <roland (a] redhat.com> 227 228 * libdw.map: Bump to 0.120; export dwfl_version. 229 230 2005-12-22 Roland McGrath <roland (a] redhat.com> 231 232 * libdw.map: Bump to 0.119; export dwfl_linux_proc_maps_report. 233 234 2005-12-12 Roland McGrath <roland (a] redhat.com> 235 236 * dwarf_ranges.c: Copy CU base address-finding code from 237 dwarf_getlocation. 238 239 2005-12-09 Roland McGrath <roland (a] redhat.com> 240 241 * dwarf_getlocation.c (dwarf_getlocation_addr): Add some unlikelys. 242 Delay CU base lookup until it's needed. 243 If CU base lookup fails with no error, flag invalid DWARF. 244 245 2005-11-25 Roland McGrath <roland (a] redhat.com> 246 247 * libdw.map: Bump to 0.118; export dwfl_module_register_names. 248 249 2005-11-15 Roland McGrath <roland (a] redhat.com> 250 251 * Makefile.am [BUILD_STATIC] (AM_CFLAGS): Add -fpic. 252 253 2005-11-13 Roland McGrath <roland (a] redhat.com> 254 255 * libdw.map: Bump to 0.117; export dwfl_module_return_value_location. 256 257 2005-10-27 Roland McGrath <roland (a] redhat.com> 258 259 * dwarf_entry_breakpoints.c (search_range): Fix binary search code; 260 don't match end_sequence markers. 261 262 * dwarf_getsrclines.c (compare_lines): Sort end_sequence markers 263 before normal records at the same address. 264 * dwarf_getsrc_die.c (dwarf_getsrc_die): Don't match an end_sequence 265 marker. 266 267 2005-10-26 Roland McGrath <roland (a] redhat.com> 268 269 * dwarf_getfuncs.c (dwarf_getfuncs): Use Dwarf_Die, not Dwarf_Func. 270 * dwarf_func_file.c: Renamed to ... 271 * dwarf_decl_file.c: ... here. 272 * dwarf_func_col.c: Renamed to ... 273 * dwarf_decl_column.c: ... here. 274 * dwarf_func_line.c: Renamed to ... 275 * dwarf_decl_line.c: ... here. 276 (dwarf_func_line): Renamed to ... 277 (dwarf_decl_line): ... this. Take a Dwarf_Die * argument. 278 (__libdw_func_intval): Renamed __libdw_attr_intval. 279 * dwarf_func_name.c: File removed. 280 * dwarf_func_lowpc.c: File removed. 281 * dwarf_func_highpc.c: File removed. 282 * dwarf_func_entrypc.c: File removed. 283 * dwarf_func_die.c: File removed. 284 * Makefile.am (libdw_a_SOURCES): Updated. 285 * libdw.h: Update decls. 286 (Dwarf_Func): Type removed. 287 * libdwP.h: Update decls. 288 (struct Dwarf_Func_s): Type removed. 289 * libdw.map: Updated. 290 291 * libdwP.h (CUDIE): New macro. 292 * dwarf_getlocation.c (dwarf_getlocation_addr): Use it. 293 * dwarf_getscopes_die.c (dwarf_getscopes_die): Likewise. 294 * dwarf_ranges.c (dwarf_ranges): Likewise. 295 296 * dwarf_getloclist.c: Renamed to ... 297 * dwarf_getlocation.c: ... here. 298 (getloclist): Renamed to getlocation. 299 (dwarf_getloclist): Renamed to dwarf_getlocation. 300 (dwarf_addrloclists): Renamed to dwarf_getlocation_addr. 301 * Makefile.am (libdw_a_SOURCES): Updated. 302 * libdw.h (dwarf_getloclist): Renamed to dwarf_getlocation. 303 (dwarf_addrloclists): Renamed dwarf_getlocation_addr. 304 (Dwarf_Loc): Renamed Dwarf_Op. 305 * libdwP.h (struct loc_s): Update use. 306 * libdw.map: Update map. 307 308 * dwarf_entry_breakpoints.c: Use the second line record within the 309 function, regardless of its source location data. 310 311 2005-10-25 Roland McGrath <roland (a] redhat.com> 312 313 * dwarf_entry_breakpoints.c: Fall back to entrypc for contiguous too. 314 315 * libdw.map: Add dwarf_entrypc, dwarf_entry_breakpoints. 316 317 2005-10-14 Roland McGrath <roland (a] redhat.com> 318 319 * dwarf_diecu.c (dwarf_diecu): New file. 320 * Makefile.am (libdw_a_SOURCES): Add it. 321 * libdw.h: Declare dwarf_diecu. 322 * libdw.map: Export it. 323 324 * libdw.map: Bump to 0.116; export dwarf_ranges. 325 326 2005-09-20 Roland McGrath <roland (a] redhat.com> 327 328 * dwarf_haspc.c: Use dwarf_ranges. 329 * dwarf_entry_breakpoints.c: Likewise. 330 331 * dwarf_ranges.c: New file. 332 * Makefile.am (libdw_a_SOURCES): Add it. 333 * libdw.h: Declare dwarf_ranges. 334 * libdwP.h: Add INTDECL. 335 336 2005-09-14 Roland McGrath <roland (a] redhat.com> 337 338 * dwarf_entry_breakpoints.c (dwarf_entry_breakpoints): Fix braino in 339 prologue_end marker scanning loop. 340 341 2005-09-11 Roland McGrath <roland (a] redhat.com> 342 343 * dwarf.h: Comment typo fix. 344 345 2005-09-07 Roland McGrath <roland (a] redhat.com> 346 347 * dwarf_entry_breakpoints.c: New file. 348 * Makefile.am (libdw_a_SOURCES): Add it. 349 * libdw.h: Declare dwarf_entry_breakpoints. 350 351 * dwarf_entrypc.c: New file. 352 * Makefile.am (libdw_a_SOURCES): Add it. 353 * libdw.h: Declare dwarf_entrypc. 354 * libdwP.h: Add INTDECL. 355 356 2005-08-28 Ulrich Drepper <drepper (a] redhat.com> 357 358 * Makefile.am: Use $(LINK) not $(CC) when creating DSO. 359 (%.os): Use COMPILE.os. 360 (COMPILE.os): Filter out gconv options. 361 362 2005-08-27 Roland McGrath <roland (a] redhat.com> 363 364 * dwarf_getscopes.c (dwarf_getscopes): Rewritten using 365 __libdw_visit_scopes. 366 367 * dwarf_getscopes_die.c: New file. 368 * Makefile.am (libdw_a_SOURCES): Add it. 369 * libdw.h: Declare dwarf_getscopes_die. 370 * libdw.map: Bump to 0.115 and add it. 371 372 * libdw_visit_scopes.c (__libdw_visit_scopes): Pass a struct 373 containing a DIE and its parent pointer, instead of just Dwarf_Die. 374 Take two functions for both preorder and postorder visitors. 375 * libdwP.h: Update decl. 376 (struct Dwarf_Die_Chain): New type. 377 * dwarf_func_inline.c: Update uses. 378 379 * dwarf_diename.c (dwarf_diename): Use dwarf_attr_integrate. 380 Add INTDEF. 381 * libdwP.h: Add INTDECL. 382 * dwarf_func_name.c (dwarf_func_name): Use dwarf_diename. 383 384 2005-08-23 Roland McGrath <roland (a] redhat.com> 385 386 * dwarf_attr_integrate.c (dwarf_attr_integrate): Treat 387 DW_AT_specification the same as DW_AT_abstract_origin. 388 389 2005-08-20 Roland McGrath <roland (a] redhat.com> 390 391 * libdw.map: Add dwfl_cumodule, remove dwfl_linecu. 392 Add dwfl_linux_kernel_report_offline, dwfl_offline_section_address, 393 and dwfl_report_offline. 394 395 2005-08-19 Roland McGrath <roland (a] redhat.com> 396 397 * libdw.map: Bump version to ELFUTILS_0.114 for libdwfl changes. 398 Add dwfl_module_relocate_address, dwfl_module_relocations, 399 dwfl_module_relocation_info. 400 401 2005-08-18 Roland McGrath <roland (a] redhat.com> 402 403 * dwarf_getscopes.c (dwarf_getscopes): Include the CU itself as 404 outermost scope in the results. 405 406 2005-08-15 Roland McGrath <roland (a] redhat.com> 407 408 * dwarf_func_inline.c: New file. 409 * Makefile.am (libdw_a_SOURCES): Add it. 410 * libdw.h: Declare dwarf_func_inline, dwarf_func_inline_instances. 411 * libdw.map: Add them. 412 413 * dwarf_func_die.c: New file. 414 * Makefile.am (libdw_a_SOURCES): Add it. 415 * libdw.h: Declare dwarf_func_die. 416 * libdw.map: Add it. Bump version to ELFUTILS_0.114. 417 418 2005-08-10 Ulrich Drepper <drepper (a] redhat.com> 419 420 * dwarf_getsrclines.c (dwarf_getsrclines): Correct fallout of renaming 421 of DW_LNS_set_epilog_begin. 422 423 2005-08-09 Roland McGrath <roland (a] redhat.com> 424 425 * dwarf.h (DW_LNS_set_epilog_begin): Renamed DW_LNS_set_epilogue_begin. 426 427 * dwarf_end.c: Add INTDEF. 428 * dwarf_error.c (dwarf_errmsg): Likewise. 429 * libdwP.h (dwarf_end, dwarf_errmsg): Add INTDECLs. 430 431 2005-08-01 Roland McGrath <roland (a] redhat.com> 432 433 * dwarf_getaranges.c (dwarf_getaranges): Check for bogus offset. 434 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise. 435 436 2005-07-28 Ulrich Drepper <drepper (a] redhat.com> 437 438 * Makefile.am (libdw.so): No need to link with libeu.a anymore. 439 (libdw_a_LIBADD): Add all files from libdwfl.a. 440 441 2005-07-27 Roland McGrath <roland (a] redhat.com> 442 443 * Makefile.am (libdw.so): Link ../libdwfl/libdwfl_pic.a in, 444 along with ../libebl/libebl.a and ../lib/libeu.a; 445 depend on ../libelf/libelf.so. 446 (libdw_so_LDADD): New variable. 447 * libdw.map: Add dwfl_* symbols formerly in ../libdwfl/libdwfl.map. 448 449 * libdw.map: Define an empty base version and move all symbols to 450 version ELFUTILS_0.111; don't define ELFUTILS_1.0 at all yet. 451 452 2005-07-23 Ulrich Drepper <drepper (a] redhat.com> 453 454 * dwarf_error.c: Add internal alias for dwarf_errno. 455 * libdwP.h: Declare __dwarf_errno_internal. 456 * dwarf_getloclist.c: Use INTDEF for dwarf_errno. 457 458 * dwarf_error.c [USE_TLS]: Actually use __thread in definition of 459 global_error. 460 461 2005-06-01 Roland McGrath <roland (a] redhat.com> 462 463 * dwarf_getaranges.c (dwarf_getaranges): Sort result array. 464 * dwarf_getarange_addr.c (dwarf_getarange_addr): Use binary search. 465 466 2005-06-08 Roland McGrath <roland (a] redhat.com> 467 468 * memory-access.h (get_uleb128_step, get_uleb128): Remove casts. 469 (get_sleb128_step, get_sleb128): Likewise. 470 * dwarf_getattrs.c (dwarf_getattrs): Add consts. 471 * dwarf_getloclist.c (getloclist): Likewise. 472 * dwarf_formblock.c (dwarf_formblock): Likewise. 473 * dwarf_getsrclines.c (dwarf_getsrclines): Likewise. 474 * dwarf_getabbrevattr.c (dwarf_getabbrevattr): Likewise. 475 * dwarf_formref.c (dwarf_formref): Likewise. 476 * dwarf_formsdata.c (dwarf_formsdata): Likewise. 477 * dwarf_formudata.c (dwarf_formudata): Likewise. 478 * dwarf_haschildren.c (dwarf_haschildren): Likewise. 479 * dwarf_child.c (__libdw_find_attr, __libdw_find_attr): Likewise. 480 * dwarf_tag.c (dwarf_tag): Likewise. 481 * dwarf_getabbrev.c (__libdw_getabbrev): Likewise. 482 * memory-access.c (__libdw_get_uleb128, __libdw_get_sleb128): Likewise. 483 * libdw_form.c (__libdw_form_val_len): Likewise. 484 * libdwP.h: Update decl. 485 486 2005-06-04 Roland McGrath <roland (a] redhat.com> 487 488 * memory-access.h (get_uleb128_rest_return): New macro. 489 [! IS_LIBDW] (__libdw_get_uleb128): New static, defined using it. 490 (get_sleb128_rest_return): New macro. 491 [! IS_LIBDW] (__libdw_get_sleb128): New static, defined using it. 492 * memory-access.c: New file. 493 * Makefile.am (libdw_a_SOURCES): Add it. 494 (DEFS): Add -DIS_LIBDW. 495 496 2005-05-31 Roland McGrath <roland (a] redhat.com> 497 498 * dwarf_formref_die.c (dwarf_formref_die): Add CU header offset to 499 formref offset. 500 501 2005-05-30 Roland McGrath <roland (a] redhat.com> 502 503 * dwarf_getloclist.c (dwarf_addrloclists): Use DW_AT_entry_pc for base 504 address if DW_AT_low_pc is missing. Not to spec, but GCC generates it. 505 506 * dwarf_getloclist.c (dwarf_addrloclists): Don't sign-extend 4-byte 507 BEGIN value. Instead, match base address entries separately for 508 32/64 size cases. 509 510 2005-05-28 Roland McGrath <roland (a] redhat.com> 511 512 * dwarf_getloclist.c (dwarf_addrloclists): Fix decoding to advance 513 past location expression contents. 514 515 2005-05-23 Roland McGrath <roland (a] redhat.com> 516 517 * dwarf_getsrclines.c: Comment typo fix. 518 519 * dwarf_haspc.c (dwarf_haspc): Fix CU DIE address calculation. 520 * dwarf_getloclist.c (dwarf_addrloclists): Likewise. 521 522 2005-05-22 Ulrich Drepper <drepper (a] redhat.com> 523 524 * libdwP.h: Only use INTDECL for alias prototypes. 525 526 2005-05-19 Roland McGrath <roland (a] redhat.com> 527 528 * dwarf_getloclist.c (attr_ok): Permit DW_AT_static_link too. 529 530 * dwarf_getscopevar.c: New file. 531 * Makefile.am (libdw_a_SOURCES): Add it. 532 * libdw.h: Declare dwarf_getscopevar. 533 534 * dwarf_getsrcfiles.c: Add INTDEF. 535 * dwarf_haschildren.c: Likewise. 536 * libdwP.h (dwarf_getsrcfiles, dwarf_haschildren): Add INTDECL. 537 538 * dwarf_getscopes.c: New file. 539 * Makefile.am (libdw_a_SOURCES): Add it. 540 * libdw.h: Declare dwarf_getscopes. 541 * libdw.map: Add it. 542 543 2005-05-18 Roland McGrath <roland (a] redhat.com> 544 545 * libdwP.h (IDX_debug_ranges): New enum constant. 546 * dwarf_begin_elf.c (dwarf_scnnames): Add it for ".debug_ranges". 547 * libdwP.h (DWARF_E_NO_DEBUG_RANGES): New enum constant. 548 * dwarf_error.c (errmsgs): Add it. 549 * dwarf_haspc.c: New file. 550 * libdw.h: Declare dwarf_haspc. 551 * libdw.map: Add it. 552 * libdwP.h: Add INTDECL. 553 554 * dwarf_attr_integrate.c: New file. 555 * dwarf_hasattr_integrate.c: New file. 556 * Makefile.am (libdw_a_SOURCES): Add them. 557 * libdw.h: Declare dwarf_attr_integrate, dwarf_hasattr_integrate. 558 * libdw.map: Add them. 559 560 * dwarf_hasattr.c: Add INTDEF. 561 * libdwP.h: Add INTDECL for it. 562 563 * dwarf_formref_die.c: New file. 564 * Makefile.am (libdw_a_SOURCES): Add it. 565 * libdw.h (dwarf_formref_die): Declare it. 566 * libdwP.h (dwarf_formref_die): Add INTDECL. 567 * libdw.map: Add it. 568 569 * dwarf_getloclist.c (attr_ok, getloclist): New functions, broken out 570 of ... 571 (dwarf_getloclist): ... here. Call them. 572 (dwarf_addrloclists): New function. 573 * libdw.h: Declare it. 574 * libdw.map: Add it. 575 576 * dwarf_getmacros.c (dwarf_getmacros): Don't bail at 577 DW_MACINFO_end_file. Recognize type 0 as terminator. 578 579 2005-05-05 Roland McGrath <roland (a] redhat.com> 580 581 * dwarf_getsrc_die.c (dwarf_getsrc_die): Use binary search. 582 583 * dwarf_getsrclines.c (dwarf_getsrclines): Sort result array, since 584 the line program does not produce all entries in ascending order. 585 586 2005-04-25 Ulrich Drepper <drepper (a] redhat.com> 587 588 * dwarf_getsrc_file.c (dwarf_getsrc_file): Handle multiple 589 occurences (e.g., inlines) better. 590 591 2005-04-24 Ulrich Drepper <drepper (a] redhat.com> 592 593 * libdw.h (DWARF_END_ABBREV): Define. 594 * dwarf_getabbrev.c (__libdw_getabbrev): Return DWARF_END_ABBREV if 595 end is reached. 596 * dwarf_offabbrev.c (dwarf_offabbrev): Return -1 on error, 1 if end 597 of records reached. 598 * dwarf_tag.c (__libdw_findabbrev): Also recognize DWARF_END_ABBREV 599 as error of __libdw_getabbrev. 600 601 2005-04-04 Ulrich Drepper <drepper (a] redhat.com> 602 603 * dwarf_getsrc_file.c (dwarf_getsrc_file): Minor optimization. 604 605 * dwarf_getsrc_file.c (dwarf_getsrc_file): Always pass number of 606 results back to caller. 607 608 2005-04-04 Roland McGrath <roland (a] redhat.com> 609 610 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use size_t for CUHL. 611 612 * dwarf_func_line.c (__libdw_func_intval): Use internal_function in 613 defn. 614 615 2005-04-04 Ulrich Drepper <drepper (a] redhat.com> 616 617 * dwarf_getsrc_file.c (dwarf_getsrc_file): Use INTUSE. 618 619 * dwarf_getsrc_file.c: New file. 620 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrc_file.c. 621 * libdw.h: Declare dwarf_getsrc_file. 622 * libdw.map: Add dwarf_getsrc_file. 623 624 2005-04-02 Ulrich Drepper <drepper (a] redhat.com> 625 626 * dwarf_func_entrypc.c: New file. 627 * dwarf_func_col.c: New file. 628 * dwarf_func_line.c: New file. 629 * dwarf_func_file.c: New file. 630 * libdw.h: Add prototypes for new functions. 631 * libdw.map: Add dwarf_func_entrypc, dwarf_func_col, dwarf_func_line, 632 dwarf_func_file. 633 * Makefile.am (libdw_a_SOURCES): Add dwarf_func_entrypc.c, 634 dwarf_func_col.c, dwarf_func_line.c, dwarf_func_file.c. 635 * libdwP.h (struct Dwarf_Func_s): Add cudie element. 636 Declare __libdw_func_intval and __dwarf_formsdata_internal. 637 * dwarf_getfuncs.c: Also fill in cudie in Dwarf_Func object. 638 * dwarf_formsdata.c: Use INTUSE and INTDEF to avoid PLTs. 639 640 * dwarf.h: Add some DWARF3 definitions. 641 642 2005-04-01 Ulrich Drepper <drepper (a] redhat.com> 643 644 * dwarf_getfuncs.c: New file. 645 * dwarf_func_highpc.c: New file. 646 * dwarf_func_lowpc.c: New file. 647 * dwarf_func_name.c: New file. 648 * Makefile.am (libdw_a_SOURCES): Add dwarf_getfuncs.c, 649 dwarf_func_highpc.c, dwarf_func_lowpc.c, and dwarf_func_name.c. 650 * libdw.map: Add dwarf_getfuncs, dwarf_func_highpc, dwarf_func_lowpc, 651 and dwarf_func_name. 652 * libdw.h: Add prototypes for new functions. 653 * dwarf_child.c: Use INTUSE and INTDEF to avoid PLTs. 654 * dwarf_siblingof.c: Likewise. 655 * dwarf_dieoffset.c: Likewise. 656 * dwarf_highpc.c: Likewise. 657 * dwarf_lowpc.c: Likewise. 658 * libdwP.h: Add prototypes for internal functions. 659 Define Dwarf_Func_s structure. 660 661 2005-03-29 Ulrich Drepper <drepper (a] redhat.com> 662 663 * libdw.h: Add padding in Dwarf_die. 664 665 * dwarf_arrayorder.c: Use INTUSE and INTDEF to avoid PLTs. 666 * dwarf_attr.c: Likewise. 667 * dwarf_begin.c: Likewise. 668 * dwarf_begin_elf.c: Likewise. 669 * dwarf_bitoffset.c: Likewise. 670 * dwarf_bitsize.c: Likewise. 671 * dwarf_bytesize.c: Likewise. 672 * dwarf_diename.c: Likewise. 673 * dwarf_formaddr.c: Likewise. 674 * dwarf_formblock.c: Likewise. 675 * dwarf_formref.c: Likewise. 676 * dwarf_formstring.c: Likewise. 677 * dwarf_formudata.c: Likewise. 678 * dwarf_getarange_addr.c: Likewise. 679 * dwarf_getarangeinfo.c: Likewise. 680 * dwarf_getaranges.c: Likewise. 681 * dwarf_getloclist.c: Likewise. 682 * dwarf_getmacros.c: Likewise. 683 * dwarf_getsrc_die.c: Likewise. 684 * dwarf_getsrcfiles.c: Likewise. 685 * dwarf_getsrclines.c: Likewise. 686 * dwarf_highpc.c: Likewise. 687 * dwarf_lowpc.c: Likewise. 688 * dwarf_nextcu.c: Likewise. 689 * dwarf_offdie.c: Likewise. 690 * dwarf_siblingof.c: Likewise. 691 * dwarf_srclang.c: Likewise. 692 * dwarf_tag.c: Likewise. 693 * libdw_findcu.c: Likewise. 694 * libdwP.h: Add prototypes for internal functions. 695 696 * dwarf_addrdie.c: New file. 697 * dwarf_macro_opcode.c: New file. 698 * dwarf_macro_param1.c: New file. 699 * dwarf_macro_param2.c: New file. 700 * libdw.h: Add declarations. Move Dwarf_Macro definition to libdwP.h. 701 * libdwP.h: Remove Dwarf_Macro definition. 702 * Makefile.am (libdw_a_SOURCES): Add dwarf_addrdie.c, 703 dwarf_macro_opcode.c, dwarf_macro_param1.c, and dwarf_macro_param2.c. 704 * libdw.map: Add entries for new functions. 705 706 2005-03-21 Ulrich Drepper <drepper (a] redhat.com> 707 708 * libdw.h: Handle broken gcc < 4. 709 710 2005-02-15 Ulrich Drepper <drepper (a] redhat.com> 711 712 * Makefile (AM_CFLAGS): Add -Wunused -Wextra -Wformat=2. 713 714 * dwarf_begin_elf.c: Fix warnings. 715 * dwarf_dieoffset.c: Likewise. 716 * dwarf_end.c: Likewise. 717 * dwarf_error.c: Likewise. 718 * dwarf_getpubnames.c: Likewise. 719 720 * libdwP.h: Add new error values. 721 * dwarf_error.c: Support new error values. 722 * dwarf_getpubnames.c: Check parameter value. 723 724 2005-02-05 Ulrich Drepper <drepper (a] redhat.com> 725 726 * Makefile.am: Check for text relocations in constructed DSO. 727 728 * Makefile.am [MUDFLAP] (AM_CFLAGS): Add -fmudflap. 729 730 2005-02-04 Ulrich Drepper <drepper (a] redhat.com> 731 732 * dwarf_siblingof.c (dwarf_siblingof): Add some buffer boundary 733 checks to not read over buffer boundaries for ill-formed DWARF data. 734 735 2004-09-25 Ulrich Drepper <drepper (a] redhat.com> 736 737 * dwarf_child.c: Make compile with gcc 4.0. 738 * dwarf_error.c: Likewise. 739 * dwarf_formblock.c: Likewise. 740 * dwarf_getabbrev.c: Likewise. 741 * dwarf_getattrs.c: Likewise. 742 * dwarf_getsrclines.c: Likewise. 743 * dwarf_tag.c: Likewise. 744 * libdw_form.c: Likewise. 745 746 2004-01-20 Ulrich Drepper <drepper (a] redhat.com> 747 748 * Makefile.am: Support building with mudflap. 749 750 * dwarf_getloclist.c: Fix warnings gcc 3.4 spits out. 751 * dwarf_getsrclines.c: Likewise. 752 * dwarf_memory-access.h: Likewise. 753 754 2004-01-19 Ulrich Drepper <drepper (a] redhat.com> 755 756 * dwarf_getsrcfiles.c: Third parameter can be NULL. 757 758 * libdw.h: Define Dwarf_macro. Declare dwarf_getmacros. 759 Third parameter of dwarf_getsrcfiles can be NULL. 760 761 * libdw.map: Add dwarf_getmacros. 762 * Makefile.am (libdw_a_SOURCES): Add dwarf_getmacros. 763 * dwarf_getmacros.c: New file. 764 765 2004-01-18 Ulrich Drepper <drepper (a] redhat.com> 766 767 * libdw.h: Second parameter of dwarf_getaranges can be NULL. 768 769 * dwarf_nextcu.c: Return -1 if dwarf parameter is NULL. 770 771 * dwarf_getsrclines.c: 772 Use read_2ubyte_unaligned_inc instead of _inc-less variant. 773 774 * dwarf_getaranges.c: Allow naranges parameter to be NULL. 775 776 * libdwP.h (_): Use elfutils domain. 777 778 * dwarf_getsrclines.c (dwarf_getsrclines): Add more branch prediction. 779 780 * dwarf_getsrclines.c: Fix typo in comment. 781 782 2004-01-17 Ulrich Drepper <drepper (a] redhat.com> 783 784 * Makefile.am: Support building with mudflap. 785 786 2004-01-16 Ulrich Drepper <drepper (a] redhat.com> 787 788 * memory-access.h: Add lots of const in case a pointer passed is const. 789 790 * dwarf_formflag.c: New file. 791 * dwarf_getattrs.c: New file. 792 * dwarf_error.c: Add new error value. 793 * libdw.h: Add prototypes for new functions. Adjust prototype for 794 dwarf_getpubnames. 795 * libdw.map: Add new functions. 796 * dwarf_getpubnames.c: Change type of return value and fourth parameter 797 to ptrdiff_t. 798 * libdwP.h: Add new error value. 799 * Makefile.am (libdw_a_SOURCES): Add dwarf_getattrs.c and 800 dwarf_formflag.c. 801 802 * dwarf_getpubnames.c (dwarf_getpubnames): Just fail if dbg is NULL. 803 804 2004-01-12 Ulrich Drepper <drepper (a] redhat.com> 805 806 * dwarf_getarange_addr.c: New file 807 * dwarf_getarangeinfo.c: New file. 808 * dwarf_getaranges.c: New file. 809 * dwarf_onerange.c: New file. 810 * libdw.h: Declare new functions. Define Dwarf_Arange and 811 Dwarf_Aranges. 812 * libdw.map: Add new functions. 813 * libdwP.h: Add new errors. Add aranges member to struct Dwarf. 814 Define Dwarf_Aranges_s and Dwarf_Arange_s. 815 * Makefile.am (libdw_a_SOURCES): Add dwarf_getaranges.c, 816 dwarf_onearange.c, dwarf_getarangeinfo.c, dwarf_getarange_addr.c. 817 * dwarf_error.c: Add new message. 818 819 2004-01-11 Ulrich Drepper <drepper (a] redhat.com> 820 821 * Makefile.am (libdw_a_SOURCES): Add dwarf_lineaddr.c, dwarf_linecol.c, 822 dwarf_linebeginstatement.c, dwarf_lineendsequence.c, dwarf_lineblock.c, 823 dwarf_lineprologueend.c, dwarf_lineepiloguebegin.c, dwarf_onesrcline.c. 824 * dwarf_error.c: Add another message. 825 * dwarf_getsrc_die.c: Adjust for Dwarf_Files and Dwarf_Lines 826 introduction. 827 * dwarf_filesrc.c: Likewise. 828 * dwarf_getsrcfiles.c: Likewise. 829 * dwarf_getsrclines.c: Likewise. 830 * dwarf_lineaddr.c: New file. 831 * dwarf_linebeginstatement.c: New file. 832 * dwarf_lineblock.c: New file. 833 * dwarf_linecol.c: New file. 834 * dwarf_lineendsequence.c: New file. 835 * dwarf_lineepiloguebegin.c: New file. 836 * dwarf_lineno.c: New file. 837 * dwarf_lineprologueend.c: New file. 838 * dwarf_onesrcline.c: New file. 839 * dwarf_lineno.c: Change interface to store result in object pointed 840 to by second parameter. 841 * libdw.h: Add prototypes for new functions. Change dwarf_lineno 842 prototype. Define Dwarf_Files and Dwarf_Lines. 843 * libdw.map: Add new functions. 844 * libdwP.h: Define Dwarf_Files_s and Dwarf_Lines_s. 845 * libdw_findcu.c: Don't initialize nlines field. 846 847 * dwarf_siblingof: Little optimization. 848 849 * dwarf_begin.c: Remember that the ELF descriptor must be closed. 850 * dwarf_end.c: Close ELF descriptor if free_elf is set. 851 * libdwP.h (struct Dwarf): Add free_elf field. 852 853 * Makefile.am (libdw_a_SOURCES): Add dwarf_getstring.c and 854 dwarf_offabbrev.c. 855 * dwarf_getstring.c: New file. 856 * dwarf_offabbrev.c: New file. 857 * libdw.map: Add dwarf_getstring and dwarf_offabbrev. 858 * dwarf_getabbrev.c (__libdw_getabbrev): Add new dbg and result 859 parameters. Don't allocate memory if not necessary and don't lookup 860 previous results if no CU given. 861 (dwarf_getabbrev): Adjust call to __libdw_getabbrev. 862 * dwarf_tag.c: Adjust call to __libdw_getabbrev. 863 * libdw.h: Declare dwarf_offabbrev and dwarf_getstring. 864 * libdwP.h: Change prototype for __libdw_getabbrev. 865 866 * dwarf_getabbrevattr.c: Add offsetp parameter. Fill in before 867 returning if this is wanted. 868 869 2004-01-09 Ulrich Drepper <drepper (a] redhat.com> 870 871 * dwarf_nextcu.c: Add new parameter offset_sizep. Initialize it 872 with offset_size value. 873 * libdw.h: Adjust dwarf_nextcu prototype. 874 * libdwP.h (struct Dwarf_CU): Add offset_size member. 875 * libdw_findcu.c: Adjust dwarf_nextcu call. Initialize offset_size 876 member of new CU struct. 877 * dwarf_formstring.c: Depend on offset_size not address_size for 878 DW_FORM_strp handling. 879 * dwarf_form.c: Likewise for DW_FORM_strp and DW_FORM_ref_addr. 880 881 * dwarf_tag.c (__libdw_findabbrev): Return correct value for 882 failing lookup. 883 (dwarf_tag): Correctly recognize failed lookup. 884 885 * dwarf_end.c (cu_free): Call tdestroy for locs member. Use new 886 function noop_free. 887 * dwarf_error.c: Add message for DWARF_E_NO_BLOCK. 888 * dwarf_formblock.c: New file. 889 * dwarf_getloclist.c: Rewrite to handle a single block. 890 * libdw.h: Define Dwarf_Block. Rename Dwarf_Loc members. Remove 891 Dwarf_Locdesc definition. Declare dwarf_formblock. Remove 892 dwarf_getloclistent declaration. 893 * libdw.map: Add dwarf_formblock, remove dwarf_getloclistent. 894 * libdwP.h: Define struct loc_s and DWARF_E_NO_BLOCK. 895 Add locs member to struct Dwarf_CU. 896 * libdw_fundcu.c: Initialize locs member of new CU. 897 * Makefile.am (libdw_a_SOURCES): Add dwarf_formblock.c. 898 Remove dwarf_getloclistent.c. 899 900 2004-01-07 Ulrich Drepper <drepper (a] redhat.com> 901 902 * libdw.h: Use __nonnull__ attribute only for gcc >= 3.3. 903 * libdwP.h: Likewise. 904 905 * dwarf_getloclist.c: New file. 906 * dwarf_getloclistent.c: New file. 907 * libdw.h: Define Dwarf_Loc and Dwarf_Locdesc. 908 Declare dwarf_getloclistent and dwarf_getloclist. 909 * libdw.map: Add dwarf_getloclistent and dwarf_getloclist. 910 * libdwP.h: Define DWARF_E_NO_LOCLIST. 911 * Makefile.am (libdw_a_SOURCES): Add dwarf_getloclistent.c and 912 dwarf_getloclist.c. 913 914 * dwarf_error.c: More error messages. 915 916 2004-01-06 Ulrich Drepper <drepper (a] redhat.com> 917 918 * dwarf_getsrclines.c: Remove debugging support. 919 920 * dwarf_getsrcfiles.c: New file. 921 * dwarf_filesrc.c: New file. 922 * libdw.h: Declare these functions. Define Dwarf_File. 923 * libdwP.c: Adjust Dwarf_File_s definition. 924 * libdw.map: Add these functions. 925 * Makefile.am (libdw_a_SOURCES): Add dwarf_getsrcfiles.c and 926 dwarf_filesrc.c. 927 * dwarf_getsrclines.c: Initialize cu->files. 928 929 2004-01-05 Ulrich Drepper <drepper (a] redhat.com> 930 931 * libdw.h: Add more nonnull function attributes. 932 933 * dwarf_begin_elf.c (dwarf_begin_elf): Don't initialize mem_tail->next. 934 * dwarf_end.c (cu_free): New function. 935 (dwarf_end): Also free CU tree. Correct freeing of memory blocks. 936 * dwarf_error.c (errmsgs): Add new messages. 937 * dwarf_getsrc_die.c: New file. 938 * dwarf_getsrclines.c: New file. 939 * dwarf_lineno.c: New file. 940 * dwarf_linesrc.c: New file. 941 * dwarf_nextcu.c (dwarf_nextcu): Use read_*byte_unaligned_inc 942 instead of the *_inc-less variants. 943 * libdw.h: Define Dwarf_Line. Add some function attributes. Declare 944 dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, and dwarf_linesrc. 945 * libdw.map: Add dwarf_getsrclines, dwarf_getsrc_die, dwarf_lineno, 946 and dwarf_linesrc. 947 * libdwP.h: Add more error codes. 948 (struct Dwarf): Remove mem_tail.next member. 949 (Dwarf_File): Define type. 950 (struct Dwarf_Line_s): Define type. 951 (struct Dwarf_CU): Add lines and nlines members. 952 (libdw_alloc): Define local variable _tail and use it. 953 Add some function attributes. 954 * libdw_alloc.c (__libdw_allocate): Don't initialize next member. 955 * libdw_findcu.c (__libdw_findcu): Initialize lines and nlines members. 956 * memory-access.h: Add unlikely for the endian conversion paths. 957 * Makefile.am (AM_CFLAGS): Add -std parameter. 958 (libdw_a_SOURCES): Add dwarf_getsrclines, dwarf_getsrc_die, 959 dwarf_lineno, and dwarf_linesrc. 960 961 2003-08-11 Ulrich Drepper <drepper (a] redhat.com> 962 963 * Moved to CVS archive. 964