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

Error with using customRegSelector #112

Closed saber1994 closed 6 years ago

saber1994 commented 6 years ago

I want to use a customRegSelector and I faced a error when running command "instrument": My input.yaml is below:

compileOption:
   instSelMethod:
     - customInstselector:
          include:
            - onlymain         
  regSelMethod: customregselector
  customRegSelector: onlyconstint

  includeInjectionTrace: 
    - forward
    - backward

  tracingPropagation: True # trace dynamic instruction values.

  tracingPropagationOption:
    maxTrace: 250 # max number of instructions to trace during fault injection run
    debugTrace: True/False
    generateCDFG: True

 runOption:
    - run:
       numOfRuns: 3
       fi_type: bitflip

The error message is below:

Invalid indices for GEP pointer type! %74 = getelementptr %struct.OptionData_ %73, i32 %fi28, i32 %fi29, !llfiindex !100 Invalid indices for GEP pointer type! %79 = getelementptr %struct.OptionData %78, i32 %fi30, i32 %fi31, !llfiindex !105 Invalid indices for GEP pointer type! %84 = getelementptr %struct.OptionData %83, i32 %fi32, i32 %fi33, !llfiindex !110 Invalid indices for GEP pointer type! %89 = getelementptr %struct.OptionData %88, i32 %fi34, i32 %fi35, !llfiindex !115 Invalid indices for GEP pointer type! %94 = getelementptr %struct.OptionData %93, i32 %fi36, i32 %fi37, !llfiindex !120 Invalid indices for GEP pointer type! %99 = getelementptr %struct.OptionData %98, i32 %fi38, i32 %fi39, !llfiindex !125 Invalid indices for GEP pointer type! %104 = getelementptr %struct.OptionData %103, i32 %fi40, i32 %fi41, !llfiindex !130 Invalid indices for GEP pointer type! %109 = getelementptr %struct.OptionData %108, i32 %fi42, i32 %fi43, !llfiindex !135 Invalid indices for GEP pointer type! %114 = getelementptr %struct.OptionData %113, i32 %fi44, i32 %fi45, !llfiindex !140 Invalid indices for GEP pointer type! %187 = getelementptr %struct.OptionData %186, i32 %fi61, i32 %fi62, !llfiindex !227 Invalid indices for GEP pointer type! %200 = getelementptr %struct.OptionData %199, i32 %fi66, i32 %fi67, !llfiindex !241 Invalid indices for GEP pointer type! %210 = getelementptr %struct.OptionData %209, i32 %fi68, i32 %fi69, !llfiindex !252 Invalid indices for GEP pointer type! %220 = getelementptr %struct.OptionData %219, i32 %fi70, i32 %fi71, !llfiindex !263 Invalid indices for GEP pointer type! %230 = getelementptr %struct.OptionData %229, i32 %fi72, i32 %fi73, !llfiindex !274 Invalid indices for GEP pointer type! %240 = getelementptr %struct.OptionData %239, i32 %fi74, i32 %fi75, !llfi_index !285 Broken module found, compilation aborted! 0 opt 0x0000000001203ba2 llvm::sys::PrintStackTrace(_IO_FILE) + 34 1 opt 0x000000000120343c 2 libpthread.so.0 0x00007f423cf52890 3 libc.so.6 0x00007f423c190067 gsignal + 55 4 libc.so.6 0x00007f423c191448 abort + 328 5 opt 0x000000000112297c 6 opt 0x000000000112bbe7 7 opt 0x000000000110512f llvm::FPPassManager::runOnFunction(llvm::Function&) + 623 8 opt 0x0000000001107433 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 611 9 opt 0x0000000000571f18 main + 2680 10 libc.so.6 0x00007f423c17cb45 __libc_start_main + 245 11 opt 0x000000000058cf15 Stack dump:

karthikp-ubc commented 6 years ago

It's difficult for us to reproduce this error without further details of your setup and benchmark. Did your installation of LLFI pass the regression tests ? if not, I suggest checking that first.