263 lines
11 KiB
Plaintext
263 lines
11 KiB
Plaintext
May 17, 2017
|
|
Now dwarfdump understands both split-dwarf and COMDAT sections
|
|
(it calls the section-groups 'Groups')
|
|
so it is possible to properly print all such. A traditional
|
|
DWARF2,3,4,5 consumer can ignore section groups.
|
|
To print in more complicate situations the -x groupnumber=3
|
|
(3 as an example) lets you choose a specific group/comdat to print.
|
|
Dwarfdump prints out a section-groupnumber table when appropriate
|
|
a making it easy to know what groups are present.
|
|
March 24, 2017
|
|
dwarfdump: Now argv[0] is checked before setting the program_name
|
|
global variable. If it contains '/dwarfdump.O' that part of
|
|
the string is shortened to '/dwarfdump'.
|
|
Doing this removes a need for the regressiontests to use sed
|
|
and shortens the regressiontests runtime on one machine from
|
|
77 minutes to 23 minutes.
|
|
September 20, 2016
|
|
dwarfdump now frees all memory it used when it terminates normally.
|
|
No malloc space left behind.
|
|
It gets a clean report from
|
|
valgrind --leak-check=full --show-leak-kinds=all
|
|
May 5, 2016
|
|
By default dwarfdump sanitizes strings, so if a corrupted
|
|
DWARF file has non-printable bytes in a string they are
|
|
each turned into %xx (% followed by
|
|
two hex digits for a single string character).
|
|
This is safe for terminals to print and shows the actual value.
|
|
The '-x nosanitizestrings' option turns off this feature so bytes
|
|
are shown as printf and your system show them.
|
|
The same format as uri style, but only using % on characters
|
|
that may have bad effects if printed to a terminal (not,
|
|
for example, space or tab characters).
|
|
Nor are normal '%' in a string altered (in uri such would be
|
|
turned to %25 or to %%).
|
|
February 25, 2015
|
|
Copied dwgetopt.c dwgetopt.h from libdwarf so dwarfdump can
|
|
use dwgetopt() and still build without necessarily
|
|
having the libdwarfsource easily available.
|
|
Some environments do not have a getopt() so copying
|
|
dwgetopt.h,.h here ensures we have this functionality
|
|
for everyone.
|
|
January 08, 2015
|
|
dwarfdump does new checking. See options -kD -kG -ku -kuf.
|
|
In addition, dwarfdump output can be written to a file without
|
|
using redirection by using the new -O file=<path>
|
|
option.
|
|
January 29, 2014
|
|
Now using dwarf_tsearch() so tsearch is available on every platform.
|
|
November 17, 2012
|
|
Added new checking options.
|
|
To get good relocation-handling dwarfdump now expects to read
|
|
headers from libdwarf with the relocation numbers. That means
|
|
building dwarfdump separate from the libdwarf source is no
|
|
longer as useful as it was. It is best to build libdwarf
|
|
and dwarfdump together for decent handling of relocatable
|
|
objects.
|
|
December 13, 2011
|
|
Now prints missing line table column number as 0 (now
|
|
matching the DWARF spec), the previous
|
|
practice of printing -1 was always wrong.
|
|
And prints the DWARF3/4 new line table fields (when present).
|
|
October 29, 2011
|
|
Added support for printing .debug_types (type unit) data.
|
|
October 26, 2011
|
|
Added new features to Makefile.in and documented in README
|
|
how to build dwarfdump with headers or libraries in
|
|
non-standard places.
|
|
October 23, 2011
|
|
By default the various places with string option values
|
|
and file paths all use URI transformation on input and
|
|
if the transformation does anything at all dwarfdump reports
|
|
the input and transformed strings. This makes it easy
|
|
to deal with strings and expressions and file paths
|
|
that are difficult to express in a shell (or that getopt
|
|
mangles). Options -q and -U give you control over this process.
|
|
October 07, 2011
|
|
The -x abi=mips frame register abi in dwarfdump.conf is now
|
|
usable with modern MIPS objects as well as old IRIX objects.
|
|
There are other mips-* frame register setups described
|
|
in dwarfdump.conf for anyone testing that nothing new has
|
|
been added that conflicts with old IRIX/MIPS frame generation.
|
|
June 04, 2011
|
|
Error checking is now distinct from section printing, making
|
|
error checking (the -k options) much easier to work with on
|
|
large objects.
|
|
So compiler-created errors can be found, the error reporting
|
|
now prints context information.
|
|
March 29, 2011
|
|
Added many new correctness tests. Changed the format of
|
|
various items (line data prints in a more compact form, numbers
|
|
are more uniformly hexadecimal fixed length where that makes sense).
|
|
All the source files are uniformly indented to a multiple of 4
|
|
characters and all intent-tabs in the source have been removed.
|
|
Major logic changes involved changing error-reporting to be
|
|
more detailed and adding new tests for incorrect DWARF.
|
|
Now reports error summary by the compiler name, not just overall.
|
|
January 26, 2010
|
|
Changed the default frame-data register names from MIPS to
|
|
a generic set of registers.
|
|
Try '-x abi=mips' to get the traditional old MIPS register
|
|
naming.
|
|
June 22, 2009
|
|
Added the -S option to dwarfdump.
|
|
June 10, 2009
|
|
Moved the gennames.c code to libdwarf.
|
|
May 4, 2009
|
|
Replaced awk source-generation of certain functions
|
|
with new gennames.c code.
|
|
Now we can print an object with an address_size that
|
|
varies by compilation unit.
|
|
April 4, 2009
|
|
Corrected aspects of the frame-printing by ensuring we pass
|
|
all the information libdwarf needs for fully consistent behavior.
|
|
Three newly defined libdwarf calls calls made to ensure
|
|
that better behavior (specifically having dwarfdump consistently
|
|
recognize when registers are the cfa, undefined-value or same-value
|
|
pseudo registers). Updated dwarfdump.conf to set these same
|
|
things consistently.
|
|
Mar 22, 2009
|
|
The -f and -F flags no longer also imply -i (it just
|
|
did not make sense to tie them (cannot recall why
|
|
it might have been tied before).
|
|
Mar 20, 2009
|
|
Moved print_* functions from print_sections.c to individual
|
|
source files. Hopefully making the code a bit easier
|
|
to read.
|
|
Feb 16, 2009
|
|
Added the -C option. It is a sort of 'pedantic' option
|
|
as it turns on warnings about certain commonly used
|
|
non-standard tag->tag and tag->attr relationships.
|
|
Added the tag_attr_ext.list tag_tree_ext.list files which
|
|
define the 'common use' extensions.
|
|
Feb 14, 2009
|
|
Added configure option --enable-nonstandardprintf
|
|
which makes it easy to get printf of Dwarf_Unsigned (etc)
|
|
types correct even for non-standard compilers.
|
|
December 30, 2008
|
|
Now we print the .debug_ranges section (with -N)
|
|
and the data for DW_AT_ranges (with -i).
|
|
December 8, 2008
|
|
The -M option now causes printing of FORM details.
|
|
And -v adds details about abbreviation 'indexes' into
|
|
an abbreviation table (.debug_abbrev)
|
|
providing more detail for folks debugging or
|
|
improving their understanding of DWARF data.
|
|
April 9, 2008
|
|
Added -H <num> to limit the number of compilation-units/FDEs
|
|
dwarfdump prints in one run. Added -n to eliminate function-name
|
|
printing in .debug_frame output (with a large-enough debug_info
|
|
section function-name printing is too slow). The function name
|
|
printing will be fixed in another release.
|
|
December 8, 2007
|
|
Had to add an ugly configure conditional as libelf has
|
|
unconditional use of off64_t in recent libelf.h
|
|
July 3, 2007
|
|
Now with -v dwarf expression blocks in frame operations
|
|
are printed expanded out.
|
|
July 2, 2007
|
|
Added a new abi -x abi=general usable for any cpu with
|
|
up to 1000 registers.
|
|
May 7, 2007
|
|
Sun Microsystems contributes new dwarf.h extensions and a new -G option
|
|
to dwarfdump -i (so one can see the 'global' offset to DIEs).
|
|
Thanks to Chris Quenelle of Sun.
|
|
April 17, 2006
|
|
New -x name=<conf file> -x abi=<abiname> and configuration file
|
|
enable sensible printing of a wide range of .debug_frame eh_frame
|
|
correctly without recompiling dwarfdump or touching libdwarf.h or
|
|
dwarf.h.
|
|
March 29, 2005
|
|
Now handles DWARF3. For non-MIPS objects, the list of register
|
|
names in print_sections.c is not appropriate, #define
|
|
DWARFDUMP_TURN_OFF_MIPS_REG_NAMES to turn off the MIPS names.
|
|
December 1, 2005
|
|
Added new DWARF3 TAGs and ATtributes to the -k lists,
|
|
clarified the -k reporting, and made the build more robust
|
|
in the face of errors in the *.list relationship-spec-files.
|
|
|
|
August 1, 2005
|
|
Now print_die.c deals with long loclists without a coredump.
|
|
Added esb.h esb.c (and testesb.c for testing) to encapsulate
|
|
getting space for possibly-long strings.
|
|
Now print_die.c uses snprintf() not sprintf (hopefully this
|
|
will not inconvenience anyone, snprintf() has been available
|
|
on most systems for years now).
|
|
Altered print of location lists a little bit - for better appearance.
|
|
|
|
July 15, 2005
|
|
Now completely frees all allocated memory. Various
|
|
routines were not calling dealloc() code and
|
|
new libdwarf dealloc routines are now used where those
|
|
are needed.
|
|
|
|
Now prints DWARF3 .debug_pubtypes section (with -a or -y).
|
|
The .debug_pubtypes section and SGI-specific .debug_typenames
|
|
are equivalent so they are treated alike.
|
|
|
|
Mar 21, 2005
|
|
The -f flag now prints only .debug_frame data. The .eh_frame section
|
|
(GNU exceptions data) now prints with -F (not -a).
|
|
Printing gcc 3.3 or 3.4 .eh_frame with zR augmentation
|
|
does not work at this time, so do not use -F
|
|
to print such an object.
|
|
The line section print now prints a CU-DIE offset for each such DIEs
|
|
line information. This makes it much easier to correctly associate
|
|
-l (or -v -l) output with -v -v -l when debugging a faulty
|
|
linetable in an executable.
|
|
With -v -v -l (two -v) the output of line info continues to be a
|
|
completely different format than zero or one -v, the two-v
|
|
form showing the detailed line table opcodes.
|
|
With g++ 3.3.3 one sees bad line addresses at times as the
|
|
DW_LNE_set_address address for header files do not always
|
|
get their relocations applied. I am told this is fixed in 3.4.x.
|
|
|
|
|
|
Mar 18, 2005
|
|
In correcting printing of macro information the format
|
|
of the macro (-m) output has changed substantially.
|
|
Much more complete now. Still could use enhancement.
|
|
|
|
Oct 28, 2004
|
|
Updated contact address in copyright: SGI moved 1/4 mile
|
|
to a new address: 1500 Crittenden Lane.
|
|
|
|
Oct 02, 2003
|
|
Now fully supports .debug_loc section.
|
|
|
|
June 14, 2001
|
|
Now calling a new function dwarf_get_arange_cu_header_offset()
|
|
in libdwarf and printing the returned cu header offset for
|
|
aranges entries. Making it easier to track down internal
|
|
errors in the dwarf2 data. Also added small other
|
|
consistency checks, printing a message and exit()ing on
|
|
error.
|
|
|
|
April 14, 2000
|
|
The libdwarf copyright has changed to
|
|
version 2.1 of the GNU Lesser General Public License.
|
|
Anyone holding a version of libdwarf that was published
|
|
before this new copyright
|
|
is allowed to use
|
|
the copyright published in that earlier libdwarf source
|
|
on the earlier source
|
|
or to use
|
|
this new copyright on the earlier source,
|
|
at their option.
|
|
|
|
July 21, 1999
|
|
Added gnu extensions to the frame information printer
|
|
and handling for egcs eh_frame printing.
|
|
libdwarf changes mean this now can print little-endian
|
|
object dwarf on a big-endian system and vice-versa.
|
|
|
|
December, 1998
|
|
added dwarfdump to the dwarf public source distribution.
|
|
|
|
June, 1994
|
|
libdwarf consumer interface changed completely so updated to match.
|
|
|
|
May, 1993
|
|
Initial version of dwarfdump for dwarf version 2
|
|
written at sgi.
|