bugxml/data.txt
Now prints strings so that
control characters do not
cause problems. Easier to read too.
dwarfdump/Makefile.in
dwarfdump/NEWS
dwarfdump/dwarfdump.1
dwarfdump/dwarfdump.c
dwarfdump/globals.h
dwarfdump/print_die.c
dwarfdump/print_frames.c
dwarfdump/print_lines.c
dwarfdump/print_macro.c
dwarfdump/print_macros.c
dwarfdump/sanitized.c
Removed trailing whitespace.
dwarfexample/simplereader.c
New checking for corrupt input.
libdwarf/dwarf_errmsg_list.c
libdwarf/dwarf_form.c
libdwarf/dwarf_line.c
libdwarf/dwarf_opaque.h
libdwarf/dwarf_query.c
libdwarf/dwarf_util.h
libdwarf/libdwarf.h.in
standard tables: header says lno now,
for line number (row was incorrect).
dwarfdump/dwarfdump.c
dwarfdump/print_die.c
dwarfdump/print_lines.c
New checks for correctness and section overrun.
Fixed duplicate free due to bug in DWARF5 macro
handling.
libdwarf/dwarf_arange.c
libdwarf/dwarf_die_deliv.c
libdwarf/dwarf_elf_access.c
libdwarf/dwarf_errmsg_list.c
libdwarf/dwarf_frame2.c
libdwarf/dwarf_leb.c
libdwarf/dwarf_line.c
libdwarf/dwarf_line.h
libdwarf/dwarf_line_table_reader_common.c
libdwarf/dwarf_macro5.c
libdwarf/dwarf_util.h
libdwarf/libdwarf.h.in
and just use char*.
Ensure the getopt tests still work.
modified: dwarfdump/dwarfdump.c
modified: dwarfdump/dwgetopt.c
modified: dwarfdump/esb.c
modified: dwarfdump/esb.h
modified: dwarfdump/getopttest.c
modified: dwarfdump/globals.h
modified: dwarfdump/print_die.c
modified: dwarfdump/print_frames.c
modified: dwarfdump/print_lines.c
modified: dwarfdump/print_strings.c
modified: dwarfdump/tag_attr.c
modified: dwarfdump/tag_tree.c
Fixing errnumber->string array and arranging
that we test it during build.
modified: libdwarf/Makefile.in
renamed: libdwarf/dwarf_error.c -> libdwarf/dwarf_errmsg_list.c
modified: libdwarf/dwarf_error.c
dwarfdump/globals.h
dwarfdump/print_aranges.c
dwarfdump/print_die.c
dwarfdump/print_frames.c
dwarfdump/print_lines.c
dwarfdump/print_macro.c
dwarfdump/print_pubnames.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.
libdwarf/dwarf_form.c
fix a comment
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.
libdwarf2.1.mm: Added dwarf_lineoff_b() documentation.
Fixed a typo in dwarf_formexprloc() documentation.
libdwarf2.1.pdf: Regenerated. Version 2.41
better reflect the meaning and avoid 'std'
as 'std' seems to be a keyword
in at least one environment.
dwarfdump/dwarfdump.c
dwarfdump/globals.h
dwarfdump/print_lines.c
* 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.
Still no handling of macro import.
dwarfdump/dwarfdump.c
dwarfdump/print_lines.c
dwarfdump/print_macro.c
Fixing handling of DWARF5 macros.
libdwarf/dwarf_line.c
libdwarf/dwarf_macro5.c
libdwarf/dwarf_macro5.h
libdwarf/dwarf_opaque.h
and comment the other places (where not critical).
dwarfdump/globals.h
dwarfdump/print_frames.c
dwarfdump/print_lines.c
dwarfdump/print_locs.c
dwarfdump/print_macros.c
dwarfdump/print_pubnames.c
dwarfdump/print_static_funcs.c
dwarfdump/print_static_vars.c
dwarfdump/print_types.c
dwarfdump/print_weaknames.c
Enable retrieving true section name from object file.
libdwarf/dwarf_frame.c
libdwarf/libdwarf.h.in
shown by dwarfdump.
dwarfdump/dwarfdump.1
Now we get the real section names from
libdwarf.
dwarfdump/print_aranges.c
dwarfdump/print_die.c
dwarfdump/print_lines.c
dwarfdump/print_ranges.c
dwarfdump/print_strings.c
Add functions to get the true
section names.
libdwarf/dwarf_die_deliv.c
libdwarf/dwarf_line.c
libdwarf/libdwarf.h.in
Document the new functions. Version 2.35
libdwarf/libdwarf2.1.mm
Regenerate.
libdwarf/libdwarf2.1.pdf
* dwarfdump.c: Add enum line_flag_type_e so we can test
all the srclines interfaces (4 of them). Expand -x
for that too.
* print_die.c: Support DW_FORM_GNU_strp_alt.
* print_lines.c: Update for old and new srclines
interfaces.
* globals.h: Added the enum line_flag_e variable for
recording -x line5= value.
libdwarf
* checkexamples.c: Fixed data type in the example code.
* dwarf.h: Updated comment about DW_FORM_GNU_strp_alt
* dwarf_elf_access.c: Fixed trailing whitespace and
removed debug printf that got left in.
* dwarf_error.c: Add new TIED file errors.
DW_DLE_NO_TIED_FILE_AVAILABLE, DW_DLE_NO_TIED_STRING_AVAILABLE.
* dwarf_form.c: Added support for DW_FORM_GNU_strp_alt.
* dwarf_init_finish.c: #if 0 routine all_sig8bits_zero().
* dwarf_line.c: Now always notice windows-like c: etc
as start of a full path. Ensure directories with \ are
turned to / in line tables. (for full such transforms
configure with --enable-windowspath ) Remove some debug #ifdef
lines.
Alter the linecontext interface to pass back table count,
not linecount.
* dwarf_line.h: Add commentary and lc_table_count field.
* dwarf_line_table_reader_common.c: Fix indent/trailing whitespace.
Now sets lc_table_count;
* dwarf_opaque.h: Add _dwarf_get_string_from_tied() interface.
* dwarf_print_lines.c: Remove trailing whitespace and some debug printf..
* libdwarf.h.in: New error codes. Fix trailing whitespace. Expand
commentary.
reading code so line table routines can be tested thoroughly.
print_lines.c: Uses one of the selected line table routine
. Adds new line access routine calls to test those too.
globals.h: Declares new flag line_skeleton_flag;
print_die.c: Moved a local declaration to where it is used.
Added a missing DW_DLV_ERROR check so in case of error
we do not leak memory.
dwarfdump/dwarfdump.c update date string
dwarfdump/print_lines.c IA is really IS.
libdwarf/dwarf_elf_access.c: Added ifdef/define/endif for relocation types
for better test coverage in FreeBSD and Ubuntu. That is, let it
relocate objects without quite the required relocation names on
the libdwarf/dwarfdump build system.
libdwarf/dwarf_line.c Fixed errors and omissions.
libdwarf/dwarf_line.h
dwarfdump/print_lines.c
Corrected indentation and an error introduced a couple
days ago in computing the end of the line table for a CU.
libdwarf/dwarf.h
libdwarf/dwarf_elf_access.c
libdwarf/dwarf_form.c
libdwarf/dwarf_line.c
libdwarf/dwarf_line.h
and added a Dwarf_CU_Context argument so we can get address
size and segment size when not in the line table.
All this related to two-level line tables.
dwarfdump/print_lines.c
libdwarf/dwarf.h
libdwarf/dwarf_die_deliv.c
libdwarf/dwarf_line.c
libdwarf/dwarf_line.h
libdwarf/dwarf_opaque.h
libdwarf/dwarf_print_lines.c
libdwarf/dwarf_sort_line.c
libdwarf/libdwarf.h.in
(not complete) of two-level line tables,
and experiment in line table design.
dwarfdump/ChangeLog
dwarfdump/print_lines.c
libdwarf/ChangeLog
libdwarf/dwarf.h
libdwarf/dwarf_alloc.c
libdwarf/dwarf_base_types.h
libdwarf/dwarf_init_finish.c
libdwarf/dwarf_line.c
libdwarf/dwarf_line.h
libdwarf/dwarf_line2.c
libdwarf/dwarf_util.c
libdwarf/libdwarf.h.in
We no longer do inappropriate checking of pc addrs
when a type_unit refers to the line table (there is
no low or high pc, so such checking would fail anyway).
* master: (97 commits)
3 one-line fixes, removing three compiler warnings.
dwarfdump/print_gdbindex.c: Fixed indents of a comment.
Update dwarfdump[2] version strings.
Here we fix some warnings and get gdbindex to print better. And get some section names to come out exactly right (but not all, yet). dwarfdump/dwarfdump.1 dwarfdump/dwarfdump.c dwarfdump/print_gdbindex.c dwarfdump2/dwarfdump.1 dwarfdump2/dwarfdump.cc dwarfdump2/print_debugfission.cc dwarfdump2/print_die.cc dwarfdump2/print_gdbindex.cc
dwarfdump, dwarfdump2: Now both print the gdbindex and .debug_[tc]u_index sections.
Dwarfdump: Now we use the new gdbindex and debugfission section-name strings instead of hard coding Elf section names.
libdwarf: minor correction addeing section name to one function and now documents the new gdbindx and debug fission (DWP) interfaces.
libdwarf has a new interface: dwarf_get_die_section_name() so clients can get the object section names (of .debug_info of .debug_types or the same with .dwo names). Fixed indent and trailing whitespace a couple places too.
libdwarf/dwarf_opaque.h: One new comment had a bad indent. Fixed.
libdwarf/dwarf_opaque.h: Clarified the meaning of various CU context struct fields by adding comments.
libdwarf/dwarf_opaque.h: Altered a couple comments to make them clearer.
Now -I now prints the entire .debug_cu_index and .debug_tu_index sections.
Refine that same comment again. It was actually wrong before, not just hard to read. the *next_cu* functions in libdwarf dwarf_die_deliv.c return -1 (DW_DLV_NO_ENTRY), not 0, when we have gotten through all the CUs in a section.
Clarify a comment in dwarf_die_deliv.c.
Fixed the libdwarf ChangeLog. Minor typo in a just-commited entry.
Now we can print the hash table data from the .debug_tu_index and .debug_cu_index sections ( debug fission, the .dwp object file index data).
Removed some newly introduced trailing whitespace characters.
libdwarf and dwarfdump now begin to support the DWARF5 sections .debug_tu_index and .debug_cu_index.
libdwarf: dwarf_arange.c(dwarf_get_aranges_list): Remove the length variable as its calculated value is unused. rename length to area_length for clarity. Calculate arange_ptr_past_end early and correctly. Ensure that the test for version 4 is a >= to reflect normal standards upgrades. dwarf_die_deliv.c(dwarf_find_offdie_CU_Context): Add commentary about offsets and lengths for clarity. Rename fields for clarity about local vs global offset. Use the newly named fields for precise tests of section overflow of a type unit. Other changes in libdwarf were additions and modifications of commentary.
Fixes a mistake in checking a offset in dwarf_die_deliv.c The mistake resulted in an error-return on a really really short .debug_types section where there was no error.
...
Conflicts:
dwarfdump/dwarfdump.c
libdwarf/dwarf_elf_access.c
1) Remove 'fflush' statements, as they are needed no more.
2) Just for the Windows version, make sure the redirection of 'stdout' &
'stderr' is done before any calls to 'libdwarf' as the Visual Studio
project settings, marked it with the 'Delay Loaded DLLs' option.
===========
dwarfdump/print_die.c line 1279, 1280, 1293,1294: The comments
are pretty useless, since we don't use 'errno' here any longer.
Now the comments look random.
===========
print_lines.c, line 69: I don't understand why line_print_pc
controls printing this particular offset value. Maybe you are right
here, but it's not at all obvious why this is the right thing to do.
Or perhaps just add a comment about why condition the output
on line_print_pc for code readers ?
===========
libdwarf/ reloc .h files with defines, the new header files:
delete the $Header: comment line, it is not relevant
for the new header files, and is in fact irrelevant everywhere,
but let's just ignore the irrelevance for the old files.
===========
libdwarf/libdwarf.h line 2951, 2952:
How about the comment revised as follows
/* These make the LEB encoding routines visible to libdwarf
callers. Added November, 2012. */
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;
* dwarfdump.c: Refactor setting of do_print_dwarf
and do_check_dwarf into a function. Ensure that one of
the refactored new functions is called in every case
an option requires such call.
* print_lines.c (print_line_numbers_this_cu): When not checking
added a check to insure we don't try to call a
checking-related function.
* 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.
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.