Blame-MD-Verifier¶
The Blame-Verifier is designed to analyse repositories in order to find inconsistencies between VaRA-commit-hashes and debug-commit-hashes. It accesses the IRegion of an instruction in a module to gain the VaRA-hash and compares it with the Debug-hash, which is gained through accessing the debug information in an instruction. The Blame-Verifier comes with a set of verifier-options, which can be used to filter the printed results of the analysis.
Run Blame-MD-Verifier¶
Before using the verifier, please ensure that you build your LLVM-IR file with llvm-debug-information to assure a correct comparison between commit hashes.
To use the Blame-Verifier, you first have to enable the Blame Detection in your opt build with -vara-BD and activate the verifier itself with -vara-verify-blameMD. To let the Blame Detection initialize the commits for repositories use -vara-init-commits in addition. Optionally you can add verifier-options, which are listed below, with -verifier-options=Your_Option to filter the results. If the verifier-options are used but none is chosen explicitly, it will default to the Status-option.
An example of how the Blame-Verifier can be used on a .ll file:
./bin/opt -vara-BD -vara-verify-blameMD -vara-init-commits -vara-verifier-options=All TestFile.ll
Verifier-options:¶
All llvm-opt vara flags start with -vara-{FLAG}:
llvm/opt Detections └── BD # Blame Detection ├── vara-init-commits # Let's the Blame Detection initialize Commit for Repos └── verify-blameMD # Activate BlameMDVerifier └── verifier-options # Choose between multiple print options ├── Status # Print if the module as a whole passed or failed ├── All # Print all ├── Fails # Print all fails ├── Passes # Print all passes └── Stop # Print till fail