|
1 December 8, 2007 |
|
2 Had to add an ugly configure conditional as libelf has |
|
3 unconditional use of off64_t in recent libelf.h |
|
4 July 3, 2007 |
|
5 A new interface function, dwarf_loclist_from_expr(), |
|
6 allows easy extraction of dwarf expression bytes from |
|
7 expressions in frame data. |
|
8 May 8, 2007 |
|
9 Now documents released as .mm and .pdf (no longer as .ps). |
|
10 May 7, 2007 |
|
11 Incorporates Sun Microsystems extensions to dwarf.h and |
|
12 to the consumer and producer libraries. The changes |
|
13 include corrections so the producer library cleans up it's memory |
|
14 use on a call to dwarf_producer_finish(dbg). |
|
15 Thanks to Chris Quenelle of Sun for these contributions. |
|
16 |
|
17 March 20, 2007 |
|
18 nroff/troff and the AT&T -mm package are not widely available, |
|
19 so now the Makefile refers to groff, which works quite nicely. |
|
20 |
|
21 February 20, 2007 |
|
22 Documented libdwarf thread safety in README. |
|
23 Fixed memory leak in dwarf macro reading code. |
|
24 Removed use of static data in dwarf macro |
|
25 reading code: now uses stack/heap (for |
|
26 thread safety). |
|
27 |
|
28 February 9, 2007 |
|
29 Maintenance of libdwarf is now outside SGI |
|
30 as David Anderson has left SGI. |
|
31 |
|
32 March 29, 2006 |
|
33 The March 27, 2006 version accomodates DWARF3. |
|
34 Some people have been using the library without |
|
35 altering dwarf.h, libdwarf.h to accomodate |
|
36 large numbers of registers. This exposed a bug |
|
37 (an off-by-one error) but also makes it clear |
|
38 additional documentation is needed. So |
|
39 in libdwarf large new comments near 'TARGET DEPENDENCY' |
|
40 attempt to explain better. |
|
41 Oct 03, 2005 |
|
42 The July version had an incompatible interface: old |
|
43 dealloc code did not always work right. The incompatibility |
|
44 is now fixed and the new features remain. |
|
45 |
|
46 July 15, 2005 |
|
47 New optional alloc-check code optionally checks all |
|
48 allocated memory is freed (malloc_check.h malloc_check.c) |
|
49 Various new dealloc routines written as the previous approach |
|
50 of letting client code do detailed dealloc turned out not |
|
51 to dealloc all memory. |
|
52 To get the new checking you must manually change a line |
|
53 in malloc_check.h and rebuild libdwarf. |
|
54 |
|
55 |
|
56 Mar 31, 2005 |
|
57 Documented the libexc.so/.debug_funcnames |
|
58 dependency and the 64bit-offset DWARF extension in |
|
59 mips_extentions.{mm,ps}. |
|
60 |
|
61 Mar 21, 2005 |
|
62 gcc 3.3 and 3.4 .eh_frame 'z' augmentations are not handled |
|
63 correctly, so libdwarf gives an error when attempting to |
|
64 print such. gcc 2 'eh' augmentation is simpler and |
|
65 prints correctly. (.eh_frame is a GNU section, |
|
66 not DWARF2/3, and what is recorded in .eh_frame is not |
|
67 specified by DWARF2/3, though .eh_frame does resemble |
|
68 DWARF2/3 .debug_frame). |
|
69 |
|
70 |
|
71 Oct 28, 2004 |
|
72 Updated contact address in copyright: SGI moved 1/4 mile |
|
73 in 2003 to a new address: 1500 Crittenden Lane. |
|
74 |
|
75 Documented additional vendor extensions. |
|
76 |
|
77 Oct 27, 2004 |
|
78 Added known vendor extensions to dwarf2/3 to dwarf.h |
|
79 HP, GNU, PGI and UPC extensions are now recorded. |
|
80 Recorded vendor extensions from Concurrent. |
|
81 |
|
82 Feb 3, 2004 |
|
83 If 'Dwarf_Word' is 64 bits, two macros reading leb numbers |
|
84 fail to initialize upper bits of the values read. |
|
85 First noticed with bogus line numbers printing from dwarfdump. |
|
86 Now we use already-existing functions, avoiding the problem. |
|
87 |
|
88 Oct 02, 2003 |
|
89 Support .debug_loc section fully. |
|
90 |
|
91 Sept 29, 2003 |
|
92 Support DW_FORM_indirect properly. |
|
93 Supports loclists in part (but not multiple loclist entries yet). |
|
94 Support 'padding bytes' at end of .debug_arange and |
|
95 .debug_pubnames and .debug_pubtypes per CU |
|
96 (recent dwarf committee email made it clear this is appropriate). |
|
97 |
|
98 May 23, 2002 |
|
99 Libdwarf now asks for sections only when they are |
|
100 used, so that unneeded sections aren't loaded. |
|
101 Support for using SGI's ELF library as an alternative to |
|
102 using AT&T libelf-style has been added (the SGI ELF |
|
103 library is presently only available internally to SGI). |
|
104 |
|
105 Jan 10, 2002 |
|
106 Fixed memory leak in dwarf_finish(). |
|
107 |
|
108 Aug 21, 2001 |
|
109 If one called dwarf_add_file_decl() |
|
110 or dwarf_add_directory_decl() but never added a line, |
|
111 .debug_line was not produced. This was a mistake, |
|
112 as if any file or directory was provided .debug_line |
|
113 should be produced. Now it is produced. |
|
114 |
|
115 June 14, 2001 |
|
116 Given a cu header offset, it was not easy to derive the |
|
117 CU header DIE offset. Created the new |
|
118 function dwarf_get_cu_die_offset_given_cu_header_offset() |
|
119 do get the CU header DIE offset. |
|
120 Added the function dwarf_get_arange_cu_header_offset() |
|
121 so the cu header offset could be retrieved from .debug_aranges |
|
122 information. |
|
123 |
|
124 June 07, 2001 |
|
125 Major bug in dwarf_leb.c decoding large integers |
|
126 (Dwarf_Signed 64 bit where library is compiled in ILP32) |
|
127 found and fixed. |
|
128 |
|
129 May 21, 2001 |
|
130 Some small fixes have been found by various folks, |
|
131 so it seems time to prepare a new source release. |
|
132 See ChangeLog for details. |
|
133 |
|
134 April 15, 2000 |
|
135 The libdwarf copyright has changed to |
|
136 version 2.1 of the GNU Lesser General Public License. |
|
137 Anyone holding a version of libdwarf that was published |
|
138 before this new copyright is allowed to use |
|
139 the copyright published in that earlier libdwarf source |
|
140 on the earlier source |
|
141 or to use |
|
142 this new copyright on the earlier source, |
|
143 at their option. |
|
144 |
|
145 |
|
146 December 08, 1999 |
|
147 The dwarf committee has adopted the offset-extension |
|
148 proposal. This allows compatibly emitting |
|
149 dwarf with 64bit offsets. |
|
150 |
|
151 The dwarf reader now automatically figures out which is in use. |
|
152 The dwarf writer configures itself at the time the |
|
153 writer initialization routine is called, though |
|
154 the writer is restricted, at libdwarf |
|
155 compile time, to one of |
|
156 mips/sgi pure 32/pure 64 offsets/pointers. |
|
157 |
|
158 32bit offsets only (per dwarf 2.0.0 and cygnus) |
|
159 |
|
160 32bit offsets with extension to 64bit offsets |
|
161 allowed (the offset-extension newly passed). |
|
162 |
|
163 In addition, a great deal of duplicate code |
|
164 for the sgi .debug_weaknames, .debug_funcnames, |
|
165 .debug_varnames and .debug_typenames sections has |
|
166 been removed: a single set of functions does the real work now. |
|
167 |
|
168 Sept 29, 1999 |
|
169 Just found out that cygnus is, on 64bit targets, generating |
|
170 32bit offsets (as elf32 has, for example) with 64 bit |
|
171 pointers (in references to text and data). |
|
172 Whereas sgi has always generated 64bit dwarf with |
|
173 64 bit offsets (as in elf64) and 64bit pointers for |
|
174 64bit pointer objects. |
|
175 I'll call the sgi approach 64-bit and the cygnus approach |
|
176 32bit-offsets. |
|
177 |
|
178 Cygnus is following the DWARF2 spec as written, so they are |
|
179 right in doing only 32bit-offsets. |
|
180 |
|
181 Folks at sgi (including me) think that, as for elf64, |
|
182 the offsets in dwarf for 64bit pointer-apps should be |
|
183 64 bits. We think it is only a matter of time |
|
184 before we really *need* 64bit offsets and when that happens |
|
185 it will be on an important app. Disk space is cheap, |
|
186 so lets just go 64 bit on 64bit apps (such as ia64 apps) |
|
187 to avoid a future problem. |
|
188 I(davea@sgi.com) think the 'pointer-size' references in the dwarf |
|
189 spec were really written for 64-bit pointer apps. |
|
190 I don't recall serious consideration of 64bit pointer |
|
191 apps in the committee deliberations (I did miss |
|
192 a couple of meetings) and think 64bit offsets |
|
193 are consistent with dwarf2, even though the speci |
|
194 was not written for such. We think true full 64 bit |
|
195 dwarf2 is the right way to go (the spec changes |
|
196 are obvious: file and section offsets become 64bit |
|
197 with 64bit pointer objects. |
|
198 |
|
199 MIPS/SGI is definitely 64-bit offsets for 64 bit objects, |
|
200 cygnus is definitely 32bit-offsets for earlier 64bit pointer |
|
201 environments. |
|
202 |
|
203 At any rate, now the dwarf reader allows and accomodates |
|
204 both and the dwarf producer also accomodates both. |
|
205 Some tweaking of the pro_init.c or dwarf_init_finish.c |
|
206 files may be necessary in future: no other changes should |
|
207 be needed to accomodate the two 64bit approaches, as |
|
208 the library (and dwarfdump) now deal with both forms. |
|
209 |
|
210 |
|
211 August 20, 1999 |
|
212 Added some #ifndef/#define to pro_util.h to let libdwarf build |
|
213 on more hosts. (since those hosts don't need the producer |
|
214 code, AFAIK, zero values suffice for missing #defines.) |
|
215 |
|
216 July 21, 1999 |
|
217 Now reader transparently reads either-endianness data |
|
218 from an either-endianness object. |
|
219 Updated dwarf.h and libdwarf.h to recognize |
|
220 GNU egcs dwarf extensions and to print the egcs eh_frame |
|
221 section. |
|
222 |
|
223 June 10, 1999 |
|
224 gnu configure version of libdwarf made available for the |
|
225 first time. |
|
226 Still allows only same-endian-as-host in objects. |
|
227 |
|
228 August, 1994 |
|
229 libdwarf source made available for ftp on sgigate.sgi.com |
|
230 /ftp/pub |
|
231 |
|
232 June, 1994 |
|
233 Consumer interface changed completely, following |
|
234 "Candy Machine Interfaces" chapter from |
|
235 "Writing Solid Code" by Steve Maguire (Microsoft Press). |
|
236 |
|
237 April, 1993 |
|
238 Initial version of libdwarf for dwarf version 2 |
|
239 written at sgi. |