-
Notifications
You must be signed in to change notification settings - Fork 14
Using error injection
Here's a very manual way of running the error injection in ACCEPT applications.
-
You will need to switch to the
errorinjection
branch on both theaccept
andaccept-apps
repositories. Build ACCEPT as normal. Useactivate.sh
or otherwise ensure that you have ACCEPT'sbin
directory on your$PATH
. -
Error injection requires a
liberror.cpp
to define the error model. We'll use theaccept-apps/perfect/sar/kernels/bp
application as an example, since it has one checked into the repo already. -
Go to the application directory and type
make build_orig
. This will produce anaccept_config.txt
(but you don't need to meddle with that). -
(You can optionally write
make run_orig
to see the output without error injection.) -
Write an
inject_config.txt
file to set up the parameters. For example:$ cat inject_config.txt default 1 cmult 2
List the function name (mangled, if it's C++) and the parameter. You can also choose a default for other instructions.
-
Run
inject_config.py
. This will transfer your parameters frominject_config.txt
to ACCEPT'saccept_config.txt
. -
Type
make run_opt
. This will compile, instrument, and execute the error-injected version of the application.