Commit Graph

610 Commits

Author SHA1 Message Date
David Anderson
08efeebcf3 Remove the unneccessary typedef for 'string'
and just use char*.

Ensure the getopt tests still work.

modified:   dwarfdump/dwarfdump.c
modified:   dwarfdump/dwgetopt.c
modified:   dwarfdump/esb.c
modified:   dwarfdump/esb.h
modified:   dwarfdump/getopttest.c
modified:   dwarfdump/globals.h
modified:   dwarfdump/print_die.c
modified:   dwarfdump/print_frames.c
modified:   dwarfdump/print_lines.c
modified:   dwarfdump/print_strings.c
modified:   dwarfdump/tag_attr.c
modified:   dwarfdump/tag_tree.c

Fixing errnumber->string array and arranging
that we test it during build.

modified:   libdwarf/Makefile.in
renamed:    libdwarf/dwarf_error.c -> libdwarf/dwarf_errmsg_list.c
modified:   libdwarf/dwarf_error.c
2016-04-25 13:01:30 -07:00
David Anderson
74681a0a34 Merge branch 'carlos_enciso'
Changes that enable Windows compilation with a C++ compiler
though the code in libdwarf is all C90.
And fix a bug with esb* interfaces that was found by
testing code not in libdwarf or dwarfdump.
2016-04-25 08:50:08 -07:00
David Anderson
51c8c08ef4 libdwarf/dwarf_error.c: The error description
"DW_DLE_GDB_INDEX_INDEX_ERROR(264)" was missing the
      comma so following errors were reporting the wrong string.
2016-04-25 08:18:51 -07:00
Carlos Alberto Enciso
78003aa6c7 Printing using the 'esb' module was broken. It seems to work
because the default internal buffer size (240), was big enough
    to receive the resulting output.

    esb.c, esb.h:
        * Missing prefix 'esb' for 'allocate_more'
        * Initial buffer size reduced to 16.
        * New function 'esb_open_null_device': open 'null' device
        * New function 'esb_close_null_device': close 'null' device
        * New function 'esb_allocate_more_if_needed': allocate more
          space if required, leaving the contents unchanged, so the
          caller, does not need to worry about it.
          There are 2 cases:
          Windows: use the 'null' device to get the required space
          UNIX: use a big buffer (512). But if the result is bigger,
          the original problem will be shown.
        * The function 'esb_append_printf_ap', now takes care of
          increasing the buffer if needed.

     dwarfdump.c: In the case of windows, open and close the 'null'
         device, in order to setup the esb module.
2016-04-21 13:44:38 +01:00
Carlos Alberto Enciso
ab7dbdbcc9 * For a C/C++ build, do not define 'string' as it clashes with the
std::string definition.
    * Minor type in 'traverse_one_die' function.
2016-04-21 10:01:11 +01:00
Carlos Alberto Enciso
7ea30ef8ac Update the log file for previous change (32/64 configuration). 2016-04-21 09:53:26 +01:00
Carlos Alberto Enciso
57d0dafab6 For a WINDOWS version, display the 32/64 bits configuration. 2016-04-21 09:50:54 +01:00
Carlos Alberto Enciso
720e94b7db Use the _WIN32 macro to identify a WINDOWS specific code.
The macro is automatically defined by the VS C/C++ compiler.
2016-04-21 09:47:04 +01:00
Carlos Alberto Enciso
fd6357e0ed Merge branch 'master' into carlos_enciso
# By David Anderson
# Via David Anderson
* master:
  dwarfexample/ChangeLog said 2011 but it is really just 2016 changes. Fixed.
  Fixed a stray Dwarf_Unsigned to be Dwarf_Off in dwarfdump/print_die.c:  dieprint_cu_goffset is the variable.
