summaryrefslogtreecommitdiff
path: root/libdwarf/ChangeLog2008
blob: 1867b4028485d992b416f5d1f2c697efc6458c9c (plain)
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
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
2008-12-29  DavidAnderson <davea42@earthlink.net>
      * libdwarf.h: Add support for .debug_ranges with
        dwarf_get_ranges() and dwarf_ranges_dealloc().
      * dwarf_init_finish.c: Add support for .debug_ranges.
      * dwarf_base_types.h: Add support for .debug_ranges functions.
      * dwarf_alloc.c, dwarf_alloc.h: Add support for .debug_ranges
        alloc/dealloc.
      * dwarf_opaque.h: Add support for .debug_ranges.
      * libdwarf2.1.mm: Documented dwarf_get_ranges() and
        dwarf_ranges_dealloc() (rev 1.72).
      * libdwarf2.1.pdf: Regenerated.
2008-12-09  DavidAnderson <davea42@earthlink.net>
      * dwarf_alloc.c: Remove useless comments and
        tweak a few comments.
2008-12-08  DavidAnderson <davea42@earthlink.net>
      * dwarf_opaque.h: Add di_abbrev_code field to record
        a DIE abbreviation value so consumers can report it.
      * libdwarf.h: Add dwarf_die_abbrev_code() interface.
      * dwarf_query.c: Add dwarf_die_abbrev_code() interface.
      * dwarf_die_deliv.c: Set di_abbrev_code for consumers.
      * libdwarf2.1.mm: Documented dwarf_die_abbrev_code().
      * libdwarf2.1.pdf: Regenerated.
      * pro_util.h: Removed gratuitous tabs. Used a space instead.
2008-12-07  DavidAnderson <davea42@earthlink.net>
      * dwarf.h: Entered DWARF4 defines known so far.
      * dwarf_opaque.h: Updated dwarf 4 section-version comment
        with the latest info. 
