- search for libdwarf.h in new locations (e.g., /usr/include/libdwarf/)
- build Bochs with -std=gnu++98 (gnu++14 is default since GCC 6.1)
- specify "proto2" syntax for protobuf messages
- minor build-system and C++ namespace fixes
Change-Id: I16dbc622c797ef8e936fe3c0fb9b03029d27529d
The initialization value for ymin, which tracks the lower bound of
plotted rectangles (and is finally used for the preselected zoom
area), was chosen too small for Linux-kernel data structure addresses.
Change-Id: I7cd8dc690843394107e8aae7fffa90f27ca18153
Before this change, ymin was rounded down to the nearest Y value
divisible by 1000, showing an empty, white area in the lower part of
the plot. With this change, the initial Y-axis zoom level is
maximized to exactly show all non-white areas.
Change-Id: I1aea52a3afc331e7f11fe76ff2c5de3c71c61c71
In the current configuration, OK_MARKER would be plotted in white
color and be indistinguishable from the background. Not plotting
these areas at all reduces output-file size. As a side effect, the
initial Y-axis zoom level (ymin, ymax) can change.
Change-Id: Ic7b1a22a5a6f58e4df0849bca5262c646051ae2c
By default, the data-aggregator scripts create machine-readable,
tab-separated output. The optional "-t" switch (passed to the
internally used `mysql' command-line client) creates human-readable
table output instead.
Change-Id: Ie448c21a4e82dea83f3e43e6642e67eb85f8b8e9
This change additionally allows to create a resulttype/occurrences summary
over all benchmarks in the database, instead of specifying a single one.
Change-Id: I4fc7fd735300168f1e4f9e24a51aba469a7269a8
Instead of using the address difference between two neighboring symbols as
an indication for the symbol's size, import the size as reported by
`nm -S'.
Additionally, this change fixes an off-by-one, which had the effect that
the last symbol in the list was not imported at all.
Change-Id: I3c8e139b788018702526bb968e36d248dc3fe8fc
This change introduces a loose collection of scripts for
analysis/aggregation of FAIL*'s collected data.
It's going to be developed into a proper tool in the future.
Change-Id: I63f14d87dd86b62817ec3d8089079d70f58c89c9
This change adds the capability to import an ELF's symbols
into the database. The functionality is implemented via a
shell script and will be merged into "import-trace", when
it's being cleaned up sometime in the near future, but for
now this suffices.
Change-Id: I933783659674fcf31f5181fc13661fe10f5b9fe8
This change adds the faultspace-plotting scripts into FAIL*'s
tools/analysis/ folder and makes it CMake-configurable.
Change-Id: I9364a448a33853520629291721a6ed6d4e82eb32
The instructions per second config option influences the point in time
of IRQ events and the simulator time values.
Change-Id: Ied08ea577408d21839d100734f3cce552ee547f2
Sometimes the lines in an objdump can get very long. Therefore, we limit
the size of the field, which is put into the database, to the maximal
size of the opcode, instruction, and comment column.
Change-Id: I8d7db33e8319f71e9dae14f683bba0ce1654b1f8
As the first cmd.parse() call was already checked before, parsing a
second time should never fail. Nevertheless, we can look at the
return value without much effort. Found by Coverity Scan, CID 25494.
Change-Id: Id012cf7183fe7b2022d33e6cbcb19ba49b544c99
This was never a real problem, but keeps us on the safe side. Found
by Coverity Scan, CID 25731/25808/25817.
Change-Id: Ie4bd9fb52ff6140ce7ae024738b43c82f6f5045c
This fixes the (never intendedly occurring) case that no comma is
found in the SQL value list, and aligns the termination code with the
comment next to it. Found by Coverity Scan, CID 25653.
Change-Id: I98062748458a50603cd63a9017acd94eef0753f9
As the first cmd.parse() call was already checked before, parsing a
second time should never fail. Nevertheless, we can look at the
return value without much effort. Found by Coverity Scan, CID 25509.
Change-Id: I58466f5d123da2b541a6a88b72bafa1f754a581e
Analogous to the FESamplingPruner, the --no-weighting switch disables the
equivalence-class weighting by using a weight of one instead of the
equivalence-class size. This is usually not a good idea, and should only
be used for demonstration purposes, or if the fault model requires
weight-less sampling.
The --no-weighting switch was introduced with an earlier commit, but
did not have an effect until now.
Change-Id: If2ebf775bea7f2e3f8c293abbae08f1eb00cacf1
The --incremental switch allows to add more samples if the resulting
confidence intervals are not satisfactory yet.
Change-Id: I65dc99522f45f8a4eaf4ce68e832f7636585381d
The SamplingPruner implements "normal" sampling with equivalence-class
reuse. Unlike the FESamplingPruner, the SamplingPruner implements
uniform fault-space sampling that counts multiple hits of an
equivalence class.
This change modifies the database schema, more specifically it adds
the "weight" column to the fspgroup table. Update existing databases
with this query:
ALTER TABLE fspgroup ADD COLUMN weight INT UNSIGNED;
Change-Id: I668fc9b25fc4d79a60aa1ef8d69cdf5fa076cc6d
SumTree::get now non-intrusively picks an element and returns a
reference to it, SumTree::remove removes and returns a copy. The
former is needed for sampling with replacement.
Change-Id: Iefef2fdf0b7df6ea7a9949f2588528ec9e86bb7a
In the sampling step, the --no-weighting switch disables the
equivalence-class weighting by using a weight of one instead of the
equivalence-class size. This is usually not a good idea, and should
only be used for demonstration purposes, or if the fault model
requires weight-less sampling.
Change-Id: Id903d1924c6ecbcd217815aa5ce9271560130071
The --use-known-results switch simulates sampling (with fault
expansion, FESamplingPruner) by reusing results from a previous
campaign covering the full fault space (that used the "basic" pruner).
The pruner only creates entries in the "fspgroup" table that refer to
already existing pilots and corresponding results.
This switch is not for normal Fail* use, but only for experimenting
with the FESamplingPruner.
Change-Id: I1bf561d93f55918d243c5306551a1c6b48027198