docs
Change-Id: Ic46dfc6c59c7bee796c2e3e8e97376859391b342
This commit is contained in:
@ -447,6 +447,22 @@ void L4SysExperiment::readGoldenRun(std::string& target)
|
|||||||
|
|
||||||
void L4SysExperiment::setupFilteredBreakpoint(fail::BPSingleListener* bp, int instOffset)
|
void L4SysExperiment::setupFilteredBreakpoint(fail::BPSingleListener* bp, int instOffset)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* The L4Sys experiment uses instruction filtering to restrict the range
|
||||||
|
* of fault injection to only e.g., kernel instructions.
|
||||||
|
*
|
||||||
|
* To speed up injection, L4Sys furthermore does not use per-instruction
|
||||||
|
* breakpoints but only places a breakpoint on the actually interesting
|
||||||
|
* instruction (e.g., the injection EIP). Hence, we also do not count
|
||||||
|
* instructions from the beginning of the experiment, but we count how
|
||||||
|
* often a certain EIP was hit before the injection.
|
||||||
|
*
|
||||||
|
* To achieve these properties, we use an additional trace file that
|
||||||
|
* provides us with a 'hit counter' of each injection candidate. We use
|
||||||
|
* the global instruction ID (DataBaseCampaign: instruction_offset) to
|
||||||
|
* index into this trace file and determine the value for the breakpoint
|
||||||
|
* counter.
|
||||||
|
*/
|
||||||
ifstream instr_list_file(L4SYS_INSTRUCTION_LIST, ios::binary);
|
ifstream instr_list_file(L4SYS_INSTRUCTION_LIST, ios::binary);
|
||||||
|
|
||||||
if (!instr_list_file.good()) {
|
if (!instr_list_file.good()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user