2008-12-07  DavidAnderson <davea42@earthlink.net>
      * dwarf_original_elf_init.c: Delete unused local variables.
      * pro_forms.c: Delete unused local variables and initialize
        local variables at definition.
      * dwarf_pubtypes.c, dwarf_line.c: Delete accidental 
        duplicated /* comment-start.
      * malloc_check.c: In the 'do nothing' case, create
        an extern declaration to eliminate a compiler warning.
2008-11-19  DavidAnderson <davea42@earthlink.net>
      * dwarf_die_deliv.c: Handle the case where DW_AT_sibling
        uses DW_FORM_ref_addr.
      * dwarf_util.c: Add a comment about DW_FORM_ref_addr.
      * dwarf_opaque.h: Add a comment about CU fields,
        comment out an unused CU header field.
      * dwarf_query.c: Added dwarf_die_CU_offset_range()
        so dwarfdump can check for additional errors.
      * dwarf_form.c: Clarifying a comment.
      * dwarf_print_lines.c: Add additional print detail on
        line table headers (used by dwarfdump).
      * libdwarf2.1.mm: Documenting the new function
        dwarf_die_CU_offset_range().
      * libdwarf2.1.pdf: Regenerated.
      * libdwarf.h: Added dwarf_die_CU_offset_range() interface
        declaration.
2008-10-13  DavidAnderson <davea42@earthlink.net>
      * dwarf_frame2.c: Removed last use of DW_FRAME_LAST_REG_NUM:
        use dbg->de_frame_reg_rules_entry_count instead.
2008-09-30  DavidAnderson <davea42@earthlink.net>
      * dwarf_print_lines.c: Print corrected warning
        about bogus prologue length.
      * dwarf_line.c: Work around bogus prologue length 
        compiler bug.
      * dwarf_line.h: Rename arguments.
2008-09-29  DavidAnderson <davea42@earthlink.net>
      * libdwarf2.1.mm: Documented requirement that
        dwarf_get_fde_n() dwarf_get_fde_at_pc() pass a
	pointer to an fde table that contains at least 1 entry.
      * libdwarf2.1.pdf: regenerated.
      * dwarf_opaque.h: Add new fields for cie/fde specific
         fields for eh.
      * dwarf_frame2.c: Initialize the new Dwarf_debug and
        Dwarf_Fde fields.
      * dwarf_frame.c: Access the new Dwarf_Fde fields.
      * dwarf_frame.h: Define a new Dwarf_Fde field so we
        keep eh and non-eh distinct.  

2008-09-29  DavidAnderson <davea42@earthlink.net>
      * All .c files: Mechanically removed tab characters with
        the expand tool.
2008-09-29  DavidAnderson <davea42@earthlink.net>
      * libdwarf.h: DW_DLE_LINE_SET_ADDR_ERROR no longer used.
        The tests which generated it were bogus.
      * dwarf_print_lines.c: Print a warning if there are any
        apparently wasted bytes after the line prologue and before
	the line table instructions. Match the new prologue reading
	function prototype.
      * dwarf_sort_line.c: Match the new prologue reading function
        prototype.
      * dwarf_line.c: Modify the prologue reading function so
        it correctly finds the beginning of instructions even
        when there are 'wasted' bytes after the prologue.
	Drop bogus tests for minimum-instruction-size
	matching the ABI pointer size.  Removing the tests removed
	all uses of  DW_DLE_LINE_SET_ADDR_ERROR.
      * dwarf_line.h: Modify the prototype for the prologue reading
        function so it is possible for a caller to know about the
	possibly wasted bytes after a prologue.
2008-09-02  DavidAnderson <davea42@earthlink.net>
      * dwarf_init_finish.c (_dwarf_setup): Delete unused local
        variable 'section_error'.
2008-08-14  DavidAnderson <davea42@earthlink.net>
      * libdwarf2p.1.mm: Make it clearer that dwarf_get_pubnames, dwarf_get_varnames,
        etc return a result across all compilation units (an entire section), 
        not just for a single compilation unit. Document version 1.68.
      * libdwarf2p.1.pdf: Regenerated.
2008-08-08  DavidAnderson <davea42@earthlink.net>
      * libdwarf2p.1.mm: Removed some long time
        spelling mistakes: no technical change in content.
        Document version 1.67.
      * libdwarf2p.1.pdf: Regenerated.
2008-08-05  DavidAnderson <davea42@earthlink.net>
      * libdwarf.h, dwarf_error.c:  DW_DLA_PUBTYPE_CONTEXT was a mistake,
        DW_DLE_PUBTYPE_CONTEXT was intended and is now the spelling (neither 
        is used).
      * dwarf_pubtypes.c dwarf_vars.c dwarf_funcs.c dwarf_global.c dwarf_weaks.c:
        tabs removed and previous strange formatting generated by a tool
        removed (4 space indent per level now present).

2008-08-05  DavidAnderson <davea42@earthlink.net>
      * libdwarf2.1.mm: There were numerous places the apostrophe
        was used incorrectly, thru is now spelled through,
        and a few other small typographical errors were corrected.
        The document revision id printed is now 1.67.  
        There is no technical change in content.
      * libdwarf2.1.pdf: Regenerated.
2008-06-17  DavidAnderson <davea42@earthlink.net>
      * libdwarf.h: Add DW_DLE_STRP_OFFSET_BAD error code.
      * dwarf_form.c: Add runtime check for strp offset.
      * dwarf_error.c: Add  DW_DLE_STRP_OFFSET_BAD error code string.
      * dwarf_init_finish.c, dwarf_opaque.h, dwarf_elf_access.h: Remove 
        CR characters that crept in.
2008-06-13  DavidAnderson <davea42@earthlink.net>
      * libdwarf.h: Remove __SGI_FAST_LIBELF
        dwarf_original_elf_init.c: Remove __SGI_FAST_LIBELF
        and fix some indentation botches.
      * dwarf_init_finish.c: Fix typo in variable name introduced
        a few days ago.
      * dwarf_elf_access.c:  Remove __SGI_FAST_LIBELF
        and fix some indentation botches.

2008-05-20  DavidAnderson <davea42@earthlink.net>
      * dwarf_init_finish.c: Expand tabs to spaces.
2008-05-20  DavidAnderson <davea42@earthlink.net>
      * dwarf_init_finish.c(dwarf_object_init): When there is no 
        DWARF information return DW_DLV_NO_ENTRY gracefully.
        Thanks to Carlos Alberto Enciso for pointing out
        the bug.
2008-04-12  DavidAnderson <davea42@earthlink.net>
      * pro_section.c: Initialize local variables to zero.
        Change leading tabs to spaces.
      * pro_reloc_stream.c: Initialize local variables to zero.
        Change leading tabs to spaces.
      * pro_reloc.c: Initialize local variables to zero.
        Change leading tabs to spaces.
2008-04-04  DavidAnderson <davea42@earthlink.net>
      * dwarf_base_types.h: Removed unused macro definition.
      * dwarf_util.c: Altered abbreviations hash table for a small
        performance improvement and space saving.
      * dwarf_util.h: Changed declaration for space saving in dwarf
        abbreviations table.
2008-04-04  DavidAnderson <davea42@earthlink.net>
      * libdwarf.h: A trivial change to make a declaration look better.
      * dwarf_abbrev.h: We record tags in more than 16 bits now just in case
        we encounter such a thing (increased ab_tag field size), though
        we should not find such.
      * dwarf_abbrev.c: Adding a comment about the dwarf TAG value.
      * dwarf_util.c: Initialize local variables at declaration for safety.
        Removed truncation of some values: internally record more bits.
        Rewrote handling of the abbrev table as the old one did not scale
        to large numbers of abbreviations (things got very slow).
      * dwarf_util.h: Now has a larger field size in the argument to
        _dwarf_get_abbrev_for_code (not quite necessary but not harmful).
      * dwarf_die_deliv.c: Initializing local variables at declaration and
        removing truncation of bits from some uleb values.
      * dwarf_die_deliv.h: Increased size of ab_code field.
      * dwarf_opaque.h: Added a comment about abbreviations.
      * dwarf_base_types.h: Revised to match addition of new
        allocation table entry.
      * dwarf_alloc.h: Document macro definitions and increase one to
        match new table size.
      * dwarf_alloc.c: Arrange handling of new DW_DLA_HASH_TABLE_ENTRY
        (most of the work done in dwarf_util.c).
2008-02-27  DavidAnderson <davea42@earthlink.net>
      * libdwarf.h: Fixed minor typo in latest libdwarf.h that gcc did not 
        complain about. Noted by Josh Fuhs.
2008-02-26  DavidAnderson <davea42@earthlink.net>
      * dwarf_alloc.h: Add comment giving placement of DWARF_SIMPLE_MALLOC.
      * pro_opaque.h: Remove de_access field, it is never used.
      * libdwarf.h: Add new data structures to allow reading of
        non-Elf object files.
      * dwarf_original_elf_init.c: dwarf_init(), dwarf_elf_init()
        moved here from dwarf_init_finish.c.
      * Makefile.in: Build new source files dwarf_original_elf_init.c
        and dwarf_elf_access.c.
      * dwarf_init_finish.c: All dependencies on libelf and elf
        have been removed.
      * dwarf_opaque.h: The elf related info is removed and Dwarf_Debug_s
        now contains a new structure (from libdwarf.h) to hide object
        information.
      * dwarf_elf_access.c: All the Elf-using code is now in this
        source file and elf details are kept in a struct defined and
        used here.   Non-libelf and non-elf object access code would
        write a new source file with their own details using this
        as an example.
      * dwarf_elf_access.h: Prototypes for calling between
        dwarf_original_elf_init.c and dwarf_elf_access.c.
2008-02-18  DavidAnderson <davea42@earthlink.net>
      * libdwarf.h: Declare new object-access functions and structures.
      * dwarf_original_elf_init.c: Traditional dwarf_init() and dwarf_elf_init()
        are moved to this new source file.
      * Makefile.in: Add new source files.
      * dwarf_init_finish.c: Now uses the function pointers, not
        libelf specific fields or ifdefs.
      * pro_opaque.h:  Remove de_access field, it is unused.
      * dwarf_opaque.h: New fields for new object-access functions.
      * dwarf_elf_access.c: New implementation details for elf access functions
        moved here from dwarf_init_finish.c.
      * dwarf_elf_access.h: New function interface so  dwarf_elf_access.c
        and dwarf_original_elf_init.c can communicate.
2008-02-08  DavidAnderson <davea42@earthlink.net>
     * dwarf_print_lines.c: Added commentary to clarify that
       dwarf_print_lines() and _dwarf_print_lines are intentionally
       identical.  Initialized local variables so they are alll
       visibly set to some sensible value.
2008-02-07  DavidAnderson <davea42@earthlink.net>
     * dwarf_frame.c (_dwarf_fde_section_offset): A typo
       in the last release made this an infinite loop.
       A one character change fixed it. Thanks to Carlos Alberto
       Enciso for noticing the bug.
2008-02-04  DavidAnderson <davea42@earthlink.net>
     * dwarf_incl.h, pro_incl.h: Moved #include of dwarf.h before libdwarf.h
     * pro_forms.c: Some newer attributes are now handled.
     * dwarf_print_lines.c: Removed unused #include.
     * dwarf_sort_line.c: Removed alloca use in favor of
       malloc and removed the alloca #include.
     * dwarf_line.c: Removed unused #include.
     * dwarf_line2.c: Removed unused #include.

2008-02-04  DavidAnderson <davea42@earthlink.net>
     * libdwarf.h: Fix commentary mistakes.
2008-02-02  DavidAnderson <davea42@earthlink.net>
     * libdwarf.h: Add DW_DLC_OFFSET_SIZE_64 for run-time
       selection of DWARF3 64bit extension producer offset generation.
     * libdwarf2p.1.mm: Document DW_DLC_OFFSET_SIZE_64.
     * pro_init.c (dwarf_producer_init): Now standard DWARF3 is the default.
     * configure.in: Add --enable-dwarf-format-sgi-irix for those
       wanting IRIX offset-style DWARF2. Add --enable-dwarf-format-strict-32bit
       for those wanting strictly 32bit offsets.
       Otherwise default to generating 64bit offsets from the producer code,
       but allow the DWARF3 extended 64bit offsets if the flag
        DW_DLC_OFFSET_SIZE_64 is turned on in the call to dwarf_producer_init().
     * config.h.in: Provide undefs for the offset macros.

2008-01-25  DavidAnderson <davea42@earthlink.net>
     * pro_die.c: Changed leading tabs to spaces.
2008-01-23  DavidAnderson <davea42@earthlink.net>
     * pro_die.c: Using di_last_child field dwarf_die_link
       goes from O(N) to O(1) in adding a child.
       Thanks to Daniel Gollub for the suggestion.
       An omission in linking left/right children is fixed.
       Changed some leading TABs to spaces.
     * pro_opaque.h: Add di_last_child field.
2008-01-14  DavidAnderson <davea42@earthlink.net>
     * libdwarf2p.1.mm: Added missing backslash to correct formatting
       error. Thanks to Daniel Golub for pointing out the ommission.
     * libdwarf2.p1.pdf: Regenerated.