DebugFission data. There are new attributes (with GNU
forms and standard forms) and DW_OP's too.
Libdwarf reader code refactored so the new sections are
easily handled.
dwarfdump/common.c
dwarfdump/dwarfdump.c
dwarfdump2/common.cc
dwarfdump2/dwarfdump.cc
now prints offset_size with -v (for each CU).
dwarfdump/print_die.c
dwarfdump2/print_die.cc
Corrects old bug in the uri code, typed 0 in hexdig() when '0' was meant.
dwarfdump2/uri.cc
dwarfdump/uri.c
dwarfdump/common.c
dwarfdump/dwarfdump.c
dwarfdump2/ChangeLog
dwarfdump2/common.cc
dwarfdump2/dwarfdump.cc
Changed the implementation of DW_FORM_ref_addr
to properly reflect the V2 vs V3 and later
specifications.
libdwarf/dwarf_addr_finder.c libdwarf/dwarf_die_deliv.c
libdwarf/dwarf_form.c libdwarf/dwarf_query.c
libdwarf/dwarf_util.c libdwarf/dwarf_util.h
libdwarf/pro_forms.c libdwarf/pro_section.c
stdout directly.
dwarfdump[2] use this new feature now.
The new interfaces in libdwarf.h to support this are documented.
Some minor botches in libdwarf2.1.mm (bad formatting) fixed.
More imporantly, in print_die.c (dwarfdump) it
removes static string buffers and makes them local
so we guarantee clean strings with no use of
makename() involved in printing DIEs.
Avoids a memory leak and should be faster.
to an error dumping modern gcc output, such as the Fedora 18
debug libc. Fixing this required changing the public struct Dwarf_Loc
and some related data inside libdwarf.
Making this change does introduce the sort of inconsistency
meaning the new libdwarf cannot be used to access location
data without
recompiling callers.
dwarfdump/common.c
dwarfdump/dwarfdump.c
dwarfdump2/common.cc
dwarfdump2/dwarfdump.cc
Thanks to Carlos Alberto Enciso for the following:
Add const to remove compiler warnings.
dwarfdump/print_reloc.c
A couple more places now match our if style, somehow
not noticed earlier.
libdwarf/dwarf_line.h
change to make consistent use of 'if', 'for' and 'while'.
===================
dwarfdump.c lines 73-78 Any time an 'extern foo' appears in a .c or a .cc
file it represents a current or future error that cannot be easily detected
at compile time. Bad.
Instead, put print_attributes_encoding and current_cu_die_for_print_frames
declarations into appropriate .h files (possibly new one or ones?) and
include the header in each .c/.cc where it is needed. That prevents future
spelling errors from causing mysterious runtime failures due to argument
errors: the compiler will catch argument errors.
Now line 56-58 is special in that it refers to some windows thing, not
defined in dwarfdump. So that one perhaps should or must stay as written.
===================
dwarfdump.c line 549: the variable 'bitmap' should be named something else.
bitmap is just too generic, not helpful to the reader. Easier for a
reviewer to see this sort of issue than the author :-)
Possibly local_section_bitmap? Somehow get 'section' in there in that
function-argument-name?
=======
dwarfdump.c: good catch on the indent errors in qsort_compare_compiler(),
I have no idea how I failed to run dicheck on that.
======
dwarfdump.c line 1043. The 'Just for the moment' comment is odd. What
does that mean? Why 'for the moment'? I am not going to try to guess
why you did that, but it has to be somehow wrong?
Either the code or the comment?
========
dwarfdump.c line 1162. The comment says do not do reloc_flag = TRUE
yet you added exactly that! Yikes! I don't know what to do about
this, but something has to change. Comment or statement. Can we detect
non-elf somehow? We probably already do, but...
===================
dwarfdump.c line 1630. Oops. Good catch on removing the mistaken extra
break;
and its callback function. It is documented in libdwarf/libdwarf2p.1.mm.
Date stamps are updated in both dwarfdumps even though there was no
reader code change.
* common.c: Updated version string.
* dwarfdump.c: Updated version string, fixed indentation.
* print_lines.c: Two line table checks moved from
decl_file to line_table sections of the summary report
and both now show the possibly-wrong pc.
Since one is not necessarily a bug, the wording of the
message now has 'possibly' in it.
* print_die.c: Reinitialize subprogram-relative pc high/low
seen_PU_high_address
whenever compilation unit changes, and use that field
to avoid an erroneous comparison (when checking for an error).
Fix some indentation errors introduced recently.
now handle DW_AT_data_member_location instead of erroring off.
Added a new query function into libdwarf.h and dwarf_query.c
and documented the function in libdwarf/libdwarf2.1.mm and regenerated
libdwarf/libdwarf2.1.pdf
DavidAnderson <davea42@earthlink.net>
* checkutil.c (ProcessBucketGroup): Deleted unused
local variables.
* common.c: Updated version string.
* dwarfdump.1: Made the -k discussion more complete and accurate.
Most option details are in the dwarfdump help/usage message, not
in dwarfdump.1, to keep the man page small.
* dwarfdump.c: Updated version string. Made more variables static
in recognition they are only touched in this file. Added {} on
some if statements to make the body clear. Parenthesized a
complex test with && || to clarify intent. Added sanity testing
of the 'current compiler' count and its use.
* globals.h: Added safe_strcpy() prototype as it is used by multiple
source files so we need a visible prototype.
* print_aranges.c: Add 'arange end' printing (it is a real DWARF
record type, so should be printed). Add a test to avoid duplicated
die printing and error-counting when it is not requested.
* print_die.c: An = in an if corrected to ==. Parenthesized a
complex test with && || to clarify intent. Deleted an unused
local variable.
* print_lines.c: Deleted unused local variables. Added {} for each
struct in an array so the initialization gets done right.
* tag_attr.c: Deleted an unused local variable.
* tag_tree.c: Deleted an unused local variable.
dwarfdump2
2010-06-04 DavidAnderson <davea42@earthlink.net>
* dwarfdump.cc: Updated DWARF_VERSION string.
Fixed a tiny bug in libdwarf/pro_error.c (that you probably
never encountered or noticed). Updated 2 lines in
libdwarf/dwarf_frame.c that were indented badly.