DependableSystemsLab / LLFI

LLFI is an LLVM based fault injection tool, that injects faults into the LLVM IR of the application source code. The faults can be injected into specific program points, and the effect can be easily tracked back to the source code. Please refer to the paper below. NOTE: If you publish a paper using LLFI, please add it to PaperLLFI.bib
http://blogs.ubc.ca/karthik/2014/02/23/quantifying-the-accuracy-of-high-level-fault-injection-techniques/
Other
68 stars 35 forks source link

Trace files not always generated #45

Open syltaxue opened 10 years ago

syltaxue commented 10 years ago

After fault injection, there are some cases where not all the runs have trace files generated.

For some of the runs, the program may crash before outputting trace files. And whether the trace files is generated or not is random. We may not be able to reproduce the same result every time we run fault injection.

karthikp-ubc commented 10 years ago

Can you please provide an example program where this happens along with the input yaml files ? I'm not able to reproduce this issue on my Mac system. Thanks,

syltaxue commented 10 years ago

I replicated the bug with the test program factorial.c.

The steps below is how I reproduced the issue:

In instrument, I selected ret-(ReturnInst) and full trace with backward checked only. Note, if you select both backward and forward, it is very unlikely to reproduce the bug.

In profiling, I gave 10 as input. Then, in Runtimeoptions, I chose bitflip as the fault type.

After fault injection, the trace files are missing.

The contents below is the input.yaml file generated through the instrument step above: kernelOption:

compileOption: instSelMethod:

regSelMethod: regloc
regloc: allsrcreg

includeInjectionTrace:
    - backward

tracingPropagation: True

tracingPropagationOption:
    debugTrace: True/False
    generateCDFG: True

runOption: