Execute ScEpTIC Analysis ======================== .. |techrep| raw:: html technical report For each program you need to analyze with ScEpTIC, you need to: 1. Generate the LLVM IR of your program, as we describe in :ref:`compilation-label` 2. Configure ScEpTIC and your target architecture, as we describe in :ref:`configuration-label` To run our analysis, we first need to import the ScEpTIC module and our configuration file. Then, we initialize ScEpTIC using its ``init()`` method, and then we need to call the ``run_tests()`` module. For example, if our configuration is saved inside ``config.py``:: import ScEpTIC import config sc = ScEpTIC.init(config) sc.run_tests() This runs all the analysis that we enabled in the configuration file. ScEpTIC exposes also a ``run_test()`` method, which takes as parameters the name of the file containing the analysis implementation and the name of its class. For example, if we want to execute the analysis for locating memory-based intermittence anomalies, we can run:: import ScEpTIC import config sc = ScEpTIC.init(config) sc.run_test('memory_locate', 'LocateMemoryAnomaliesInterruptionManager') Note that, as we describe in our |techrep|, we can extend ScEpTIC analysis by extending the ``InterruptionManager`` base class, and then saving the new analysis inside ``ScEpTIC/emulator/intermittent_executor/interruption_managers/``. When ScEpTIC terminates the analysis execution, it saves the analysis results inside a sub-directory that is inside the ``save_dir`` directory that we specified in the configuration file. Each result directory contains two sub-folders: - ``code``: contains a txt file for each function. Each file contains the modified LLVM IR of a function of the program, which ScEpTIC uses for emulating the program execution - ``states``: contains a txt file that contains a textual representation of the states of register file, memory, input, and outputs at the end of the simulation execution Then, we have a ``.txt`` file for each different analysis that we choose to run, which contains the analysis results.