compilation-bundle/dwarf-compilation.base/contrib/libdwarf/dwarfdump/ChangeLog2016

509 lines
24 KiB
Plaintext

2016-11-24 David Anderson
* common.c,dwarfdump.c,tag_attr.c,tag_tree.c:
Update version strings.
2016-11-24 David Anderson
* Makefile.in: Clean *~
2016-11-22 David Anderson
* print_abbrevs.c: Some -k abbrev warnings did not make it clear that
they were checking against a heuristic sanity-check value
for the maximum number of attributes, not a genuine
maximum.
2016-11-22 David Anderson
* tag_attr.c: Remove bogus blank line with trailing spaces.
2016-11-11 David Anderson
* print_frames.c: Apply fix to local_dwarf_decode_s_leb128_chk so
it matches libdwarf dwarf_leb.c. A fix for certain bit
pattern provoking undefined behavior in C..
2016-11-01 David Anderson
* tag_attr.c,tag_common.h,tag_attr_ext.list: Adding
Ada GNAT gcc attributes DW_AT_GNU_numerator,
DW_AT_GNU_denominator, DW_AT_GNU_bias in the extended
table for checking.
2016-10-21 David Anderson
* common.c,dwarfdump.c,tag_attr.c,tag_tree.c: Update
version strings.
2016-09-30 David Anderson
* configure.in: Add additional -fsanitize tests to
--enable-sanitize option.
* configure: Regenerated.
* print_die.c: Ensure << applied to unsigned
to avoid undefined operation. We were getting
officially undefined behavior.
* tag_attr_ext.list: Removed trailing whitespace from
two lines.
2016-09-30 David Anderson
* makename.c: The unused static function value_hashfunc()
has been removed.
* tag_attr.c, tag_tree.c: Changed (1<<bit) to
(((unsigned)1)<<bit) to avoid a runtime error
(during dwardump build) about the left shift.
2016-09-27 David Anderson
* esb.c: Deleted file-static variable that was only
used for a test. No longer needed.
2016-09-27 David Anderson
* print_die.c: Changed the name of experimental
loclist operators from LLE to LLEX
as these are in use for certain DWARF4 loclist
providers. The DWARF5 LLE don't use the same
numberic values as the experimental ones.
2016-09-23 David Anderson
* Makefile.in: A mistake here meant every compile
rebuilds all of dwarfdump even with a trivial change.
Fixed so now trivial changes just rebuild a minimum.
The dependencies here remain incomplete: if you change
a data structure you must 'make clean' and recompile
everything in dwarfdump.
2016-09-22 David Anderson
* dwarfdump.c,print_die.c,print_frames.c,print_gdbindex.c:
In case of error, dwarf_dealloc the error once it
has been printed. Avoiding a small memory leak.
2016-09-21 David Anderson
* configure.in: Supports --enable-sanitize which
sets dwfsanitize so build uses -fsanitize=address .
* configure: Regenerated.
* Makefile.in: Now uses dwfsanitize (when set)
during builds. Added dwarf_tsearchbal.c to the makename
build so dwarf_tsearchbal.o is available for tag_tree_build
and tag_attr _buildprograms at build time.
* dwarfdump.c: Moved all static struct esb_s variables
to the top level and ensure they are destructed on
normal exit. Destruct all static makename strings, abbrev
data, sanitized strings, and ranges strings.
Now all allocated memory is freed before a normal exit.
* esb.c: Added {} and commentary for clarity.
esb_destructor now a bit more careful (redundantly but
helpful for a reader).
* globals.h: Declared destructors allowing access to
static data allocated in certain source files.
Fixed the selftest code.
* macrocheck.c: Correct selftest code.
* makename.c: Now uses dwarf_tsearch to keep a record of
strings it allocates and avoids duplicating strings.
A destructor gives a way to free the allocated memory.
* makename.h: Added declaration of makename_destructor().
* print_abbrevs.c: Implemented destruct_abbrev_array() to
clean up a static array.
* print_die.c: Tidied up declaration/constructor pairs
so it's easier to see that all declarations have a constructor
call.
* print_lines.c: Tidied up declaration/constructor pair
so it's easier to see that the constructor is called.
* print_locs.c: Tidied up declaration/constructor pair
so it's easier to see that the constructor is called.
* print_ranges.c: Implemented ranges_esb_string_destructor()
to destruct local static esb string at normal dwarfdump exit.
* sanitized.c: Implemented sanitized_string_destructor()
to destruct local static esb string at normal dwarfdump exit.
* strstrnocase.c: Code could do *ct past end of string.
Fixed to avoid that.
2016-09-15 David Anderson
* configure.in: Added check for unistd.h.
* configure: regenerated.
* dwarfdump.c,tag_attr.c,tag_tree.c: Add #ifdef HAVE_UNISTD_H
for unistd.h include.
2016-09-15 David Anderson
* tag_tree.c: Two local variables had no initializer.
Though adding the initializers is logically unnecessary
it is the standard way to code in libdwarf/dwarfdump.
2016-09-13 David Anderson
* print_die.c: Shortened the printing of DW_AT_discr_list
to improve readability.
2016-09-09 David Anderson
* tag_attr.c,tag_tree.c: Further improvements to ensure we do not run
off the ends of rows or columns.
New commentary on array contents of generated arrays.
* tag_tree.c: Further improvements to ensure we do not run
off the ends of rows or columns.
* tag_attr_ext.list: Removed accidental extra characters.
Added DW_AT_GNU_dwo_id to dW_TAG_compile_unit.
* tag_common.c: The static declaration of the internal tables
used to build table source code was not checked so there
were some array entries stepped on. fixed.
* tag_common.h: Added commentary. Made the build-time-only
static array declaration size macros more explicit.
2016-09-09 David Anderson
* print_die.c: Fixed compiler warnings introduced
in previous commit.
2016-09-08 David Anderson
* print_die.c: Now we use the new dwarf_discr_list()
to read DW_AT_discr_list correctly and print it.
* tag_attr.c,tag_tree.c: Now we check for too-small and too-large
array sizes and stop the build in case of error.
* tag_common.h: Now the static array sizes match
the lists.
2016-06-13 David Anderson
* sanitized.c: Added static keyword to declaration of
no_questionable_chars().
* print_frames.c: Added a warning about a useless
frame operator (if such appears, only checkedwith -f -vvv).
Ensure we print rows generated even if a pointless last row
(a break becomes continue).
* common.c,dwarfdump.c,tag_attr.c,tag_tree.c,gennames.c:
Update version string.
2016-06-12 David Anderson
* common.c,dwarfdump.c,tag_attr.c,tag_tree.c,gennames.c:
Update version string.
2016-06-12 David Anderson
* print_frames.c: Using a new frame interface to reduce
dwarfdump runtime on frame printing by 10 percent.
2016-06-10 David Anderson
* print_frames.c: Added commentary as the previous comment
about printing CFA and other registers having a 'duplicate row'
was a bit terse.
2016-06-08 David Anderson
* sanitized.c: Remove trailing whitespace.
2016-06-08 David Anderson
* common.c,dwarfdump.c,tag_attr.c,tag_tree.c:
Update version string.
* sanitized.c: Only fix strings that have bad
characters in them. This improves dwarfdump performance.
2016-06-01 David Anderson
* dwarfdump.c, common.c: Update version string.
Use DW_VERSION_DATE_STR instead of DWARFDUMP_VERSION
* tag_attr.c, tag_tree.c: Use DW_VERSION_DATE_STR instead
of __DATE__ __TIME__
* Makefile.in: Tweaked for debian build compatibility.
2016-05-22 David Anderson
* dwarfdump.c, common.c: Update version string.
2016-05-20 David Anderson
* print_frames.c: One test for erroneous length was
incorrectly coded, leading to possible crash when encountering
erroneous frame information.
2016-05-19 David Anderson
* configure.in: Does a better job reporting configure actions.
* configure: Regenerated
* dwarfdump.1: Fixed spelling errors and moved ./dwarfdump.conf
right one space to get the dot off column 1.
2016-05-18 David Anderson
* print_die.c: Fix typo in error message.
* print_frames.c: Do additional checks for incorrect data
when printing frame instructions to avoid dwarfdump crash..
2016-05-12 David Anderson
* print_abbrevs.c,print_aranges.c,print_frames.c,print_sections.c:
Removed trailing whitespace. Fixed indentation.
* tag_attr.c,tag_tree.c: Ensure calls to libdwarf interfaces
in these build-time tools check the status returned.
2016-05-10 David Anderson
* print_aranges.c: Minor commentary change and
rearranging lines for clarity.
* print_die.c: formwith->form with
in an error message.
* print_frames.c: Now checks for bogus expression block
lengths and bogus LEB values. LEB reading functions
now here and static functions.
* print_sections.c: Moved leb reading functions to print_frames.c
2016-05-07 David Anderson
* dwarfdump.c, common.c: Update version string.
* print_frames.c: For local variable added
initialization-at-definition.
2016-05-06 David Anderson
* sanitized.c: Fixed trailing whitespace and
added 'static' to local function definition.
2016-05-05 David Anderson
* Makefile.in: Added sanitized.o to objects to build.
* dwarfdump.1: Document '-x nosanitizestrings'.
* dwarfdump.c: Set internal flag based on '-x nosanitizestrings'.
* globals.h: add extern for the flag no_sanitize_string_garbage
and the sanitized() interface.
* print_die.c,print_frames.c,print_lines.c,
print_macro.c, print_macros.c : Call sanitized() on some strings.
* sanitized.c: Changes control characters int output to %xx
uri-style (by default). See '-x nosanitizestrings'.
2016-05-03 David Anderson
* dwarfdump.c: revise print_error_maybe_continue() to
print additional useful data.
* print_die.c: If dwarf_srcfiles() gets DW_DLV_NO_ENTRY
do not print a warning. Normal to have no DW_AT_stmt_list.
* print_lines.c: Fix column header 'row' changed to 'lno'.
Refine a CHECK message to say a DW_LNE_end_sequence
does not exactly match function high address. It is not
an error, just something about how the code was emitted.
2016-04-30 David Anderson
* dwarfdump.c, common.c: Update version string.
2016-04-27 David Anderson
* dwarfdump.c, common.c: Update version string.
2016-04-27 David Anderson
* dwarfdump.c: Update version string.
Remove a field from printf on error as that duplicates
the error number in the error string.
2016-04-25 David Anderson
* esb.c, dwarfdump.c: Fix a couple indent mistakes.
2016-04-25 David Anderson
* esb.h, esb.c: The typedef for 'string' is now gone, it
was never helpful..
* dwarfdump.c: Remove 'string' use.
* dwgetopt.c: Moved test-only function to getopttest.c.
Added (void) argument to a the functions with no arguments.
* getopttest.c: Repaired failures to to renaming
to dwoptind etc and added the test-only
function from dwgetopt.c
* globals.h: Removed 'string' typedef.
* print_die.c,print_frames.c, print_lines.c, print_strings.c,
tag_attr.c, tag_tree.c: Removed use of 'string' type, use
plain old char*.
2016-04-21 Carlos Alberto Enciso
Printing using the 'esb' module was broken. It seems to work
because the default internal buffer size (240), was big enough
to receive the resulting output.
* esb.c, esb.h: Missing prefix 'esb' for 'allocate_more'.
Initial buffer size reduced to 16.
New function 'esb_open_null_device': open 'null' device.
New function 'esb_close_null_device': close 'null' device.
New function 'esb_allocate_more_if_needed': allocate more
space if required, leaving the contents unchanged, so the
caller, does not need to worry about it.
There are 2 cases:
Windows: use the 'null' device to get the required space
UNIX: use a big buffer (512). But if the result is bigger,
the original problem will be shown.
The function 'esb_append_printf_ap', now takes care of
increasing the buffer if needed.
* dwarfdump.c: In the case of windows, open and close the 'null'
device, in order to setup the esb module.
2016-04-21 Carlos Alberto Enciso
* globals.h: Do not define 'string' for a C++ build; it clashes with
the 'std::string'.
* print_die.c: Minor typo error.
2016-04-21 Carlos Alberto Enciso
* For a WINDOWS version, display the 32/64 bits configuration.
2016-04-21 Carlos Alberto Enciso
* Use the _WIN32 macro to identify a WINDOWS specific code.
2016-03-17 David Anderson
* print_die.c(print_one_die_section): One dieprint_cu_goffset
Dwarf_Unsigned->Dwarf_Off.
2016-03-12 David Anderson
* print_abbrevs.c(print_abbrevs): Printed output of an abbrev with code
and tag but no attributes was simply wrong. Now fixed.
Now avoids printing children flag on a null abbrev (a NUL byte
meaning no abbrev is there at all, ending a list of abbrevs).
* print_die.c: it was difficult, even with -G -v, to identify
the actual offset (in .debug_abbrev) of the abbreviations.
Now -i -G -v gives a bit more data on abbreviations.
2016-03-09 David Anderson
* dwarfdump.c,globals.h,print_aranges.c,print_die.c,print_frames.c,
print_lines.c,print_macro.c,print_pubnames.c:
Remove the global dieprint_cu_offset, use local vars and pass around instead.
Ensure the traverse() logic when checking type references do not evaluate
references to other sections. Many argument lists got an additional argument or two.
2016-03-07 David Anderson
* dwarfdump.c: Update version string. Added CU_low_address so
CU_base_address is properly used only for the DWARF
CU 'base address' notion. Print CU_low_address in PRINT_CU_INFO().
* common.c: Update version string
* globals.h: New macro DROP_ERROR_INSTANCE(d,r,e) improves consistency
where we need to drop a Dwarf_Error instance.
* print_die.c: Support for CU_low_address. Use DROP_ERROR_INSTANCE
where appropriate.
* print_frames.c: Use DROP_ERROR_INSTANCE
where appropriate.
2016-03-03 Carlos Alberto-Enciso
* dwarfdump.c: Missing '_' just for consistency.
Print any harmless errors only the required in command line
* globals.h: Unused declaration.
* print_die.c: When displaying a DW_AT_type offset error, uses the standard
0xdddddddd format. Wrap to 80 columns, a long line.
2016-02-17 Carlos Alberto-Enciso
* dwarfdump/tag_attr_ext.list,dwarfdump/tag_common.h,
dwarfdump/tag_tree_ext.list: Tighten up the list limits
and add commentary about the list limits.
2016-02-14 DavidAnderson
* dwarfdump.c,common.c: Updated version strings.
* print_die.c,print_strings.c: fixed indent errors.
2016-02-14 Carlos Alberto-Enciso
* tag_attr_ext.list, tag_tree_ext.list: Adding
DW_TAG_GNU_template_parameter_pack,DW_TAG_GNU_formal_parameter_pack.
* tag_tree.c: Printed wrong name from tag-tree table in
a comment.
* tag_common.h: Ext tag table rows count was higher than needed.
Ext attr table rows increased to 11.
2016-02-13 David Anderson
* dwarfdump.c,globals.h,print_aranges.c,print_die.c,
print_frames.c,print_lines.c,print_locs.c,print_macro.c,
print_pubnames.c,print_reloc.ckprint_static_funcs.c,
print_static_vars.c,print_strings.c,print_types.c,
print_weaknames.c: Removed global Dwarf_Error err
and provided local Dwarf_Error as needed.
2016-02-13 David Anderson
* configure.in: Add -Wshadow to --enable-shared. Add else and
cross-compile [] to the AC_TRY_RUN
* configure: Regenerate.
* dwarf_tsearchbal.c: Delete shadowed variable p, we use
the original instead.
* dwarfdump.c: Rename variables to avoid confusing
duplicated names (found by -Wshadow). #if 0 the
unused function old_get_cu_name(), which should get deleted.
* globals.h: Fixed prototypes, #if 0 prototype of
the unused function old_get_cu_name().
* print_abbrevs.c, print_aranges.c,print_debugfission.c,
print_die.c,print_frames.c, print_gdbindex.c, print_lines.c,
print_pubnames.c, print_ranges.c, print_sections.c,
tag_attr.c, tag_tree.c: Add local Dwarf_Error and
rename variables to avoid shadowing confusion.
2016-02-10 David Anderson
* globals.h: Change enum val from std to singledw5.
Some compilation environments reserve 'std'.
* dwarfdump.c,print_lines.c: Use the new spelling.
2016-02-10 David Anderson
* common.c,dwarfdump.c: Update version string.
2016-02-07 David Anderson
* common.c,dwarfdump.c: Update version string.
2016-02-06 David Anderson
* print_die.c,tag_attr.c,tag_tree.c: Remove trailing whitespace.
2016-02-06 David Anderson
* warningcontrol.h: Defines UNUSEDARG macro as needed.
* common.c,dwarf_tsearchbal.c,dwarfdump.c,globals.h,
macrocheck.c: Now use UNUSEDARG macro so known-unused
args do not cause spurious warnings.
* configure.in: Sets HAVE_UNUSED_ATTRIBUTE if the compiler
in use supports __attribute ((unused)). So we can have
lots of warnings turned on without seeing the warnings
we wish to ignore for now.
* configure,config.h.in: Regenerated.
2016-02-06 David Anderson
* print_frames.c: Was printing cie index, not fde index,
in the fde output. Now prints more sensibly.
Now tests do_print_dwarf, the flag it should have been using,
to decide whether to print.
2016-02-02 David Anderson
* dwarfdump.c: Get section sizes so we can do a better
sanity check on ofsets (ie, call dwarf_get_section_max_offsets_c()).
Check DWARF2 macros for sanity just as we do DWARF5
macros. Read DWARF2 macros per-cu, not as a standalone
section. Add global data section_high_offsets_global,
a struct with all known section sizes.
* macrocheck.c: New section size argument for more complete
size analysis.
* globals.h: Declarations for section_high_offsets_global.
* macrocheck.h: Update prototype of print_macro_statistics().
* print_die.c: Drop section-as-a-whole macro reporting for
macinfo in favor of reporting per CU.
* print_macros.c: Allow for print and check runs (not both
at once).
2016-01-28 David Anderson
* dwarfdump.c,common.c: Update version string.
* print_die.c: Changed the most frequent global die
offset values to print as GOFF=0x...
for uniformity with -G and space saving from the
string 'global die offset'.
2016-01-27 David Anderson
* print_die.c: Added a helpertree find call on typedieoffset
which is really a better check for known signed/unsigned.
2016-01-26 David Anderson
* dwarfdump.c,common.c: Update version string.
2016-01-26 David Anderson
* Makefile.in: Added helpertree.h, and .c.
* dwarfdump.c: Added include helpertree.h
* print_die.c: Now attempts (harder) to
figure out if a constant is really signed or insigned
when printing it. Fixes annoyance with printing attributes
longer than 27 characters.
Unifies a number of printf-style calls into functions, reducing
the number of statically visible calls to sprintf.
Attempts to remember whether some things are explicitly
typed as signed or unsigned.
* helpertree.h, helpertree.c: New. Simple use of tsearch
to memo-ize signedness.
2016-01-20
* configure.in: Added more compiler optiosn to --enable-wall
* configure: Regenerated
* dwarf_tsearchbal.c: Fixed warnings.
* dwarfdump.c: Fixed warnings.
* dwconf.c: Fixed warnings.
* dwconf.h: Fixed warnings.
* esb.c: Fixed warnings.
* globals.h: Fixed warnings.
* print_debugfission.c: Fixed warnings.
* print_die.c: Fixed warnings.
* print_frames.c: Fixed warnings.
* print_sections.c: Fixed warnings.
2016-01-20
* macrocheck.c: Remove trailing whitespace.
* print_lines.c: Only print line context record
if we do_print_dwarf is non-zero. The directory index
was printing as 0 in the line_context record. Was a typo
in the printf, now fixed.
2016-01-20
* configure.in: Now --enable-wall adds -Wdeclaration-after-statement
etc.
* configure: Regenerated.
* dwarfdump.c: Now all functions have visible prototypes, no ().
* dwconf.c: Now local func declared static.
* dwgetopt.c: Added include dwgetopt.h. Unused function
#if 0 so invisible.
* globals.h: Now all functions have prototypes, no ().
* macrocheck.c: Removed unused locals. Fixed a
dwarf_twalk call to *tree (not just tree).
* naming.c: Added include naming.h.
* print_gdbindex.c: Made local function static.
* tag_attr.c,tag_common.c: Made local function static.
2016-01-19 David Anderson
* dwarf_tsearchbal.c: Deleted the unused function rotatex().
* dwarfdump.c: Remove duplicate trailing ;
* esb.c(esb_append): Straighten out the logic
and avoid doing append if the to-be-appended
string is empty.
* globals.h Add ifdef __cplusplus for extern "C".
* esb.h,naming.h: Idempotent #ifndef and __cplusplus extern "C" added.
* print_frames.c: Ensure local var starts at zero.
Move statement to below declarations.
* print_lines.c: Ensure declarations before executable statements.
2016-01-19 David Anderson
* print_frames.c: Fix trailing whitespace and indentation.
2016-01-19 David Anderson
* print_die.c,tag_tree.c: Change statement ;; by removing
second semicolon.
2016-01-17 David Anderson
* common.c: Update version string
* dwarfdump.c: Made reset_overall_CU_error_data() a global.
We now try to show CU name etc on case there is an error
reading frame data. Update version strin.
Added DEBUG_FRAME DEBUG_FRAME_EH to the PRINT_CU_INFO() tests.
New function: load_CU_error_data().
* print_frames.c: Now uses a local Dwarf_Error
in a few places (CU names for frames) instead
of the global 'err' so we do not get the errors
mixed up.
We now try to show CU name etc on case there is an error
reading frame data.
2016-01-14 David Anderson
* common.c: Update version string.
* dwarfdump.c: Update version string. Include macrocheck.h.
Delete one accidental blank line.
* dwarf_tsearchbal.c: Added comment about compiler warning.
* dwarf_macrocheck.c: Added missing return statement.
Removed trailing whitespace. Fixed broken qsort_compare()
* macrocheck.h: Fixed trailing whitespace.
* print_abbrevs.c: Generalized an attribute count warning
a bit (see GENERAL_MAX_ATTRIB_COUNT). Fixed the code
handling the abbrev_array to be correct and a bit simpler.
Added new abbreviations tests.
* print_die.c: Include macrocheck.h. Fix trailing whitespace.
2016-01-12 David Anderson
* common.c: Update version string.
* dwarfdump.c: Update version string.
* print_abbrevs.c: If an abbreviation number is a bit
goofy, accomodate it so we do not write to
memory we did not allocate. It will
be caught a bit later in the run as an invalid DIE
or abbreviation.
* print_die.c: When we switch sections inside a DIE print
save and restore current_section_id to get the best
reporting on errors/checks.
2016-01-12 David Anderson
* common.c,dwarfdump.c: Update version string.
2016-01-12 David Anderson
* Makefile.in: Adding macrocheck.h, and .c. Adding
selftest of macrocheck.c.
* dwarfdump.c: Now handles imported DWARF5 macros
and adds support for -kw for macro section checking.
* globals.h: Adding check_macros flag and macro_check_tree declaration
and print_macros_5style_this_cu() declaration..
* print_die.c: Now prints imported macros using
print_macros_5style_this_cu().
* print_macro.c: Now deals with imported macro units using
macrocheck.c and .h. Fixed bug for DW_MACRO_define/undef
where we did improper string validity check.