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 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399
|
2014-12-31: David Anderson
* dwarf_error.c: Add DW_DLE_DW_DLE_ATTR_OUTSIDE_SECTION.
* libdwarf.h.in: Add DW_DLE_DW_DLE_ATTR_OUTSIDE_SECTION.
* dwarf_form.c(dwarf_formexprloc): Call the new function
_dwarf_reference_outside_section() as a check
for an exprloc with data that is outside the section it
belongs in. Ie, a bug somewhere. Return error
DW_DLE_DW_DLE_ATTR_OUTSIDE_SECTION if applicable.
* dwarf_frame2.c(read_encoded_ptr): Pass error down so we set
a complete Dwarf_Error record at the point of error.
Just three functions that could use this were changed.
* dwarf_leb.c(_dwarf_decode_u_leb128): Presented with bogus
leb values we stop scanning the leb number before
overrunning our value-output buffer (and dumping core).
The change is reasonably adequate but will not catch
all cases.
* dwarf_query.c(dwarf_attrlist): Call _dwarf_reference_outside_section
to check the pointer is valid.
* dwarf_util.c,dwarf_util.h: Implement _dwarf_reference_outside_section().
2014-12-28: David Anderson
* dwarf_alloc.c: Added global _dwarf_failsafe_error
to enable better error reporting when malloc arena
has no space left. On dwarf_dealloc() avoids attempting
a free() of the static struct.
* dwarf_error.c,libdwarf.h.in: New error code
DW_DLE_FAILSAFE_ERRVAL for the malloc-arena-exhausted
case. Now use that static instead of aborting.
* dwarf_error.h: New field and library-private extern declaration
for the malloc-arena-exhausted case.
* libdwarf2.1.mm: Documented the handling of Dwarf_Error
when malloc space exhausted.
* libdwarf2.1.pdf: Regenerated. Rev 2.23.
2014-09-10: David Anderson
* dwarf_tsearchhash.c(calculate_allowed_fill): Moved a declaration
to avoid using a C99 feature.
* dwarf_query.c(dwarf_highpc_b): Moved a declaration to avoid using
aC99 feature.
* dwarf_util.c(dwarf_print): Moved a declaration to avoid using
aC99 feature.
2014-08-11 David Anderson, avoiding some compiler warnings.
*dwarf_xu_index.c,dwarf_macro.c: Failed to cast the pointer
returned by _dwarf_get_macro (one place in each file).
2014-08-04 David Anderson, avoiding some compiler warnings.
* dwarf_alloc.c, dwarf_alloc.h: Change some uses of Dwarf_Ptr to be char *
so we avoid adding (etc) to Dwarf_Ptr.
* dwarf_gdbindex.c: Cast _dwarf_get_alloc() return properly.
* dwarf_loc.c: Cast Dwarf_Ptr to char * in a couple places.
* dwarf_query.c,dwarf_sort_line.c,pro_arange.c: Change names of local
variables to avoid
compiler warning about shadowing other locals.
* dwarf_tsearchhash.c: Changed to avoid compiler warnings
about const casts whereever possible.
* libdwarf.h.in: Added prototypes for DWARF5
dwarf_get_SECT_name() and dwarf_get_MACRO_name().
* pro_alloc.c: Add include of pro_alloc.h.
* pro_forms.c: Made _dwarf_add_AT_reference_internal()
static to avoid warning.
* pro_types.c: Add include of pro_types.h.
2014-08-02 David Anderson
* dwarf_gdbindex.c: Fix an argument list by adding section name.
* libdwarf.h.in: Fix an argument list by adding section name.
Clarify some commentary on dwarf_get_xu* function declarations.
* libdwarf2.1.mm: Documented the new gdbindex and dwarf_get_xu*
functions.
* libdwarf2.1.pdf: Regenerate. Version 2.22.
2014-07-12 David Anderson
* dwarf_die_deliv.c: Remove trailing whitespace.
Implement dwarf_get_die_section_name() allow
clients to get the Elf
section name actually used for the section.
* dwarf_xu_index.c: Remmove traling whitespace and fix
indents.
2014-07-11 David Anderson
* dwarf_opaque.h: Various CU context fields were
not clarified by comments, so comments added.
2014-07-11 David Anderson
* dwarf_opaque.h: Clarified a couple comments.
2014-07-11 David Anderson
* dwarf_xu_index.c: Now extracts the offset and size table
data correctly.
2014-07-10 David Anderson
* dwarf_die_deliv.c: Clarify a comment a little bit.
No change in the code.
2014-07-10 David Anderson
* dwarf_error.c,libdwarf.h.in: Added new error codes.
* dwarf_xu_index.c: Now extracts the hash table
values from .debug_tu_index and .debug_cu_index sections.
2014-07-09 David Anderson
* dwarf_alloc.c,dwarf_xu_index.c,dwarf_xu_index.h:
Removed trailing whitespace characters.
2014-07-09 David Anderson
* Makefile.in: Added dwarf_xu_index.o. Moved dwarf_macro.o
to get closer to alphabetical order in the list.
* dwarf.h: Added DW_SECT codes so the .debug_[tc]u.index
sections can be interpreted properly. DWARF5.
* dwarf_alloc.c: Added dwarf_xu_index.h #include. Added
struct Dwarf_Xu_Index_Header_s to alloced structs.
Added a couple lines of commentary about .gdb_index
section access type.
* dwarf_alloc.h: Increased ALLOC_AREA_INDEX_TABLE_MAX to 57
for the new alloc type.
* dwarf_die_deliv.c: Removed trailing whitespace.
* dwarf_elf_access.c: Added commentary.
* dwarf_error.c: Added new error codes for .debug_tu_index
and .debug_cu_index sections code.
* dwarf_init_finish.c: Add handling of .debug_tu_index
and .debug_cu_index sections.
* dwarf_opaque.h: Add de_debug_cu_index and
de_debug_tu_index to Dwarf_Debug_s struct.
* dwarf_xu_index.c: New code for the newly handled
DWARF5 sections .debug_tu_index and .debug_cu_index .
* dwarf_xu_index.h: Defines struct Dwarf_Xu_Index_Header_s.
* libdwarf.h.in: Declares new functions implementing some of the
new section interfaces.
2014-07-05 David Anderson
* 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.
* dwarf_frame.h: Add commentary about pointers in the cie_fde_prefix_s
structure.
* dwarf_global.c(_dwarf_internal_get_pubnames_like_data): Add
commentary about the of fields.
* dwarf_opaque.h: Improve commentary about offsets.
2014-07-03 David Anderson
* dwarf_die_deliv.c: Fixed CU type offset check. Created local variable
so we do not repeat a calculation so the error does not recur and simplifying
nearby code.
* gdb_index.c: Remove unused local variable.
* dwarf_opaque.h: Change offset entries from Dwarf_Word to Dwarf_Unsigned
to ensure we do not remove bits from values.
* dwarf_query.c: Remove unused local variable and a comment referencing
that unused variable.
* pro_reloc_stream.c: Remove unused local variable.
2014-07-01 David Anderson
* dwarf_alloc.c, dwarf_gdbindex.c, dwarf_init_finish.c, dwarf_opaque.h, libdwarf.h.in:
Fixed indent errors and removed trailing whitespace.
2014-07-01 David Anderson
* libdwarf.h.in: Matched up gdbindex symboltable interfaces with
the C source.
* dwarf_gdbindex.c: Implement Symbol table access.
2014-06-30 David Anderson
* libdwarf.h.in: Remove useless interface to gdbindex.
* dwarf_gdbindex.c: Implement TU list access code.
Implement access to the address area.
2014-06-29 David Anderson
* dwarf_error.c: Added error codes for gdbindex access.
* libdwarf.h.in: Revised gdbindex function interface: simpler.
* dwarf_gdbindex.c, dwarf_gdbindex.h: Implement gdbindex
functions.
2014-06-28 David Anderson
* Makefile.in: Add dwarf_gdbindex.o to objects.
* dwarf_alloc.c: Add new type Dwarf_Gdbindex_s to allocatable
types.
* dwarf_elf_access.c: Add a comment reflecting lack of need
to relocate a .gdb_index section.
* dwarf_error.c: Add new error strings for gdb_index
related errors.
* dwarf_init_finish.c: Add .gdb_index section to the
sections we read. Refactor a test into a function
this_section_dwarf_relevant() to make code more readable.
* dwarf_opaque.h: Add de_debug_gdbindex to Dwarf_Debug_s.
* libdwarf.h.in: Add opaque types for .gdb_index section
interfaces. Add DW_DLA_GDBINDEX for allocatability of
the new type. Add new GDB_INDEX error codes in DW_DLA list.
Declare new gdb_index interfaces.
2014-05-19 David Anderson
* dwarf_init_finish.c: Removed unused local variable.
* dwarf_opaque.h: Added _dwarf_extract_string_offset_via_str_offsets()
to communicate the argument list to other libdwarf source files.
* dwarf_query.c: Fixed botch in call argument list, the dwarf_opaque.h
change exposed it. Deleted an unused local variable.
* pro_reloc_symbolic.c: Deleted an unused local variable.
2014-05-18 David Anderson
* libdwarf2.1.mm: Fixed a typo in the H3 line
for dwarf_get_debug_add_index().
* libdwarf2.1.pdf: Regenerated. Rev 2.20, May 18 2014.
2014-05-18 David Anderson
* dwarf_loc.: Fixed offset update for DW_OP_constx/addrx.
2014-05-18 David Anderson
* dwarf_form.c: Removed trailing whitespace, added commentary.
* dwarf_loc.c: Added commentary.
2014-05-18 David Anderson
* libdwarf.h.in, dwarf_form.c: Restored the function
dwarf_get_debug_addr_index(). It is useful as a convenience
for apps like dwarfdump.
2014-05-18 David Anderson
* dwarf_die_deliv.c,dwarf_error.c,dwarf_form.c,dwarf_init_finish.c,
dwarf_opaque.h,dwarf_query.c,dwarf_util.c,libdwarf.h.in:
Fixed numerous indent errors and removed trailing whitespace.
2014-05-17 David Anderson
* dwarf.h: Minor comment enhancement.
* dwarf_loc.c: Fixed code for DW_OP_constx, DW_OP_addrx,
DW_OP_GNU_addr_index, DW_OP_GNU_const_index.
* dwarf_form.c: DW_FORM_addr_index, DW_FORM_addrx,
DW_FORM_strx, DW_FORM_GNU_str_index
* dwarf_opaque.h: added new field dss_name to help
debugging.
* dwarf_query.c: Returns DW_DLE_MISSING_NEEDED_DEBUG_ADDR_SECTION when
debug_addr is missing so address cannot be
literally extracted.
New functions: dwarf_get_debug_addr_index()
and dwarf_get_debug_str_index().
* libdwarf.h.in: New error codes for FORM errors.
New function declarations: dwarf_get_debug_addr_index()
and dwarf_get_debug_str_index().
2014-05-14 David Anderson
* dwarf_die_deliv.c: Refactored several interfaces and used
DW_DLV_OK (etc) returned values internally much more than
before to get the desired behavior easily.
* dwarf_error.c: Error strings for 8 new error numbers.
* dwarf_form.c: DW_FORM_addr_index, DW_FORM_addrx
support added.
* dwarf_init_finish.c: Sections .debug_addr and
.debug_addr.dwo now handled if present.
* dwarf_opaque.h: New Dwarf_CU_Context fields added
so we can get CU DIE attributes for DW_FORM_addrx
DW_FORM_strx etc.
New de_debug* fields added for the new DebugFission
sections.
* dwarf_query.c: Using the revised _dwarf_get_size_of_val()
internal function.
Handling DW_FORM_GNU_str_index, DW_FORM_strx.
New functions (internal) for DW_FORM_strx, DW_FORM_addrx
and the GNU version of these to avoid duplicating code.
* dwarf_util.c: Implement revised _dwarf_get_size_of_val().
Handling DW_FORM_GNU_str_index, DW_FORM_strx.
* dwarf_util.h: Updated _dwarf_get_size_of_val()
declaration.
* libdwarf2.1.mm: Revision 2.8. May 15 2014. Documented
a restriction to a sensible view to strings that
dwarf_errmsg() returns. However without actually
changing anything to take advantage of that restriction.
* libdwarf2.1.pdf: Regenerated.
2014-05-11 David Anderson
* dwarf_error.c: Added 3 new error strings.
* dwarf_form.c: Added DW_FORM_GNU_str_index and partial
DW_FORM_GNU_addr_index handling.
* dwarf_init_finish.c: Refactored initial section setup
so we can handle dwo (DebugFission) or regular sections.
* dwarf_query.c: Add support for DW_FORM_GNU_str_index.
Partial support for DW_FORM_GNU_addr_index.
* dwarf_util.c: Add support for DW_FORM_GNU_str_index,
DW_FORM_GNU_addr_index.
* libdwarf.h.in: 4 new error codes in DW_DLE_ list. Last now 248.
2014-05-09 David Anderson
* Makefile.in: Write ar std-out to ar-output-temp
so the text is not needlessly filling a terminal window.
2014-05-08 David Anderson
* dwarf.h: Adds DW_AT_GNU_dwo_id, DW_AT_GNU_dwo_name and other
GNU extensions.
* libdwarf.h.in: Producer code changes:
The dwarf_producer_init_d() is new and has new arguments.
The older dwarf_producer_init() and _b _c versions are removed.
Only one producer callback declaration exists now:
Dwarf_Callback_Func.
* pro_init.c: Implements the new dwarf_producer_init_d()
function and initializes fields at runtime to select
what DWARF to emit. Messy and confusing initialization code
rewritten to depend on the runtime arguments
to dwarf_producer_init_d, not library compile-time.
* pro_opaque.h: New runtime fields set by initialization code.
* pro_reloc.c: Fix a couple comment indentations.
* pro_forms.c: Add curly braces in an if to avoid
a hard-to-find bug (there was none yet, but it was a trap...).
* pro_reloc_symbolic.c,pro_reloc_stream.c: Remove use
of obsolete callback functions.
* pro_section.c: Ensure only IRIX isa/abi target generates
an exception CIE entry. Remove use of obsolete
callbacks.
* pro_util.h: Remove confusing and unreadable
relocation number ifdefs that
depended on settings at library compile-time. Most of the
content of the file is deleted now. See
isa_relocs[] in pro_init.c
* dwarf_error.c: Added error code (used by producer code).
* libdwarf2p.1.mm: Now version 1.36. Updated dwarf_producer_init()
documentation.
* libdwarf2p.1.pdf: Regenerated.
2014-04-14 David Anderson
* pro_forms.c: Modified a comment about DW_FORM_ref_addr.
No logic change.
* bldDWindex.sh: Deleted. This shell script was intended for
DWARF2 postscript post-processing and was never useful.
2014-04-12 David Anderson
* dwarf_die_deliv.c,dwarf_query.c: Gets the version stamp passed to
_dwarf_get_size_of_val() so DW_FORM_ref_addr handled
correctly.
* dwarf_form.c: Handle DW_FORM_ref_addr as the V2
specification says (V3 and later continue to
be handled unchanged.).
* dwarf_util.c: Handle DW_FORM_ref_addr as the V2
specification says (V3 and later continue to
be handled unchanged.).
* dwarf_addr_finder.c: Removed a mistaken handling
of DW_FORM_ref_addr. No one should be using this
function's features though...
* pro_forms.c: Made a comment clearer about
DW_FORM_ref_addr.
* pro_section.c: Made a comment clearer, removed
#if 0 code.
2014-04-02 David Anderson
* libdwarf2.1.mm: Examples using dwarf_offdie_b() were
miscoded (is_info argument not provided). Now fixed.
Now at version 2.17.
* libdwarf2.1.pdf: Regenerated
2014-03-17 David Anderson
* dwarf.v2.mm,dwarf.v2.pdf,index.v2.mm,index.v2.pdf: Removed
these files, they are now on dwarfstd.org.
* Makefile.in: Removed mention of the deleted files.
* README, COPYING: Removed mention of the deleted files.
2014-02-08 David Anderson
* libdwarf2p.1.mm: Now version 1.35. Added a few words
about the sect_name_index field in the callback
from libdwarf to your code for each new Elf section
to be generated.
* libdwarf2p.1.pdf: Regenerated.
2014-02-02 David Anderson
* dwarf_alloc.c: Added commentary.
* dwarf_loc.c: Fixed two indents.
* gennames.c: Removed trailing newlines from the printf
output (dwarf_names_new.h is the file generated).
* libdwarf.h.in: Removed trailing whitespace.
2014-02-01 David Anderson
* dwarf_alloc.c: Instead of doing a long list of address compares,
use the hash 'tree' and tfind() to determine if we malloced
the space or simply took an address from .debug_info (
or other in-memory section) when
we returned a _dwarf_get_alloc() pointer to the user.
2014-01-31 David Anderson
* configure.in: The test to generate HAVE___UINT32_T_IN_SYS_TYPES_H
was in a strange place. Moved it up a few lines.
* configure: Regenerated.
* dwarf_alloc.c: Added comment hinting at how dwarf_dealloc
can be further simplified.
2014-01-30 David Anderson
* dwarf_loc.c: Add support for DW_FORM_exprloc
to dwarf_loclist_n().
* libdwarf2.1.mm: Document support for DW_FORM_exprloc.Version 2.16
* libdwarf2.1.pdf: Regenerate.
* dwarf.h, dwarf_form.c, dwarf_line.c,
dwarf_query.c, dwarf_util.c: Add limited support for DW_FORM_GNU_ref_alt
and DW_FORM_GNU_strp_alt.
2014-01-30 David Anderson
* dwarf_alloc.c: Refactored and added relevant commentary.
Added a check for debug_types in dwarf_dealloc().
* dwarf_init_finish.c: Corrected a comment and made one line
declation-is-initialization.
* dwarf_opaque.h: Added commentary.
2014-01-29 David Anderson
* common.h,dwarf.h,dwarf_abbrev.c,dwarf_abbrev.h,dwarf_addr_finder.c,
dwarf_alloc.c,dwarf_alloc.h,dwarf_arange.c,dwarf_arange.h,
dwarf_base_types.h,dwarf_die_deliv.c,dwarf_die_deliv.h,
dwarf_elf_access.c,dwarf_elf_access.h,dwarf_error.c,dwarf_error.h,
dwarf_form.c,dwarf_frame.c,dwarf_frame.h,dwarf_frame2.c,
dwarf_frame3.c,dwarf_funcs.c,dwarf_funcs.h,dwarf_global.c,
dwarf_global.h,dwarf_harmless.c,dwarf_harmless.h,dwarf_incl.h,
dwarf_init_finish.c,dwarf_line.c,dwarf_line.h,dwarf_line2.c,
dwarf_loc.h,dwarf_macro.h,dwarf_opaque.h,dwarf_reloc_arm.h,
dwarf_reloc_mips.h,dwarf_reloc_ppc.h,dwarf_reloc_ppc64.h,
dwarf_reloc_x86_64.h,dwarf_tsearch.h,dwarf_types.h,dwarf_util.h,
dwarf_vars.h,dwarf_weaks.h,libdwarfdefs.h,malloc_check.h,
pro_alloc.h,pro_arange.h,pro_die.h,pro_encode_nm.h,pro_error.h,
pro_frame.h,pro_incl.h,pro_line.h,pro_opaque.h,dwarf_tsearch.h:
Remove trailing whitespace.
2014-01-29 David Anderson
* dwarf_tsearch.h, dwarf_tsearchhash.c: New files implementing
a hashed tree with tsearch() interfaces.
* Makefile.in: Add dwarf_tsearchhash.c to the build.
* dwarf_init_finish.c: Remove references to malloc_check and _dwarf_setup_debug()
and include of "malloc_check.h" as those are no longer needed.
* dwarf_line.c: Removed a superfluous _dwarf_get_alloc(). The result of the call
was never used.
* dwarf_opaque.h: Removed Dwarf_Alloc_Hdr_s references and simple malloc references.
added de_alloc_tree as base of a hash database replacing most of dwarf_alloc.c.
* dwarf_query.c: Removed an unused local variable.
* dwarf_alloc.h,dwarf_alloc.c: Removed simple malloc support and all the
complicated code handling allocation record-keeping in favor of
much simpler code calling functions
using a tsearch-like interface.
2014-01-10 David Anderson
* dwarf_print_lines.c,dwarf_macro.c: Remove trailing whitespace.
* dwarf_ranges.c, dwarf_sort_lines.c: Remove trailing whitespace.
* dwarf_query.c, dwarf_pubtypes.c: Remove trailing whitespace.
* dwarf_original_elf_init.c,dwarf_loc.c: Remove trailing whitespace.
* gennames.c: Fix a printf so the generated dwarf_names.c
does not have a trailing space.
2014-01-10 David Anderson
* gennames.c: Added comment clarifying why error is set
before the call to fgets, and fixing the declaration
order to avoid c99-ism.
* dwarf_frame2.c: Use /* not // for comments in C.
|