12015-12-31 David Anderson 2 * configure.in: Now allows --enable-shared and --disable-nonshared 3 * configure: regenerated. 42015-12-19 David Anderson 5 * dwarfdump.c: Now we print macros alone by CU with -m 6 (at least for DWARF5 macro format) 7 * print_lines.c(print_source_intro): Minor local 8 variable ordering change. 9 * print_macro.c(print_source_intro): Minor local 10 variable ordering change. 112015-12-19 David Anderson 12 * print_macro.c: Print the actual macro offset size we will use. 132015-12-18 David Anderson 14 * dwarfdump.c,globals.h print_die.c,print_lines.c, 15 print_macro.c,print_pubnames.c,print_ranges.c: 16 Removed globals elf_max_address and elf_address_size 17 in favor of local variables and new 18 global function get_address_size_and_max(). 192015-12-16 David Anderson 20 * print_aranges.c, print_die.c: Ensure the four 21 error-reporting globals DIE_[CU_][global_]_offset are 22 set properly. 232015-12-16 David Anderson 24 * common.c: Update version string. 25 * dwarfdump.c: Update version string. Fix PRINT_CU_INFO() 26 to do what was intended (and not have a side effect). 27 * print_aranges.c: Folded a too-long line. 28 * print_die.c: Folded a line so both offsets listed on same line. 29 * print_macro.c: moved macro_context call above the print of 30 ".debug_macro" so if the section does not exist we print nothing. 312015-12-15 David Anderson 32 * print_macro.c: Much of printing DWARF5 macros now works. 332015-12-13 David Anderson 34 * print_macro.c: Call new function dwarf_get_macro_ops_count() and 35 print returned values. 362015-12-12 David Anderson 37 * print_macro.c: Now does -vv intro with cu_die print too. 38 * print_macros.c: Only print .debug_macro name if there are some. 392015-12-11 David Anderson 40 * naming.h,naming.c: Added get_MACRO_name(). 41 * print_macro.c: Now reads and prints macro5 header. 422015-12-11 David Anderson 43 * esb.c: esb_append now checks for NULL string pointer. 44 Added comment esb functions do NOT check for NULL pointers 45 generally. 462015-12-10 David Anderson 47 * esb.c: esb_get_copy() failed to account for the trailing NUL. 48 esb_get_copy was not being tested by SELFTEST. Fixed both issues. 492015-12-08 David Anderson 50 * common.c,dwarfdump.c: Update version string. 51 * print_frames.c: Fix trailing whitespace. 52 Implement an attempt at DW_CFA_METAWARE_info. 532015-12-08 David Anderson 54 * print_frames.c: Fix indents and remove trailing whitespace. 55 Add comments: Errors in DIE info just result in omitting 56 procedure names, no warning/errors. 57 * dwarfdump.c: Deleted Elf64_Ehdr *eh64 declaration 58 that can never be used. 592015-11-30 David Anderson 60 * print_frames.c: Remove trailing whitespace. 612015-11-30 David Anderson 62 * Makefile.in: Add print_macro.o to build list. 63 * dwarfdump.c: Add macro_flag flag to signal print 64 of DWARF5 debug_macro data. 65 * globals.h: Export new macro print function. 66 * print_die.c: Call new macro print function, skip that attr 67 in checking-only run.. 682015-11-28 David Anderson 69 * globals.h: Added DEBUG_FRAME_EH_GNU define for consistency.. 70 * print_frames.c: use the new dwarf_get_frame_section_name() 71 and dwarf_get_frame_section_name_eh_gnu() functions for 72 section names. 73 * print_lines.c: Use the new dwarf_get_line_section_name_from_die() 74 function for the section name. 75 * print_locs.c,print_macros.c,print_pubnames.c,print_static_funcs.c, 76 print_types.c,print_weaknames.c: Added comments. These are 77 places where the section is either obsolete or the section 78 name is rarely of any use. 792015-11-27 David Anderson 80 * dwarfdump.1: Mentions that with zdebug sections offsets 81 refer to expanded object section, not compressed section. 82 * print_aranges.c,print_die.c,print_lines.c,print_ranges.c, 83 print_strings.c: Get the real section name from libdwarf. 842015-11-26 David Anderson 85 * common.c,dwarfdump.c: Updated version string. 86 * config.h.in, configure.in, Makefile.in: Deals with 87 zlib when present. 882015-11-15 David Anderson 89 * Makefile.in: Now supports building in a clean separate directory. 902015-11-11 David Anderson 91 * print_abbrevs.c(dwarf_get_array_info): Initialize local variable. 92 * print_die.c(get_location_list): Initialize local variable.: 93 * dwarf_loc.h: Add declaration of _dwarf_loc_block_sanity_check(). 94 * dwarf_loc.c: Call new function _dwarf_loc_block_sanity_check 95 * dwarf_loc2.c: Implement and call new function 96 _dwarf_loc_block_sanity_check to avoid duplicating code. 972015-11-07 David Anderson 98 * dwarfdump.1: Documented -x line5=. 99 * dwarfdump.c: Revised -g so it no longer turns on -i. 100 Revised the meaning of -g to mean use old loclist interfaces 101 (for testing the older interfaces with dwarfdump). 102 * print_die.c(get_small_encoding_integer_and_name): a dwarf_dealloc 103 referenced err whereas *err was correct. 104 Revised loclist output making it look a bit like DWARF5 105 even for DWARF2,3,4 output. Reads better, I think. 106 * print_locs.c: -l gets a 'no longer supported' message 107 as it was never safe to do anyway. 1082015-11-01 David Anderson 109 * configure.in: Add -O0 to --enable-wall. 110 So if a coredump during debugging gdb will work really well. 111 * configure: Regenerated. 112 * print_frames.c: Ommitted a 'return' statement so 113 some output duplicated. Added in the missing return. 1142015-11-01 David Anderson 115 * Makefile.in, configure.in: Implement --enable-wall for compile-time 116 checking. 117 * configure: Regenerate. 118 * print_die.c: Add DWARF5 DW_OPs and .debug_loc.dwo loclists are 119 handled. 120 Now uses either latest (DWARF5) 121 interfaces or earlier, repurposing the old -g option to select. 122 * print_frames.c,print_frames.h: Printing expressions 123 (in .debug_frame, .eh_frame) 124 now honors -g so DWARF5 expressions handled. 125 * print_lines.c: Fixed some formatting. 126 * print_locs.c: Changes reflecting code calling into print_frames.c 1272015-10-26 David Anderson 128 * print_die.c: Removed debug printf.Corrected DW_OP_GNU_const_type 129 handling (cannot be fully reported 130 for certain new location operators). 1312015-10-15 David Anderson 132 * print_die.c: Added DW_FORM_strp_sup, 133 same idea as DW_FORM_GNU_strp_alt. 1342015-10-15 David Anderson 135 * dwarfdump.c: Add enum line_flag_type_e so we can test 136 all the srclines interfaces (4 of them). Expand -x 137 for that too. 138 * print_die.c: Support DW_FORM_GNU_strp_alt. 139 * print_lines.c: Update for old and new srclines 140 interfaces. 141 * globals.h: Added the enum line_flag_e variable for 142 recording -x line5= value. 1432015-10-06 David Anderson 144 * dwarfdump.c: Now allow selecting alternate line table 145 reading code so line table routines can be tested thoroughly. 146 * print_lines.c: Uses one of the selected line table routine 147 sets. Adds new line access routine calls to test those too. 148 * globals.h: Declares new flag line_skeleton_flag; 149 * print_die.c: Moved a local declaration to where it is used. 150 Added a missing DW_DLV_ERROR check so in case of error 151 we do not leak memory. 1522015-09-26 David Anderson 153 * dwarfdump.c, common.c: Update version string. 154 * print_lines.c: Added local variables for clarity 155 in a call, changed the dwarf_srclines_dealloc() location 156 to fully clean up after a two-level line table srcfiles call. 1572015-09-26 David Anderson 158 * dwarfdump.c, common.c: Update version string. 1592015-09-24 David Anderson 160 * dwarfdump.c, common.c: Update version string. 161 * print_lines.c: IA in line header hint is 162 really spelled IS. Fixed now. 163 * dwarf_elf_access.c: Added R_IA64* and R_390 relocation ifdefs 164 for cases where they are not in a test machines elf.h or the like. 1652015-09-23 David Anderson 166 * print_lines.c: Removed accidental newline from output. 1672015-09-22 David Anderson 168 * print_die.c: Removed trailing whitespace and fixed indentation mistake. 169 * print_lines.c: Fixed indentation and inconsistencies 170 in spelling line table field hints. 171 Leaving IA as has been for a long time 172 though it should be spelled IS. 1732015-09-19 David Anderson 174 * print_lines.c: Tweaking two-level line table code, mostly 175 comments.. 1762015-09-17 David Anderson 177 * print_lines.c: Adding handling of experimental two-level 178 line table. 1792015-09-15 Carlos Alberto Enciso 180 * common.c: For Windows version, add a symbol with the 181 release date (taken from the distributed compressed archive), 182 to be used by print_version_details() for better 183 tracking of versions. 184 * print_die.c: The text search (-S), now follows 185 the DW_AT_specification 186 and the DW_AT_abstract_origin attributes, 187 to get the associated name; 188 this finds the declaration and definitions 189 DIEs for a member functions 190 or the abstract and concrete instance DIEs for inlined functions. 191 Fix some C99 issues with local variable declarations in 192 get_attr_value(). 193 * print_aranges.c: Add an extra newline in print_aranges(). 1942015-09-15 David Anderson 195 * print_die.c: for case DW_AT_dwo_id a c99-ism has been 196 changed to be like C89. 1972015-09-14 David Anderson 198 * dwarfdump.c: Remove trailing space. 199 * print_frames.c, globals.h: print_frame_inst_bytes() defined and used 200 in one file, so made a static function, removed from globals.h 2012015-09-13 David Anderson 202 * dwarfdump.c, common.c: Update version string. 2032015-09-11 David Anderson 204 * dwarfdump.c: Update usage message to mention 205 -x tied= and update version strings. 206 * common.c: Update version string. 2072015-09-11 David Anderson 208 * dwarfdump.c: Fixed copy/paste errors so DebugFission 209 code works (see tieddbg in the source). 2102015-09-11 David Anderson 211 * dwarfdump.c, dwarfdump.1: Added -x tied=<path> 212 option so one can get .debug_addr data when referencing 213 a .dwp or .dwo. Tieing these together. 214 * print_die.c: Fixed indent errors. 2152015-09-05 David Anderson 216 * tag_attr.list,tag_attr_ext.list,tag_tree.list: removed 217 trailing whitespace. 2182015-07-12 David Anderson 219 * dwarfdump.c: Use dwoptind dwoptarg, not optind, optarg 220 * dwgetopt.c,dwgetopt.h,dwgetopttest.c,tag_attr.c, 221 tag_tree.c: Use dwoptind dwoptarg etc, 222 not optind, optarg, optopt op6error etc. 223 * print_die.c: updated commentary. 2242015-05-07 David Anderson 225 * common.c, dwarfdump.c: Update version string. 226 * print_die.c: Print DW_AT_dwo_id properly as a Dwarf_Sig8 value. 2272015-05-03 David Anderson 228 * print_die.c: Print the fission data from the 229 index section when we print cu header, not when printing cu DIE. 230 Moved cu header/cu die print code to functions, simplifying 231 calling code. 2322015-05-01 David Anderson 233 * tag_attr.list: Added a DW_AT_signature and 234 moved a couple attributes to match the standard-document 235 order of attributes. 2362015-03-10 David Anderson 237 * dwarfdump.c: Update version string. 238 * common.c: Update version string. 239 * dwgetopt.c: Was mishandling options 240 missing their required argument and 241 coredumping dwarfdump. 242 * getopttest.c: Added new tests to ensure 243 we have the dwgetopt() fixes working properly. 244 * Makefile.in: Added new test runs to 'make test'. 245 * print_die.c, print_lines.c: Removed instances 246 of trailing whitespace. 2472015-03-09 David Anderson 248 * Makefile.in: added new tests of dwgetopt. 249 Runs not only dwgetopt but system getopt. 250 * dwarfdump.c: New function set_checks_off() 251 so if printing we don't do checks (intended 252 to be this way for a long time now). 253 Updated version string. 254 * common.c: Updated version string. 255 * print_die.c: Was not always recognizing unit DIES 256 DW_TAG_partial_unit or DW_TAG_type_unit where it saw 257 DW_TAG_compile_unit. Now does so. 258 * dwgetopt.c: Errors could lead to dwarfdump coredump. Fixed. 259 * getopttest.c: Added several new tests. Now one 260 can run single tests and run against either getopt or dwgetopt 261 (set at compile time of getopttest.c). 2622015-03-03 David Anderson 263 * tag_attr.list: Removed DW_AT_sibling from DW_TAG_partial_unit. 264 DW_TAG_compile_unit. Removed DW_AT_containing_type from 265 DW_TAG_subprogram, DW_TAG_structure_type. 266 * dwarfdump.c,common.c: Update version strings. 267 * print_die.c: Fix indent mistakes. Add comment 268 in _dwarf_print_one_expr_op() that one error is 269 not presently realizable (FreeBSD compiler 270 noticed the situation). 271 * print_ranges.c: Fix indent mistakes. 272 * tag_attr.c: Remove trailing whitespace from a #include line. 2732015-03-03 Carlos Alberto Enciso 274 * dwarfdump.c: Add allocate_range_array_info(), 275 release_range_array_info() calls to help fix range checking. 276 * globals.h: Add declarations of range checking functions. 277 * print_die.c: Add check_range_array_info() call. 278 Add record_range_array_info_entry() call. 279 Move all the range check code out of print_die.c. 280 Add handling of high_pc as an offset, not just as a value. 281 * print_ranges.c: Delete unneeded includes. 282 Add check_ranges_list() implementation moved from 283 print_die.c. Add new ranges check functions. 284 Range check error messages now appear later in the output, 285 though the content is identical. 286 * tag_attr_ext.list: Add DW_TAG_GNU_call_site and 287 DW_TAG_GNU_call_site_parameter tag attr combinations. 288 * tag_tree_ext.list: Add DW_TAG_GNU_call_site DW_TAG_call_site_parameter 2892015-02-22 David Anderson 290 * configure.in: removed getopt.h from tests, we use 291 local dwgetopt now. 292 * dwgetopt.h: Function name is dwgetopt. Prototype named right now. 293 Copied from libdwarf dwgetopt.h 294 * configure: regenerated 295 * Makefile.in: build dwgetopt.o 296 * dwgetopt.c: Copied from libdwarf source. 297 * tag_attr.c,tag_tree.c: Now call dwgetopt() instead of getopt(). 298 2992015-02-04 David Anderson 300 * common.c,dwarfdump.c:Updated version string. 301 * print_debugfission.c: Now we are using a Dwarf_Sig8 302 for fission hash so we introduce an esb_s to do 303 the formatting. 304 * tag_attr.c: Now we format a more detailed message when 305 we detect an insufficient static tag_attr or tag_tree 306 array instance. It's code only used at build time so 307 just giving up is fine: someone changed dwarf.h. 308 * tag_attr.list: Adding new TAGs and new Attrs 309 from DWARF5. Since the DWARF5 standard not yet final 310 these could change! 311 * tag_attr_ext.list: Added new GNU attributes. 312 * tag_common.h: updated DW_TAG_last and DW_AT_last 313 STD_TAG_TABLE_ROWS STD_ATTR_TABLE_COLUMNS values 314 due to dwarf.h updates. 315 * tag_tree.list: New entries from DWARF5. 3162015-01-31 David Anderson 317 * DWARFDUMPCOPYRIGHT: updated to 318 reflect changes today. Old versions 319 of the copyright notices still shown here. 320 * common.c,dwarfdump.c,dwconf.c,esb.c,makename.c,naming.c, 321 print_abbrevs.c,print_aranges.c,print_die.c,print_frames.c, 322 print_lines.c,print_locs.c,print_macros.c,print_pubnames.c, 323 print_ranges.c,print_reloc.c,print_sections.c,print_static_funcs.c, 324 print_static_vars.c,print_strings.c,print_types.c,print_weaknames.c, 325 strstrnocase.c,tag_attr.c,tag_attr.list,tag_attr_ext.list, 326 tag_common.c,tag_tree.c,tag_tree.list,tag_tree_ext.list, 327 uri.c,uritablebuild.c: Removed obsolete SGI postal 328 address and web references. 3292015-01-31 David Anderson 330 * common.h,dwconf.h,esb.h,globals.h,makename.h,naming.h, 331 print_frames.h,print_reloc.h,print_sections.h,tag_common.h,uri.h: 332 The address and URI for SGI is obsolete and there is no 333 replacement so deleted some lines from the copyright 334 statements. 3352015-01-30 David Anderson 336 * common.c,dwarfdump.c: Update version string. 337 * globals.h: Added format_sig8_string() to global functions. 338 * print_debug_fission.c: Updated .debug_cu/tu_index hash signature 339 code to match libdwarf (Dwarf_Sig8, not Dwarf_Unsigned). 340 Allow for missing hash (?). 341 * print_die.c: Use format_sig8_string(). 3422015-01-29 David Anderson 343 * print_die.c: Two places used C99-only variable 344 declaration. Moved declarations up to conform to C90. 3452015-01-24 David Anderson 346 * dwgetopt.c,dwgetopt.h: Using NetBSD getopt source with 347 modifications to support :: for uniform behavior 348 for all users. Not all getopt are the same. Named dwgetopt(). 349 * dwgetopttest.c: Does tests of dwgetopt() for conformance 350 with dwarfdump requirements. See 'make selftest'. 351 * Makefile.in: Now has selftest for dwgetopt and 352 links dwgetopt.o into dwarfdump. 353 * esb.c: Now prints PASS on success and counts errors. 354 * dwarfdump.c: Now calls dwgetopt and includes dwgetopt.h 355 Added a new global so we recognize where needed 356 not to do some checks when checking ( 357 for debugfission some things not sensible). 358 * globals.h: Removed cu_offset (not needed) and added 359 suppress_checking_on_dwp flags. 360 * print_die.c:renamed cu_offset to be a static: dieprint_cu_offset 361 Reset it when finished with a CU. (-k checks got into trouble 362 when both .debug_info and .debug_types present). 3632015-01-21 David Anderson 364 * common.c, dwarfdump.c: Update version string. 365 * print_die.c: For a DW_FORM_ref_sig8 type signature 366 value, if not printing the actual FORM print 367 <type signature> so the hex value makes sense. 368 It is obviously not a .debug_info global offset. 369 Now prints debug fission (dwp) information for 370 each CU with such. 3712015-01-18 David Anderson 372 * common.c, dwarfdump.c: Update version string. 3732015-01-15 David Anderson 374 * dwarfdump.c: dump_unique_errors_table() ifdef out 375 of normal compiles, it is unused. Unused local variables 376 removed. 377 Update version string. 378 * esb.c: Moved stdarg.h include just after stdio.h include 379 for positioning consistency. 380 * globals.h: Added stdarg.h include just after stdio.h 381 include as we use va_list a lot and so stdarg.h 382 is required. 383 * print_debugfission.c: Remove two unused local variables. 384 * print_frames.c: Remove trailing whitespace. 385 * tag_attr.c: #include stdarg.h. Add {} to array initializers 386 output to avoid compiler warning. 387 * tag_common.c: Move stdarg.h include to just after 388 stdio.h for positioning consistency. 389 Update version string. 390 * tag_tree.c: Revised include order to start with 391 globals.h and to not duplicate includes of stdio.h etc. 392 Add {} to array initializers 393 output to avoid compiler warning. 394 * testesb.c: Add include of stdarg.h. 3952015-01-12 David Anderson 396 * tag_common.c: Add comments about va_start, va_end. 397 * esb.c: Add comments about va_start, va_end. 398 Add va_end in the selftest code. 399 * common.c: Update version string. 400 * dwarfdump.c: Update version string. Add va_end() 401 and comments about va_end. 4022015-01-08 David Anderson and Carlos Alberto Enciso 403 * Makefile.in: add selftest: rule, which tests esb.c 404 * dwarfdump.c: Add new options -O file=path, -kD -kG -ku kuf. 405 New checking and reporting features intended to give a 406 report on attribute and tag usage. 407 Update version string. 408 * common.c: Update version string. 409 * esb.c, esb.h: Added new interface using stdarg. 410 Added self-test feature. 411 * dwarf_makename.c: new #pragma (not Linux/Unix related). 412 * print_die.c: Implements collecting the new statistics 413 dwarfdump reports. 414 * print_lines.c: New statistics collected. 415 * tag_attr.c: New checks for the tag/attr table correctness. 416 * tag_attr.list: Fixes duplicated entries. 417 * tag_attr.list_ext: Adds APPLE attribute DW_AT_APPLE_optimized 418 that llvm emits. 419 * tag_common.c: bad_line_input() now allows stdarg calls so 420 its easier to emit good error messages. 421 * tag_common.h: bad_line_input() arg list changed a little. Stdarg now. 422 * tag_tree.c: New tag tree checking done. New statistics 423 available. 424 * tag_tree.list: Adds DW_TAG_unspecified_type, 425 DW_TAG_rvalue_reference_type, 426 DW_TAG_restrict_type. 427 * tag_tree_ext.list: Adds DW_TAG_GNU_template_template_parameter. 428 Fixes duplication of entries. 4292015-01-05 David Anderson 430 * dwarfdump.c: Don't call dwarf_finish() if 431 the dwarf-init call failed. 432 * common.c,dwarfdump.c: Updated version string. 4332015-01-01 David Anderson 434 * A new year begins. 435