Skip to content
Snippets Groups Projects
Commit 62c3cc7f authored by Horst Schirmeier's avatar Horst Schirmeier
Browse files

visualfail: README, pristine configuration

Change-Id: Ic7e3ec0e28fdd368b9207c7a843a3f397e5e3c09
parent f0a4dacd
No related branches found
No related tags found
No related merge requests found
<?php <?php
//Datenbank // database credentials
$host = "localhost"; $host = "localhost";
$username = ""; $username = "";
$password = ""; $password = "";
$database = ""; $database = "";
// Name der result-Tabelle // result-table name
$result_table = "result"; $result_table = "result";
?> ?>
VisualFail*
===========
Guest-system setup
------------------
For analysis with VisualFail*, the guest-system ELF binary must be compiled with
debugging information (gcc/g++/clang/clang++ compiler flag "-g"). Note that
debugging information quality/accuracy usually decreases with higher
optimization levels.
Database preparation
--------------------
1. import-trace -t yourtrace.tc -i MemoryImporter
2. import-trace -t yourtrace.tc -i FullTraceImporter
3. import-trace -t yourtrace.tc -i ElfImporter -e yourbinary.elf --objdump $(which objdump) --sources
Step 1 is the prerequisite to run the fault-injection campaign (you may use
other importers as well, e.g., the RegisterImporter). Steps 2 and 3 are
required for VisualFail* to work.
Setup
-----
Copy CONFIGURATION.php.dist to CONFIGURATION.php, edit it, and add your MySQL
database credentials and the result-table name (usually starting with
"result...", "echo SHOW TABLES | mysql yourdatabase" on the command line should
give you the correct table name).
(In a later version of VisualFail*, we will probably add automatic loading of
~/.my.cnf if available.)
Running and using VisualFail*
-----------------------------
./StartVF.sh requires PHP 5.4.0 or newer and uses its simple built-in web
server. You can connect to it by using http://localhost:1234 in a web browser
on the same machine. (If you need to connect from another machine, manually run
"php -S 0.0.0.0:1234 -t .")
Alternatively, VisualFail* can be set up using a "real" web server with a recent
PHP version (5.x should suffice).
Once the web server runs, you can use VisualFail*:
- Pick a coloring (currently, only "Right margin" really makes sense), a
benchmark and a variant from the drop-down menus. Click "Analyze". Wait.
- Enable the experiment result types you want to highlight by clicking them in
the top row.
- Scroll down the left column with the disassembled machine code. Instructions
that activated faults in the FI experiments, and led to one of the enabled
result types, are highlighted with red color. The stronger the coloring, the
more experiments led to one of these failure modes. (Actually, not the raw
number of actual experiments is used, but is weighted with the size of the
corresponding def/use equivalence class.)
- Click one of the highlighted instructions to display a popup with the actual
result numbers, and the distribution among the different failure modes.
- Pick a source-code file from the right-hand side pulldown to look into the
instructions generated from that file. The right column now contains the
source code from that file, interspersed with the disassembled machine code
generated from it. These disassembled machine-code lines are, just like in
the disassembly column, clickable to display details. (The source-code lines
are currently not clickable, although the mouse cursor indicates otherwise.)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment