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: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 [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 [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 [Fri, 17 Sep 2010 15:31:54 +0000 (17:31 +0200)]
dwarflint: Add more options for ignoring and dumping dies to locstat
- these are probably mostly useful for myself as I'm trying to find out
what's really missing the info and what doesn't need one it the first
place, but why not allow others to do the tinkering too...
Petr Machata [Wed, 15 Sep 2010 13:55:10 +0000 (15:55 +0200)]
Only run low-level checks in dwarflint self-check
The reason being that high-level checks do and always have emitted a lot
of output, mainly for big c++ binaries. The low-level checks should
generally pass, and even if there are nits here and there, they should be
minor and shouldn't flood the terminal.
Petr Machata [Tue, 14 Sep 2010 12:35:25 +0000 (14:35 +0200)]
dwarflint: Fix test case
- now that we run the low-level checks as prerequisite of high-level ones,
we also get low-level errors in testsuite passes. One more reason to
implement some sensible message filtering command line options.
Petr Machata [Tue, 14 Sep 2010 12:34:11 +0000 (14:34 +0200)]
dwarflint: Move secinfo_map initiazitaion into ctor, avoid macros
- and reindent two statements below where it's instantiated
- and add a documentation to the section_name array
Petr Machata [Tue, 7 Sep 2010 21:08:05 +0000 (23:08 +0200)]
dwarflint: Add a lowlevel_checks pass
- which is where low-level checks are explicitly requested
- and what highlevel checks, also explicitly, depend on
Petr Machata [Tue, 7 Sep 2010 12:28:24 +0000 (14:28 +0200)]
dwarflint: Check for unresolved references from .debug_info to .debug_line
- while this check has already been there, it was part of .debug_line. If
.debug_line was entirely missing or broken, the check would never be run.
Now the check is in a separate pass.
Petr Machata [Fri, 27 Aug 2010 15:41:53 +0000 (17:41 +0200)]
dwarflint: Add an ability to list registered checks
- because the check descriptor is quite simple as of now, the usefulness
of this is rather limited
- plus unregistered checks are not listed, which means that the user will
never know about prereqs like .debug_info. Hard to say whether this is
a problem or not
Petr Machata [Wed, 25 Aug 2010 17:16:25 +0000 (19:16 +0200)]
Each check now has a name and group membership
- whether a check is performed can now be configured via a command line
argument --check
- there's no explicit dependency resolution. While checks are really
organized in a dependency graph, only the path from the check under
investigation to its dependant is known at any given time. So with
command line like --check=-X,+Y where Y depends on X, the scheduler
may first reject X several times, just to perform it anyway when it
later turns out that requested test Y depends on it.