mirror of
https://github.com/davea42/libdwarf-code.git
synced 2025-10-23 10:27:48 +08:00
298 lines
16 KiB
Plaintext
298 lines
16 KiB
Plaintext
2011-12-14 DavidAnderson <davea42@earthlink.net>
|
|
* libdwarf.h, dwarf_error.c: Add a new error code
|
|
for DW_OP location codes.
|
|
* dwarf_loc.c: Implement support for new DW_OP_GNU codes.
|
|
2011-12-13 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf.h: Added some GNU extensions.
|
|
* libdwarf.h: Added dwarf_lineoff_b() as
|
|
dwarf_lineoff() wrongly returns a signed column number.
|
|
Added dwarf_add_lineentry_b() as preparation for creating
|
|
DWARF3/4 output.
|
|
* dwarf_line.h: Added new struct fields to accomodate
|
|
DWARF3/4 isa and discriminator fields.
|
|
* dwarf_line.c: Now deals with the VLIW line calculations
|
|
in DWARF4. Adds support for computing the discriminator
|
|
and isa fields. Adds dwarf_lineoff_b() (and dwarf_lineoff
|
|
is now deprecated). Adds dwarf_prologue_end_etc() which
|
|
returns some DWARF3/4 line fields.
|
|
* dwarf_print_lines.c: Adds handling of DWARF3/4
|
|
line operations and fields and prints the details.
|
|
* libdwarf2.1.mm: Documents the new functions in dwarf_line.c
|
|
Version set to 2.02.
|
|
* libdwarf2.1.pdf: Regenerated.
|
|
* libdwarf2p.1.mm: Documents the new function
|
|
dwaf_add_line_entry_b().
|
|
Version set to 1.32.
|
|
* libdwarf2p.1.pdf: Regenerated.
|
|
* pro_incl.h: Add parentheses so the WRITE_UNALIGNED macro
|
|
works correctly in all circumtances.
|
|
* pro_opaque.h: Add DEBUG_RANGES and dEBUG_TYPES to the list
|
|
of sections we could generate. Define struct Dwarf_P_Line_Inits_s
|
|
to hold initialization values for line table data so we can later
|
|
make the choices at runtime rather than compile time.
|
|
The new struct is a field of the Dwarf_P_Debug struct.
|
|
* pro_line.h: Added some DWARF3/4 support and preparations
|
|
for emitting DWARF3/4.
|
|
* pro_line.c: Define dwarf_add_line_entry_b() for DWARF3/4
|
|
line fields, and _dwarf_init_default_line_header_vals()
|
|
to provide a default set of values, the defaults match
|
|
what was previously done.
|
|
Add support for the new DWARF3/4 line table fields.
|
|
* pro_section.c: Add the beginnings of support for creating
|
|
new DWARF3/4 sections and the new standard opcodes.
|
|
Move the field-writing code to small functions making
|
|
the line table writing smaller and easier to read.
|
|
Added the beginnings of allowing writing DWARF3/4
|
|
line table fields. Some if() missing {} were
|
|
modified by adding {} to avoid future problems.
|
|
2011-12-08 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_frame.c: Corrected a typo by adding a space
|
|
to a comment.
|
|
* libdwarf2p.1.mm: A sentence about dwarf_lne_end_sequence()
|
|
was missing its introductory words. New version is 1.31.
|
|
* libdwarf2p.1.pdf: Regenerated.
|
|
2011-11-02 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf.h: Spelling fix: specfic->specific.
|
|
Rearranged a few comments about MIPS/SGI for
|
|
a better appearance.
|
|
2011-10-29 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_alloc.c: Add support for the .debug_types section.
|
|
* dwarf_arange.c,dwarf_global.c: Add commentary about
|
|
debug_info vs debug_types and a new argument to
|
|
an internal function.
|
|
* dwarf_arange.h,dwarf_global.h: Add comment that this is
|
|
debug_info related only.
|
|
* dwarf_die_deliv.c: Now handles .debug_types as well as
|
|
.debug_info, and context information for the two sections
|
|
is kept seperate.
|
|
* dwarf_elf_access.c: Add a check for relocations of .debug_types.
|
|
* dwarf_error.c: Added error strings related to .debug_types.
|
|
* dwarf_form.c: Changes for .debug_types, mainly due to removing
|
|
'info_' from certain struct member names.
|
|
* dwarf_init_finish.c: Notice the .debug_types section.
|
|
New function dwarf_get_section_max_offsets_b() returns
|
|
the size of debug_types (added to existing arguments).
|
|
* dwarf_opaque.h: Fields named *_info_* have the info_
|
|
removed as they apply to debug_types as well.
|
|
A new struct Dwarf_Debug_InfoTypes holds the data
|
|
for either of .debug_types and .debug_info sections.
|
|
Separating them so the sections can be accessed
|
|
simultaneously. Moved data items from Dwarf_Debug to
|
|
the new struct. DIE structs now have a 'is_info' field
|
|
so a CU and a DIE know whether they are from .debug_info
|
|
or .debug_types.
|
|
* dwarf_query.c: The query functions now work for
|
|
debug_info and debug_query as appropriate.
|
|
* dwarf_util.h: Added _dwarf_load_debug_types() and altered
|
|
a couple internal function prototypes with an 'is_info' flag
|
|
argument.
|
|
* dwarf_util.c: Added _dwarf_load_debug_types(). Altered
|
|
functions so the deal with .debug_types or .debug_info
|
|
as appropriate.
|
|
* libdwarf.h: Added debug_types error codes.
|
|
Added dwarf_siblingof_b() and dwarf_offdie_b() and
|
|
Added dwarf_next_cu_header_c() and
|
|
dwarf_get_cu_die_offset_given_cu_header_offset_b()
|
|
to account for .debug_types or .debug_info as required.
|
|
Added dwarf_get_die_infotypes_flag() so client code
|
|
can know if a DIE is debug_info or debug_types based.
|
|
Added dwarf_get_section_max_offsets_b(), adding
|
|
a debug_types size argument.
|
|
* libdwarf2.1.mm: Documented the new functions. New version
|
|
is 2.0 (somewhat arbitrarily changed from 1.x to 2.0)
|
|
* libdwarf2.1.pdf: Regenerated
|
|
|
|
2011-10-26 DavidAnderson <davea42@earthlink.net>
|
|
* Makefile.in, README: Added Make settings of PREINCS POSTINCS
|
|
PRELIBS, POSTLIBS to simplify building when libdwarf or libelf
|
|
are not in the normal locations. Documented usable ways to
|
|
deal with unusual situations at build time.
|
|
2011-10-09 DavidAnderson <davea42@earthlink.net> .
|
|
* dwarf_die_deliv.c, dwarf_elf_access.c: Fix bad indentation.
|
|
2011-10-05 DavidAnderson <davea42@earthlink.net> .
|
|
* dwarf_die_deliv.c: When relocations fail, record
|
|
a 'harmless error' and continue the CU loading.
|
|
No way to be sure the error is really harmless, of course.
|
|
But it seems to often be harmless.
|
|
For some if() tests add {} to make the clause extent clear.
|
|
* dwarf_harmless.c: Add a comment prefix to dwarf_harmless_init().
|
|
2011-10-03 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_line.c: Introduce {} in a test to avoid future mistakes.
|
|
2011-09-23 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_arange.c: Test for a zero address-size: that indicates
|
|
broken dwarf generation.
|
|
* dwarf_line.c: Test for irrational line number header data and
|
|
error off with DW_DLE_LINE_NUMBER_HEADER_ERROR if we find it.
|
|
Add accidentally-omitted check for version 4.
|
|
* dwarf_error.c, libdwarf.h: New error code
|
|
DW_DLE_LINE_NUMBER_HEADER_ERROR.
|
|
2011-09-16 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_elf_access.c: Give up relocating if the Elf symtab
|
|
header sh_entrysize is zero, and refine the test for
|
|
invalid symbol index to be a >= test.
|
|
* dwarf_error.c: Define text message for
|
|
DW_DLE_SYMTAB_SECTION_ENTRYSIZE_ZERO.
|
|
* libdwarf.h: New error code DW_DLE_SYMTAB_SECTION_ENTRYSIZE_ZERO.
|
|
2011-09-15 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_elf_access.c: Adding fields to the object
|
|
structs dwarf uses and using them for error checks
|
|
when processing relocations.
|
|
* dwarf_error.c: Adding descriptions of new error messages
|
|
for Elf object file interpretation problems.
|
|
* dwarf_init_finish.c: Adding 'entrysize' field about objects
|
|
do dwarf_elf_access.c can check for object and relocation
|
|
data errors and avoid a coredump. And we memset() a struct
|
|
to ensure there are no uninitialized contents.
|
|
* dwarf_opaque.h: Adding new dss_entrysize and
|
|
dss_reloc_entrysize fields so elf error
|
|
checks can be added to dwarf_elf_access.c. These changes mean
|
|
you must recompile all of libdwarf source, not
|
|
just a subset, when rebuilding (the first time one sees this change).
|
|
* libdwarf.h: Adding entrysize element to Dwarf_Obj_Access_Section_s.
|
|
Non-elf object formats can just set this field zero and ignore it.
|
|
Added new elf-specific error codes for the new checks in
|
|
dwarf_elf_access.c.
|
|
2011-09-14 DavidAnderson <davea42@earthlink.net>
|
|
* BLDLIBDWARFTAR: Moved a local disk file. Irrelevant
|
|
to everyone but DA.
|
|
* dwarf_arange.c: check that the address_size and segment
|
|
selector size fields are sensible.
|
|
* dwarf_die_deliv.c,dwarf_frame2.c: Give
|
|
DW_DLE_ADDRESS_SIZE_ERROR or DW_DLE_CU_ADDRESS_SIZE_BAD
|
|
if the address size read from a section is obviously wrong.
|
|
Similarly for a bad segment-selector-size give
|
|
DW_DLE_SEGMENT_SIZE_BAD.
|
|
* dwarf_error.c: Added text for the DW_DLE_SEGMENT_SIZE_BAD
|
|
error.
|
|
* dwarf_frame.c: If dwarf_set_default_address_size() is handed
|
|
an address_size that we cannot handle, ignore the input so
|
|
we don't wind up coredumping the library or consumer code.
|
|
* libdwarf2.1.mm: Updated list of error codes a little bit. Rev 1.99
|
|
* libdwarf2.1.pdf: Regenerated.
|
|
2011-09-08 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_frame.c: Fixed bad indents.
|
|
2011-09-02 DavidAnderson <davea42@earthlink.net>
|
|
* libdwarf2.1.mm: Document the new function
|
|
dwarf_set_default_address_size(). Updated revision to 1.97.
|
|
* libdwarf2.1.pdf: Regenerated.
|
|
* dwarf_frame.c: Implement dwarf_set_default_address_size().
|
|
* libdwarf.h: Declare the new function dwarf_set_default_address_size().
|
|
* dwarf_form.c(dwarf_formref): Removed c99-ish
|
|
declaration so C90 can compile the code.
|
|
* Makefile.in, configure.in: If building shared lib
|
|
CFLAGS gets -fPIC added in.
|
|
* configure: Fegenerated.
|
|
* dwarf_loc.c: New test returns DW_DLE_LOC_BAD_TERMINATION
|
|
in case of compiler bug in location expression.
|
|
* dwarf_error.c, libdwarf.h: Define and document the new
|
|
error.
|
|
* pro_opaque.h: Fixed a bad indent.
|
|
|
|
2011-06-12 DavidAnderson <davea42@earthlink.net>
|
|
* libdwarf.h: Added dwarf_producer_init_c() and its
|
|
callback functions. Adds a user_data void* to the
|
|
init and callback functions for user convenience.
|
|
* libdwarf2p.1.m: Documented dwarf_producer_init_c().
|
|
Rev 1.30.
|
|
* libdwarf2p.1.pdf: Regenerated
|
|
* pro_init.c: Implement dwarf_producer_init_c().
|
|
* pro_opaque.h: Add fields for dwarf_producer_init_c().
|
|
* pro_reloc_stream.c: Implement dwarf_producer_init_c() callback.
|
|
* pro_reloc_symbolic.c: Implement dwarf_producer_init_c() callback.
|
|
* pro_section.c: Implement dwarf_producer_init_c() callback.
|
|
2011-06-09 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_form.c: Code getting access to CU context and
|
|
dbg was repeated many times. Refactored the common
|
|
code into a file-static subprogram.
|
|
2011-06-08 DavidAnderson <davea42@earthlink.net>
|
|
* libdwarf2.1.mm,libdwarf2.1.pdf: Now discusses
|
|
DW_AT_data_member_location in the context
|
|
if dwarf_loclist_n(). Rev 1.96
|
|
2011-06-08 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_init_finish.c: Inserted missing include of
|
|
dwarf_harmless.h.
|
|
2011-06-07 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_elf_access.c: Added EM_QUALCOMM_DSP6
|
|
machine so that relocations work on a
|
|
Qualcomm relocatable object in the dwarf regressiontests.
|
|
* dwarf_util.c: Fixed indent problems added in previous
|
|
change.
|
|
2011-06-07 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_util.c(_dwarf_get_abbrev_for_code): If there is no
|
|
section padding the code could read-from-memory
|
|
one past the end of the section
|
|
which could (in very rare circumstances) coredump
|
|
an application. In addition, earlier in the same funcion
|
|
we did not account for the case where we had already read to
|
|
end of section. Both fixed.
|
|
2011-06-06 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_error.c: Fix a typo in an error string.
|
|
* dwarf_query.c: Implement the new function
|
|
dwarf_get_verion_of_die().
|
|
* libdwarf.h: Add prototype for dwarf_get_verion_of_die().
|
|
* libdwarf2.1.mm: for dwarf_form_{s,u}data, mention
|
|
the DW_FORM_data{4,8} class ambiguity.
|
|
Document the new function dwarf_get_verion_of_die().
|
|
Document version now 1.95.
|
|
* libdwarf2.1.pdf: Regenerate.
|
|
2011-06-04 DavidAnderson <davea42@earthlink.net>
|
|
* NEWS: Mention the non-elf documentation oversight.
|
|
* dwarf_arange.c,dwarf_elf_access.c, dwarf_frame3.c,
|
|
dwarf_funcs.c,dwarf_global.c,dwarf_init_finish.c,
|
|
dwarf_line.c,dwarf_loc.c,dwarf_macro.c,dwarf_print_lines.c,
|
|
dwarf_pubtypes.c,dwarf_query.c,dwarf_ranges.c,dwarf_string.c,
|
|
dwarf_types.c,dwarf_vars.c, dwarf_weaks.c: Everything loading
|
|
a section now checks the result for 'empty' and returns
|
|
DW_DLV_NO_ENTRY explicitly. This makes it easier to
|
|
do nothing safely when there is no data.
|
|
2011-06-04 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_line.c (_dwarf_internal_srclines): Created new local functions
|
|
to unify some repeated code in into function calls. One of the
|
|
earlier inline-repetitions was coded wrong. Added {} to ensure clarity
|
|
on the intended scope a couple places. Added initializers to
|
|
a couple of local variables.
|
|
2011-06-04 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_alloc.c: Added include "dwarf_harmless.h" so
|
|
a prototype is visible here.
|
|
* dwarf_form.c (dwarf_convert_to_global_offset,dwarf_global_formref): Deleted unused local variables.
|
|
* dwarf_frame.c (dwarf_initialize_fde_table): Uses local instead
|
|
of ignoring it (avoids compiler warning).
|
|
* dwarf_frame2.c (_dwarf_get_fde_list_internal): Delete unused
|
|
local variable.
|
|
* dwarf_line.c (dwarf_srcfiles): Call uses variable expected
|
|
signedness now, avoiding compiler warning.
|
|
* dwarf_print_lines.c: Printf was missing %, gcc -Wall pointed
|
|
out the mistake.
|
|
2011-04-23 DavidAnderson <davea42@earthlink.net>
|
|
* pro_error.c (_dwarf_p_error): The code attempting to deal with
|
|
an unexpected error code was doing an inappropriate cast and
|
|
an inappropriate (possibly out-of-bounds) reference to an array
|
|
of strings. Removed the cast and removed the questionable
|
|
array reference.
|
|
* dwarf_frame.c: A couple lines were indented badly. Fixed the indentation.
|
|
* pro_line.h: Now __x86_64 also gets MIN_INST_LENGTH 1
|
|
2011-03-29 DavidAnderson <davea42@earthlink.net>
|
|
* everything: Redid all indentations for
|
|
consistency. Updated copyrights. Interfaces
|
|
did not change, existing clients should not
|
|
encounter difficulty.
|
|
2011-03-13 DavidAnderson <davea42@earthlink.net>
|
|
* libdwarf.h, dwarf_error.c: Added
|
|
DW_DLE_DEBUG_FRAME_POSSIBLE_ADDRESS_BOTCH.
|
|
2011-01-20 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf.h: Added some Apple attribute extensions.
|
|
2011-01-13 DavidAnderson <davea42@earthlink.net>
|
|
* dwarf_print_lines.c: Handles DW_FORM_exprloc now. With -vvv
|
|
it now prints the dwarf version of the line table header.
|
|
* dwarf_line.c: Handles DW_FORM_exprloc now.
|
|
2011-01-13 DavidAnderson <davea42@earthlink.net>
|
|
* libdwarf.h: Added new function dwarf_get_die_address_size().
|
|
* libdwarf2.1.mm: Documented new function dwarf_get_die_address_size().
|
|
Rev 1.91, 12 January 2011
|
|
* libdwarf2.1.pdf: Regenerated.
|
|
* dwarf_form.c: Corrected handling of DW_FORM_exprloc.
|
|
* dwarf_query.c: Implemented dwarf_get_die_address_size().
|
|
Corected handling of DW_FORM_exprloc.
|
|
* dwarf_util.c: Added handling of DW_FORM_exprloc and
|
|
DW_FORM_flag_present.
|