1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
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 equvalent 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.
|