2016-03-22 08:10:53 +00:00
David Anderson
bee5744837 dwarfexample/ChangeLog
said 2011 but it is really just 2016 changes.
Fixed.
2016-03-17 08:09:20 -07:00
David Anderson
a39e4bd5a7 Fixed a stray Dwarf_Unsigned to be Dwarf_Off
in dwarfdump/print_die.c:  dieprint_cu_goffset is the variable.
2016-03-17 08:02:12 -07:00
Carlos Alberto Enciso
2edcdc67a4 Minor cosmetic changes. No code changes.
Update release date
dwarfdump/common.c

Incorrect change year
dwarfexample/ChangeLog
2016-03-15 13:41:57 +00:00
David Anderson
d820dd3dcd libdwarf
* dwarf_util.c(_dwarf_get_abbrev_for_code):
      Changed 'byte' to 'byte pair'
      in a comment.  Where we read abbreviation AT/FORM lists.
      For correctness.
2016-03-14 16:06:58 -07:00
David Anderson
67e007a29c Fixed compiler warnings (--enable-wall)
dwarfexample/frame1.c

Added new options for test coverage.
dwarfexample/simplereader.c

Notes about changes new this year.
libdwarf/NEWS

Better words about error handling.
libdwarf/dwarf_error.c
libdwarf/libdwarf2.1.mm
libdwarf/libdwarf2.1.pdf
2016-03-14 14:19:58 -07:00
David Anderson
93ee5b2311 simplereader.c: --simpleerrhand flag
lets us test an error handler
        when combined with --passnullerror.
        Fixed various warnings exposed by
        configure --enable-wall.
2016-03-14 08:12:18 -07:00
David Anderson
cb5b47a1a0 libdwarf2.1.mm documents Dwarf_Handler and gives example.
libdwarf2.1.pdf regenerated. 2.47
2016-03-14 07:46:44 -07:00
David Anderson
f0994cfc0a tweaked libdwarf/ChangeLog for completeness. 2016-03-14 07:13:27 -07:00
David Anderson
3f9c12e062 Add a new option to simplereader
(for testing libdwarf it's no longer so simple).
Support configure --enable-wall.
dwarfexample/Makefile.in
dwarfexample/configure
dwarfexample/configure.in
dwarfexample/simplereader.c

Now works with DW_FORM_GNU_strp_alt and DW_FORM_strp_sup
(as well as it can) even if there is no error argument passed
in to dwarf_formstring (and now dwarf_diename()
and dwarf_die_text() call dwarf_formstring() so all
types of string values are handled).
libdwarf/dwarf_form.c
libdwarf/dwarf_query.c
2016-03-14 07:07:12 -07:00
David Anderson
0a5438abb4 Improved reporting of abbreviations
dwarfdump/print_abbrevs.c
dwarfdump/print_die.c

libdwarf/dwarf_abbrev.c
libdwarf/dwarf_abbrev.h
libdwarf/dwarf_die_deliv.c
libdwarf/dwarf_die_deliv.h
libdwarf/dwarf_query.c
libdwarf/dwarf_util.c
libdwarf/libdwarf.h.in
libdwarf/libdwarf2.1.mm
libdwarf/libdwarf2.1.pdf
2016-03-12 17:07:20 -08:00
David Anderson
ebf7f8b181 * dwarf_die_deliv.c: Fixed issues with handling NULL
Dwarf_Error*  and with mistakes treating DW_DLV_NO_ENTRY
      as if it were DW_DLV_ERROR.
    * dwarf_form.c: Only do dwarf_errno(*error) when error is non-null.
    * dwarf_macro5.c, dwarf_query.c, dwarf_ranges.c: Avoid the
      possibility of
      doing dwarf_errno(*error) when error is null.
    * dwarf_util.c(_dwarf_error_mv_s_to_t): Added code to
      ensure that nothing crash-worthy happens
      even if a future internal caller calls it with one or more NULL
      arguments.
    * libdwarf2.1.mm: Added a few words about Error Handling in general
      to clarify earlier wording (earlier wording  was not as explicit
      as it should have been).
    * libdwarf2.1.pdf: Regenerated. Version 2.45
    * dwarf_sort_line.c: Though no longer built or used, added
      an initializer to a local variable for correctness.
2016-03-11 12:41:28 -08:00
David Anderson
d527848e6c Add a comment about pr use in building a pdf.
Makefile.in
2016-03-11 08:00:43 -08:00
David Anderson
af3995c68f Minor alteration. No real content change.
libdwarf2.1.mm
libdwarf2.1.pdf  Rev 2.44
2016-03-09 09:52:57 -08:00
David Anderson
86a5812582 dwarfdump/dwarfdump.c
dwarfdump/globals.h
dwarfdump/print_aranges.c
dwarfdump/print_die.c
dwarfdump/print_frames.c
dwarfdump/print_lines.c
dwarfdump/print_macro.c
dwarfdump/print_pubnames.c
      print_lines.c,print_macro.c,print_pubnames.c:
      Remove the global dieprint_cu_offset, use local vars and pass around instead.
      Ensure the traverse() logic when checking type references do not evaluate
      references to other sections. Many argument lists got an additional argument or two.

libdwarf/dwarf_form.c
fix a comment
2016-03-09 08:42:50 -08:00
David Anderson
ce158c52c5 dwarfdump:
* dwarfdump.c: Update version string. Added CU_low_address so
      CU_base_address is properly used only for the DWARF
      CU 'base address' notion. Print CU_low_address in PRINT_CU_INFO().
* common.c: Update version string
* globals.h: New macro DROP_ERROR_INSTANCE(d,r,e) improves consistency
      where we need to drop a Dwarf_Error instance.
* print_die.c: Support for CU_low_address. Use DROP_ERROR_INSTANCE
      where appropriate.
* print_frames.c: Use DROP_ERROR_INSTANCE
      where appropriate.
2016-03-07 16:41:11 -08:00
David Anderson
45573a89f5 libdwarf: document dwarf_dietype() and the new
function dwarf_offset_list()
checkexamples.c
libdwarf2.1.mm
libdwarf2.1.pdf
2016-03-07 11:33:19 -08:00
Carlos Alberto Enciso
2464b8ac1d * dwarfdump.c:
Missing '_' just for consistency.
    Print any harmless errors only the required in command line

* globals.h:
    Unused declaration.

* print_die.c:
    When displaying a DW_AT_type offset error, uses the standard
    0xdddddddd format.
    Wrap to 80 columns, a long line.
2016-03-03 09:46:02 +00:00
Carlos Alberto Enciso
e8701c78b8 Memory corruption due to incorrect usage of memory allocator type.
dwarf_alloc.h, dwarf_alloc.c, dwarf_base_types.h, dwarf_opaque.h:
  New allocator type (DW_DLA_CHAIN_2), to allow a list of addressed
  types (address, offset).

dwarf_query.c: Use the new allocator type.
2016-02-19 14:39:14 +00:00
Carlos Alberto Enciso
e7471e8add * dwarf_query.c, libdwarf.h.in: New function to get the children
offsets for a given offset.
2016-02-18 16:25:02 +00:00
Carlos Alberto Enciso
e85fa29085 Merge branch 'master' into carlos_enciso
* master:
  Tighten up the checking-tree array sizes and add comments about setting those sizes. dwarfdump/tag_attr_ext.list dwarfdump/tag_common.h dwarfdump/tag_tree_ext.list
  Update version strings. Add some already known GNU extension tags to the lists.

Conflicts:
	dwarfdump/common.c
2016-02-18 07:51:26 +00:00
David Anderson
859ed5ce9a Tighten up the checking-tree array sizes and
add comments about setting those sizes.
dwarfdump/tag_attr_ext.list
dwarfdump/tag_common.h
dwarfdump/tag_tree_ext.list

Changes aid in testing.
No change in the tsearch code itself.
tsearch/config.h
tsearch/dwarf_tsearch.c
tsearch/dwarf_tsearch.h
2016-02-17 08:44:47 -08:00
David Anderson
d5ea5660b8 Update version strings. Add some already known
GNU extension tags to the lists.
2016-02-16 16:51:24 -08:00
Carlos Alberto Enciso
a3abd8ea86 * tag_attr_ext.list, tag_tree_ext.list: Some notes explaining
how to update the values for the limits in the tables used
    during the semantic check.

* tag_common.h: Update the semantic tables sizes; it was checking
    a lot of empty entries.

* tag_tree_ext.list: Added valid TAGs for the GNU extensions:
    DW_TAG_GNU_template_parameter_pack,
    DW_TAG_GNU_formal_parameter_pack
2016-02-16 12:38:00 +00:00
Carlos Alberto Enciso
40064bc7b7 * common.c: SN version uses an extra ID version
* tag_tree_ext.list, tag_attr_ext.list: Include support for variadic
    templates (GCC extension) DW_TAG_GNU_template_parameter_pack,
    DW_TAG_GNU_formal_parameter_pack. These extensions are
    generated by LLVM

* tag_tree.c: Incorrect generated comment

* tag_common.h: Update table size for new added tag/attr checks
2016-02-15 15:11:15 +00:00
Carlos Alberto Enciso
2cfe436212 Merge branch 'master' into carlos_enciso
# By David Anderson
# Via David Anderson
* master:
  Changed a couple [] to [ ] as apparently cross-compiling fails with []
  Fixed typo in libdwarf2.1.mm. Regenerated pdf, now is version 2.42.
  dwarfdump.c,globals.h,print_aranges.c,print_die.c,       print_frames.c,print_lines.c,print_locs.c,print_macro.c,       print_pubnames.c,print_reloc.ckprint_static_funcs.c,       print_static_vars.c,print_strings.c,print_types.c,       print_weaknames.c: Removed global Dwarf_Error err       and provided local Dwarf_Error as needed.
  Add local Dwarf_Error and rename variables to avoid shadowing confusion.
2016-02-15 07:31:04 +00:00
David Anderson
5654c549d1 Changed a couple [] to [ ]
as apparently cross-compiling fails with []

dwarfdump/configure.in
dwarfdump/configure Regenerated
libdwarf/configure.in
libdwarf/configure Regenerated
2016-02-14 08:28:44 -08:00
David Anderson
3c19fc1b05 Fixed typo in libdwarf2.1.mm.
Regenerated pdf, now is version 2.42.
2016-02-14 07:48:49 -08:00
David Anderson
3f7aba30b8 dwarfdump.c,globals.h,print_aranges.c,print_die.c,
print_frames.c,print_lines.c,print_locs.c,print_macro.c,
      print_pubnames.c,print_reloc.ckprint_static_funcs.c,
      print_static_vars.c,print_strings.c,print_types.c,
      print_weaknames.c: Removed global Dwarf_Error err
      and provided local Dwarf_Error as needed.

libdwarf2.1.mm: Added dwarf_lineoff_b() documentation.
Fixed a typo in dwarf_formexprloc() documentation.
libdwarf2.1.pdf: Regenerated. Version 2.41
2016-02-13 12:53:11 -08:00
David Anderson
4e8d8c0f10 Add local Dwarf_Error and
rename variables to avoid shadowing confusion.

dwarfdump/configure
dwarfdump/configure.in
dwarfdump/dwarf_tsearchbal.c
dwarfdump/dwarfdump.c
dwarfdump/globals.h
dwarfdump/print_abbrevs.c
dwarfdump/print_aranges.c
dwarfdump/print_debugfission.c
dwarfdump/print_die.c
dwarfdump/print_frames.c
dwarfdump/print_gdbindex.c
dwarfdump/print_lines.c
dwarfdump/print_pubnames.c
dwarfdump/print_ranges.c
dwarfdump/print_sections.c
dwarfdump/tag_attr.c
dwarfdump/tag_tree.c

Add local Dwarf_Error and
rename variables to avoid shadowing confusion.
Make cross-build a littl easier.

libdwarf/Makefile.in
libdwarf/README
libdwarf/common.c
libdwarf/common.h
libdwarf/configure
libdwarf/configure.in
libdwarf/dwarf_die_deliv.c
libdwarf/dwarf_frame2.c
libdwarf/dwarf_line.c
libdwarf/dwarf_line_table_reader_common.c
libdwarf/dwarf_macro5.c
libdwarf/dwarf_print_lines.c
libdwarf/dwarf_ranges.c
libdwarf/gennames.c
2016-02-13 08:37:24 -08:00
Carlos Alberto Enciso
d1fd81bc7b Merge branch 'master' into carlos_enciso
# By David Anderson
# Via David Anderson
* master:
  Renamed an enum value from 'std' to singledw5 to better reflect the meaning and avoid 'std' as 'std' seems to be a keyword in at least one environment. dwarfdump/dwarfdump.c dwarfdump/globals.h dwarfdump/print_lines.c
  Add support for SHF_COMPRESSED libdwarf/README libdwarf/dwarf_elf_access.c libdwarf/dwarf_error.c libdwarf/dwarf_init_finish.c libdwarf/dwarf_opaque.h libdwarf/libdwarf.h.in libdwarf/libdwarfdefs.h
2016-02-11 08:05:43 +00:00
David Anderson
3eb0df65d8 Renamed an enum value from 'std' to singledw5 to
better reflect the meaning and avoid 'std'
as 'std' seems to be a keyword
in at least one environment.
dwarfdump/dwarfdump.c
dwarfdump/globals.h
dwarfdump/print_lines.c
2016-02-10 15:15:09 -08:00
David Anderson
c446254e5e Add support for SHF_COMPRESSED
libdwarf/README
libdwarf/dwarf_elf_access.c
libdwarf/dwarf_error.c
libdwarf/dwarf_init_finish.c
libdwarf/dwarf_opaque.h
libdwarf/libdwarf.h.in
libdwarf/libdwarfdefs.h
2016-02-10 09:05:27 -08:00
Carlos Alberto Enciso
795a99d981 Merge branch 'master' into carlos_enciso
* master:
  Some places in the hash functions were not using DW_TSHASHTYPE. Now they are. libdwarf/dwarf_alloc.c libdwarf/dwarf_tied.c libdwarf/dwarf_tsearchhash.c
  A single argument was missing its UNUSEDARG. dwarfdump/dwarf_tsearchbal.c tsearch/dwarf_tsearchbal.c
  libdwarf:  * dwarf_init_finish.c: Fix indents. remove a trailing space.     * dwarf_tsearch.h,dwarf_tsearchhash.c: Now DW_TSHASHTYPE (if not defined       otherwise) defines the type returned by the hash function       used in tsearchhash.     * pro_alloc.c: Removed trailing whitespace.
  Fix typo libdwarf/ChangeLog
  update version string dwarfdump/common.c dwarfdump/dwarfdump.c
  Update version strings. dwarfdump/common.c dwarfdump/dwarfdump.c
  Removed trailing whitespace.
  Now the base hash table size is closer to 100 by default. The tiny values were only intended to test the table-expansion logic. libdwarf/dwarf_tsearchhash.c
  * configure.in: defines HAVE_UNUSED_ATTRIBUTE       if the gcc '__attribute__ ((name))' compiles ok.     * config.h.in, configure: Regenerated.     * libdwarfdefs.h: Test HAVE_UNUSED_ATTRIBUTE and define       UNUSEDARG appropriately.     * dwarf_alloc.c,dwarf_elf_access.c,dwarf_form.c,dwarf_frame2.c,       dwarf_gdbindex.c,dwarf_global.c,dwarf_init_finish.c,dwarf_line.c,       dwarf_line_table_reader_common.c,dwarf_macro5.c,       dwarf_original_elf_init.c,dwarf_print_lines.c,dwarf_ranges.c,       dwarf_tsearchhash.c,dwarf_util.c,dwarf_xu_index.c,       pro_alloc.c,pro_frame.c,pro_init.c,pro_reloc.c,       pro_reloc_stream.c,pro_section.c: Use UNUSEDARG to suppress       meaningless unused-parameter warnings from gcc.
  Fixing the formatting of fde/cie. fdes were not printing properly. We were testing the wrong thing to determine if we should print. dwarfdump/print_frames.c
  Cleaning up comments about .eh_frame and removing un-needed  casts. Fixing commentary about CIE_id libdwarf/dwarf_frame2.c
  Now DWARF2,3,4 macro style printed per-CU And new checks for wasted space made. dwarfdump/dwarfdump.c dwarfdump/globals.h dwarfdump/macrocheck.c dwarfdump/macrocheck.h dwarfdump/print_die.c dwarfdump/print_macros.c

Conflicts:
	tsearch/dwarf_tsearch.h
2016-02-10 09:16:12 +00:00
David Anderson
d02c7b92b5 Some places in the hash functions were not
using DW_TSHASHTYPE. Now they are.
libdwarf/dwarf_alloc.c
libdwarf/dwarf_tied.c
libdwarf/dwarf_tsearchhash.c
2016-02-08 09:11:40 -08:00
David Anderson
20f65ca324 A single argument was missing its UNUSEDARG.
dwarfdump/dwarf_tsearchbal.c
tsearch/dwarf_tsearchbal.c
2016-02-07 13:42:44 -08:00
David Anderson
cd130546c1 libdwarf:
* dwarf_init_finish.c: Fix indents. remove a trailing space.
    * dwarf_tsearch.h,dwarf_tsearchhash.c: Now DW_TSHASHTYPE (if not defined
      otherwise) defines the type returned by the hash function
      used in tsearchhash.
    * pro_alloc.c: Removed trailing whitespace.

tsearch:
* RUNTEST: the script had a couple of problems (typos). Fixed.
       Added comments about running the tests.
     * dwarf_tsearch.h: Provide a default DW_TSHASHTYPE
       for tsearchhash and use DW_TSHASHTYPE.
     * dwarf_tsearchbal.c,dwarf_tsearchbin.c,dwarf_tsearchepp.c,
       dwarf_tsearchred.c: Use DW_TSHASHTYPE.
     * dwarf_tsearchhash.c: use DW_TSHASHTYPE, add UNUSEDARG use.
       Now the primes list starts at 79, not 5 (the low numbers
       were really only for basic testing). Add UNUSEDARG
       though it is defined as empty here (it is for gcc
       to suppress some warnings).
     * tsearch_tester.c: Use DW_TSHASHTYPE.  Changed one
       error message to help match with input test files.
2016-02-07 13:35:42 -08:00
David Anderson
9ced54f5ad Fix typo
libdwarf/ChangeLog
2016-02-07 06:38:39 -08:00
David Anderson
33dd0d8f3c update version string
dwarfdump/common.c
dwarfdump/dwarfdump.c

Document https://github.com/jrfonseca/drmingw/tree/master/src/mgwhelp
and include a little help for mingw users.
libdwarf/README
libdwarf/dwarf_init_finish.c
2016-02-07 06:36:42 -08:00
David Anderson
e0bf1f30f7 Update version strings.
dwarfdump/common.c
dwarfdump/dwarfdump.c
2016-02-06 14:42:44 -08:00
David Anderson
4945a195c3 Removed trailing whitespace.
dwarfdump/print_die.c
dwarfdump/tag_attr.c
dwarfdump/tag_tree.c

libdwarf/dwarf_elf_access.c
libdwarf/dwarf_original_elf_init.c
libdwarf/dwarf_tsearchhash.c
libdwarf/libdwarfdefs.h
2016-02-06 14:38:13 -08:00
David Anderson
d76395da7d Merge branch 'unattr'
Conflicts:
	libdwarf/ChangeLog
2016-02-06 14:28:35 -08:00