]>
git.ipfire.org Git - thirdparty/elfutils.git/log
Mark Wielaard [Thu, 21 Oct 2010 21:25:11 +0000 (23:25 +0200)]
Add dwarf_output die offset checking to detect sharing in dwarf_edit_output.
Mark Wielaard [Wed, 20 Oct 2010 22:36:27 +0000 (00:36 +0200)]
Add dwarf_comparator checks for DIEs to dwarf_edit_output.cc test.
Mark Wielaard [Tue, 19 Oct 2010 13:52:01 +0000 (15:52 +0200)]
Allow passing through options to dwarf_edit_output test like --offsets.
Mark Wielaard [Mon, 18 Oct 2010 21:35:04 +0000 (23:35 +0200)]
Expand dwarf_edit_output.cc testcases.
Petr Machata [Mon, 18 Oct 2010 21:10:51 +0000 (23:10 +0200)]
dwarflint: Tolerate unknown attribute names
Petr Machata [Mon, 18 Oct 2010 17:59:36 +0000 (19:59 +0200)]
dwarflint: Update TODO
Petr Machata [Mon, 18 Oct 2010 17:57:11 +0000 (19:57 +0200)]
dwarflint: A test case for the early bailout and the GNU extension
Petr Machata [Mon, 18 Oct 2010 17:56:42 +0000 (19:56 +0200)]
dwarflint: Add --nognu option for not using the GNU extension to DWARF
Petr Machata [Mon, 18 Oct 2010 17:56:06 +0000 (19:56 +0200)]
dwarflint: Finish checking .debug_abbrev before bailing out
Petr Machata [Mon, 18 Oct 2010 16:29:05 +0000 (18:29 +0200)]
dwarflint: Add a GNU extension
Petr Machata [Mon, 18 Oct 2010 12:32:53 +0000 (14:32 +0200)]
dwarflint: Pacify -D_GLIBCXX_DEBUG
Petr Machata [Mon, 18 Oct 2010 10:26:39 +0000 (12:26 +0200)]
Merge remote branch 'origin/dwarf' into dwarf
Mark Wielaard [Fri, 15 Oct 2010 15:20:26 +0000 (17:20 +0200)]
Add more circular variants to tests/dwarf_edit_output.cc.
Mark Wielaard [Fri, 15 Oct 2010 11:27:01 +0000 (13:27 +0200)]
Allow turning on/off dwarf_output debug spew in one place.
Mark Wielaard [Thu, 14 Oct 2010 14:58:56 +0000 (16:58 +0200)]
Add new test setup for dwarf_edit, dwarf_output transforms.
Petr Machata [Wed, 13 Oct 2010 12:02:43 +0000 (14:02 +0200)]
dwarflint: More test cases
Petr Machata [Wed, 13 Oct 2010 11:35:56 +0000 (13:35 +0200)]
dwarflint: Fix is_overlap for zero-length ranges
Petr Machata [Wed, 13 Oct 2010 11:26:10 +0000 (13:26 +0200)]
dwarflint: Support zero-length ranges
Petr Machata [Tue, 12 Oct 2010 22:58:00 +0000 (00:58 +0200)]
dwarflint: C++-ify coverage
- and add a unit test for that
Petr Machata [Tue, 12 Oct 2010 11:37:53 +0000 (13:37 +0200)]
dwarflint: Add a test case for no aranges table associated with CU
- for CU that has a zero address range
Petr Machata [Tue, 12 Oct 2010 11:24:20 +0000 (13:24 +0200)]
dwarflint: Move all the low_pc/high_pc processing after the attribute loop
- no point adding the low_pc/high_pc range once more for each attribute
after the second in the DW_AT_{high,low}_pc pair
Petr Machata [Tue, 12 Oct 2010 11:22:20 +0000 (13:22 +0200)]
dwarflint: Nits
Petr Machata [Mon, 11 Oct 2010 22:34:56 +0000 (00:34 +0200)]
Merge branch 'pmachata/dwarflint-smartforms' into dwarf
Petr Machata [Mon, 11 Oct 2010 21:52:42 +0000 (23:52 +0200)]
dwarflint: Drop read_ctx_read_form in favor of read_generic_value
Petr Machata [Mon, 11 Oct 2010 21:41:06 +0000 (23:41 +0200)]
dwarflint: Fix a typo
Petr Machata [Mon, 11 Oct 2010 21:39:43 +0000 (23:39 +0200)]
dwarflint: Introduce read_generic_value into checked_read
- the hope being several reading operations can be expressed in terms of
read_generic_value
Petr Machata [Mon, 11 Oct 2010 21:33:19 +0000 (23:33 +0200)]
dwarflint: move read_sc_value to checked_read module
Petr Machata [Mon, 11 Oct 2010 21:10:13 +0000 (23:10 +0200)]
dwarflint: checked_read takes const where
Mark Wielaard [Mon, 11 Oct 2010 15:26:43 +0000 (17:26 +0200)]
Use std:tr1::hash<std::string> where possible.
* c++/subr.hh (string_hash_combine): Removed.
(hash<std::string>): Extend std::tr1::hash<std::string>.
* c++/dwarf_data (value_string): typedef std::tr1::hash<std::string>
hasher.
Petr Machata [Sat, 9 Oct 2010 19:35:02 +0000 (21:35 +0200)]
dwarflint: Update TODO
Petr Machata [Sat, 9 Oct 2010 19:34:56 +0000 (21:34 +0200)]
dwarflint: Change reloc_target signature
- leave the body as is for the time being
Petr Machata [Sat, 9 Oct 2010 18:45:04 +0000 (20:45 +0200)]
dwarflint: Streamlining code
- Extract checks common to direct and indirect forms to
check_debug_abbrev::check_form.
- Reading of indirect form is now done via a new function read_sc_value
in check_debug_info.cc. That function is also called for reading
normal values of classes sc_value and sc_block
Petr Machata [Sat, 9 Oct 2010 17:29:50 +0000 (19:29 +0200)]
dwarflint: Use a cl_indirect test instead of testing DW_FORM_indirect
Petr Machata [Sat, 9 Oct 2010 17:21:43 +0000 (19:21 +0200)]
dwarflint: Remove duplicate testing for allowed forms in check_debug_abbrev
Petr Machata [Sat, 9 Oct 2010 17:20:56 +0000 (19:20 +0200)]
dwarflint: Add DW_FORM_indirect to DWARF 2
- add cl_indirect to facilitate the indirect form. Make this the implicit
class of all attributes.
Petr Machata [Sat, 9 Oct 2010 14:37:15 +0000 (16:37 +0200)]
dwarflint: Retrofit cl_lineptr and cl_macptr to DWARF 2
- which fixes the failing test case
Petr Machata [Fri, 8 Oct 2010 23:28:52 +0000 (01:28 +0200)]
dwarflint: Retrofit proper marking of exprloc and loclistptr to earlier DWARFs
- as a consequence, is_location_attrib is gone
- in check_debug_abbrev, we now check for appropriateness all form/attribute
pairs, not just those that are location attribs
- too-wide references are now checked in one place for all reference types
- pointer checking now actually looks sane--the maze of DW_FORM_/DW_AT_
switches was replaced by a straighforward switch on ver->form_class
- this introduces a testcase failure
- and similar work needs to be done for other cl_*ref classes
Petr Machata [Fri, 8 Oct 2010 23:18:53 +0000 (01:18 +0200)]
dwarflist: Fix dwarf_version::form_class
Petr Machata [Fri, 8 Oct 2010 17:47:37 +0000 (19:47 +0200)]
dwarflint: Nits
Petr Machata [Fri, 8 Oct 2010 16:52:05 +0000 (18:52 +0200)]
dwarflint: Fix classes for DW_AT_accessibility, _abstract_origin in DWARF2
Petr Machata [Fri, 8 Oct 2010 16:43:52 +0000 (18:43 +0200)]
dwarflint: Support MIPS extensions
- and unconditionally return it in request to dwarf_version::get
Petr Machata [Thu, 7 Oct 2010 16:09:53 +0000 (18:09 +0200)]
dwarflint: Remove part of the loclist switching
- use the new articulated forms/attributes instead
- the goal is to make most of the code like this
Petr Machata [Thu, 7 Oct 2010 15:46:58 +0000 (17:46 +0200)]
dwarflint: Add dwarf_version::form_class, ~::ambiguous_class, drop form::cls
- And use that in dwarf_3 to properly support DW_AT_data_member_location
Petr Machata [Thu, 7 Oct 2010 13:16:44 +0000 (15:16 +0200)]
dwarflint: Add form::cls to get the class of form in context of given attribute
Petr Machata [Thu, 7 Oct 2010 09:52:59 +0000 (11:52 +0200)]
dwarflint: Rename variable
Petr Machata [Thu, 7 Oct 2010 02:54:37 +0000 (04:54 +0200)]
dwarfint: Nits
Petr Machata [Thu, 7 Oct 2010 02:47:59 +0000 (04:47 +0200)]
dwarflint: Devirtualize form and attribute
Petr Machata [Thu, 7 Oct 2010 02:07:55 +0000 (04:07 +0200)]
dwarflint: Drop duplicate code
Petr Machata [Thu, 7 Oct 2010 01:49:52 +0000 (03:49 +0200)]
dwarflint: Shuffle code
Petr Machata [Thu, 7 Oct 2010 01:47:18 +0000 (03:47 +0200)]
dwarflint: Move more code from dwarf_version.hh to .cc
- And drop selwidth_form, which was overly general for the two uses that we
have. Implement corresponding classes directly.
Petr Machata [Thu, 7 Oct 2010 01:31:17 +0000 (03:31 +0200)]
dwarflint: Header fixlets
Petr Machata [Thu, 7 Oct 2010 01:28:11 +0000 (03:28 +0200)]
dwarflint: Split the dwarf_version.cc into modules by DWARF version
Petr Machata [Thu, 7 Oct 2010 00:50:16 +0000 (02:50 +0200)]
dwarflint: Rename tables.* to dwarf_version.*
Petr Machata [Thu, 7 Oct 2010 00:42:38 +0000 (02:42 +0200)]
dwarflint: Introduce dwarf_version::extend
- Drop support for parental version in std_dwarf, implement the same via
the extension mechanism
- Drop the huge #if 0 that has been there for about a year or so
Petr Machata [Wed, 6 Oct 2010 19:56:27 +0000 (21:56 +0200)]
dwarflint: Make DWARF attributes objects, too
Petr Machata [Wed, 6 Oct 2010 18:37:54 +0000 (20:37 +0200)]
dwarflint: Use form::storage_class and checked_read_leb128 in check_debug_info
Petr Machata [Wed, 6 Oct 2010 18:37:23 +0000 (20:37 +0200)]
dwarflint: Add form::storage_class
Petr Machata [Wed, 6 Oct 2010 18:31:14 +0000 (20:31 +0200)]
dwarflint: Add checked_read_leb128
- this is similar to read_ctx_read_var
- also drop a bunch of C-isms
Petr Machata [Wed, 6 Oct 2010 17:47:53 +0000 (19:47 +0200)]
dwarflint: Minor adjustments in tables.cc
- After some experimenting with different ways of defining form classes,
I'm back to the original code.
Petr Machata [Wed, 6 Oct 2010 14:59:53 +0000 (16:59 +0200)]
dwarflint: Remove dwarf_version::form_width
- and a bunch of changes in dwarf_version internals
Petr Machata [Wed, 6 Oct 2010 13:52:07 +0000 (15:52 +0200)]
dwarflint: Make a bunch of internal types related to dwarf_version public
Petr Machata [Wed, 6 Oct 2010 12:49:11 +0000 (14:49 +0200)]
dwarflint: Use dwarf_version::form_width in check_debug_info
Petr Machata [Tue, 5 Oct 2010 18:33:03 +0000 (20:33 +0200)]
dwarflint: Revamping dwarf tables
- forms are now objects. The idea being they know how big they are, how
to relocate them, perhaps they might know how to extract value from
stream. The goal here is to concetrate all the form-related knowledge
to a sigle place. It now passes the suite, but is not really done yet.
Petr Machata [Tue, 5 Oct 2010 16:38:52 +0000 (18:38 +0200)]
dwarflint: Fix handling of indirect forms in check_debug_info
- and commit a couple other nits
Petr Machata [Fri, 1 Oct 2010 14:51:48 +0000 (16:51 +0200)]
dwarflint: Use wrapper to print check descriptions
- this should make it easier to write them
- also use argp to print out properly formatted help for each check. Drop
a bunch of code that was necessary to do things the old way
Petr Machata [Fri, 1 Oct 2010 14:21:07 +0000 (16:21 +0200)]
dwarflint: Avoid constructing temporary std::string in line wrapper
Petr Machata [Fri, 1 Oct 2010 14:19:00 +0000 (16:19 +0200)]
dwarflint: Fix off-by-one in spaces
Petr Machata [Fri, 1 Oct 2010 13:55:45 +0000 (15:55 +0200)]
dwarflint: Add a function to format N spaces
Petr Machata [Fri, 1 Oct 2010 11:51:08 +0000 (13:51 +0200)]
dwarflint: Fix wrapping long words on indented lines
Petr Machata [Fri, 1 Oct 2010 01:10:28 +0000 (03:10 +0200)]
dwarflint: Add line wrapper
- it's not currently used, but we will use this for formatting of check
documentation and options
Petr Machata [Thu, 30 Sep 2010 16:05:54 +0000 (18:05 +0200)]
dwarflint: Check coverage of arange vs. CUs as well as the other way around
Petr Machata [Thu, 30 Sep 2010 15:37:48 +0000 (17:37 +0200)]
dwarflint: Test case for aranges that terminate early
Petr Machata [Thu, 30 Sep 2010 15:01:50 +0000 (17:01 +0200)]
dwarflint: Promote duplicate-arange-for-CPU to error
Petr Machata [Thu, 30 Sep 2010 14:53:47 +0000 (16:53 +0200)]
dwarflint: Check for CUs that miss arange table
+testcase
Petr Machata [Thu, 30 Sep 2010 12:23:55 +0000 (14:23 +0200)]
dwarflint: check_range_out_of_scope should run even on absent .debug_loc
- the actual fix is removing the forced lint.check <check_debug_loc>.
The lowlevel_checks pass takes care of validating any present sections.
In this case .debug_loc isn't there, yet the check needs to run.
- and add a test case for this.
Petr Machata [Fri, 24 Sep 2010 16:41:40 +0000 (18:41 +0200)]
dwarflint: --list-checks now lists options associated with check passes
Petr Machata [Fri, 24 Sep 2010 16:11:26 +0000 (18:11 +0200)]
dwarflint: Rename local options to include the check pass prefix
- The original intention was that this is added automatically, but perhaps
the better way to handle it is to make it easy to pick whatever name one
wishes. Short options will share namespace anyway, so one has to be
careful with their naming anyway.
Petr Machata [Fri, 24 Sep 2010 14:00:28 +0000 (16:00 +0200)]
dwarflint: Recognize options local to check
Petr Machata [Thu, 23 Sep 2010 18:00:39 +0000 (20:00 +0200)]
dwarflint: Only toplevel option pack should have description
Petr Machata [Thu, 23 Sep 2010 17:55:57 +0000 (19:55 +0200)]
dwarflint: Better description of options in locstats
Petr Machata [Thu, 23 Sep 2010 17:55:25 +0000 (19:55 +0200)]
dwarflint: Show check-local options in --help
- They are still not properly recognized
- And name mangling isn't implemented
Petr Machata [Thu, 23 Sep 2010 16:00:36 +0000 (18:00 +0200)]
dwarflint: Don't assume all options are global
- currently this breaks dwarflint, because per-check options are not yet
processed. Options that belonged to global group before still work and
are correctly registered as globals, but e.g. -i or the suite of options
at locstats aren't recognized.
Petr Machata [Wed, 22 Sep 2010 14:48:50 +0000 (16:48 +0200)]
dwarflint: Get rid of low.h/low.c
- and rename misc.h to misc.hh
Petr Machata [Wed, 22 Sep 2010 14:23:39 +0000 (16:23 +0200)]
dwarflint: Getting rid of compat C bindings
Petr Machata [Tue, 21 Sep 2010 21:32:43 +0000 (23:32 +0200)]
dwarflint: Move much of the rest of low.h to where it belongs
Petr Machata [Tue, 21 Sep 2010 20:47:34 +0000 (22:47 +0200)]
dwarflint: Move abbrev-related data structures to check_debug_abbrev
Petr Machata [Tue, 21 Sep 2010 20:29:05 +0000 (22:29 +0200)]
dwarflint: More moving stuff around
Petr Machata [Tue, 21 Sep 2010 20:13:26 +0000 (22:13 +0200)]
dwarflint: New module checked_read
- a bunch of functions that I couldn't place just right are there
Petr Machata [Tue, 21 Sep 2010 19:53:45 +0000 (21:53 +0200)]
dwarflint: Drop unused declarations
Petr Machata [Tue, 21 Sep 2010 19:51:22 +0000 (21:51 +0200)]
dwarflint: check_range_relocations should rather be in check_debug_loc_range
Petr Machata [Tue, 21 Sep 2010 19:19:16 +0000 (21:19 +0200)]
dwarflint: Move read_rel and check_range_relocations to reloc module
Petr Machata [Tue, 21 Sep 2010 19:02:16 +0000 (21:02 +0200)]
dwarflint: Move check_aranges_structural to check_debug_aranges
Petr Machata [Tue, 21 Sep 2010 18:30:40 +0000 (20:30 +0200)]
dwarflint: Move check_zero_padding to read_ctx module
- and promote the reporting part back to callers
Petr Machata [Tue, 21 Sep 2010 16:41:13 +0000 (18:41 +0200)]
dwarflint: Move read_address_size to read_ctx module
- and shuffle arguments around so it makes sense
Petr Machata [Tue, 21 Sep 2010 16:09:54 +0000 (18:09 +0200)]
dwarflint: Move read_size_extra to readctx module
Petr Machata [Mon, 20 Sep 2010 22:28:20 +0000 (00:28 +0200)]
dwarflint: Add DIE classification categories "mutable" and "immutable"
- however I guess the better thing to do would be to dump how big part
of a scope is mutable vs. immutable, or something like that
Petr Machata [Mon, 20 Sep 2010 22:26:17 +0000 (00:26 +0200)]
dwarflint: Fix classification of no_coverage DIEs
Petr Machata [Mon, 20 Sep 2010 19:41:44 +0000 (21:41 +0200)]
dwarflint: Implement reading DW_FORM_ref_addr forms
- Patch by Jakub Jelinek
Petr Machata [Mon, 20 Sep 2010 19:40:06 +0000 (21:40 +0200)]
In dwarf-opcodes.h, add DW_OP_GNU_implicit_pointer and fix DW_OP_call_ref
- patch by Jakub Jelinek
Petr Machata [Mon, 20 Sep 2010 19:35:44 +0000 (21:35 +0200)]
dwarflint: Add a possibility to distinguish sharp 0 coverage to locstats pass