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
66 stars 36 forks source link

when we do batch profiling to the example factorial #97

Closed lidanfeng closed 8 years ago

lidanfeng commented 8 years ago

root@SZX1000078840:/lidanfeng/llfi/bin# ./batchProfile /lidanfeng/llfi/bin/factorial/factorial.ll factorial.ll

Run profiling command: /lidanfeng/llfi/bin/profile ./llfi/factorial-profiling.exe profiling: CPUHog(Res) failed! factorial.ll

Run profiling command: /lidanfeng/llfi/bin/profile ./llfi/factorial-profiling.exe profiling: DataCorruption(Data) failed! factorial.ll

Run profiling command: /lidanfeng/llfi/bin/profile ./llfi/factorial-profiling.exe profiling: HighFrequentEvent(Timing) failed! factorial.ll

Run profiling command: /lidanfeng/llfi/bin/profile ./llfi/factorial-profiling.exe profiling: IncorrectOutput(API) failed! factorial.ll

Run profiling command: /lidanfeng/llfi/bin/profile ./llfi/factorial-profiling.exe profiling: NoOutput(API) failed! root@SZX1000078840:/lidanfeng/llfi/bin#

MaryamRA commented 8 years ago

Software fault models need to be injected in applicable test programs. factorial.ll is a small program that is tested by hardware fault models. It does not include any method calls that are required for the above mentioned fault models such as CPUHog(Res), HighFrequentEvent(Timing), IncorrectOutput(API), NoOutput(API),... In addition DataCorruption(Data) and many other software fault models are injected into called instructions of LLVM like open, read, memcpy, malloc,...and this kind of instructions do not exist in the factorial program.