Please enable JavaScript to view this site.

Coverage Validator Help

Navigation: The User Interface > Settings > Data Collection Settings > Instrumentation

Hook Control

Scroll Prev Top Next More

 

The Hook Control page allows you to specify how some of the more 'awkward' lines of code are hooked.

 

settings-hookcontrol

 

 

Most of these options are fairly advanced. They are also mostly enabled by default, but as usual, we provide the ability to control the settings if needed.

 

 

Hook Control

 

Some lines of code are trickier to hook than others. By default Coverage Validator is quite zealous in performing the safety checks and enabling hooking of these lines.

 

If necessary, you can choose not to enable these hooks.

 

The options are:  

 

Hook 32 bit relative JMP instructions instructionStep hooks lines with JMP instructions in them

 

Hook return (RET and RETN) instructions instructionStep hooks lines with RET or RETN instructions in them

 

Hook short branches (Jcc) if possible instructionStep hooks lines with short branches in them

 

 (Jcc is a conditional jump)

 

Hook long branches (Jcc) if possible instructionStep hooks lines with long branches in them

 

 

Line ordering due to compiler optimisation

 

When the compiler optimizes things it can move lines around relative to the original source code.

 

During instrumenting extra checks are added so that hooks can get correctly recognized/improved automatically.

 

Compensate for compiler optimisation instructionStep untick to switch off these extra checks

 

 

Extra care at function ends

 

An additional option makes Coverage Validator more cautious when detecting the end of a function, to avoid overwriting the code for any function that follows.

 

Detect end of functions with extra tests instructionStep hook lines with JMP instructions in them

 

 

Filling in the gaps

 

Finally Coverage Validator can synthesize coverage results for lines that simply could not be hooked.

 

Not all lines can have their coverage results synthesized, only those in the same execution path.

 

Using this option will not introduce errors into your coverage tests.

 

Use synthetic coverage hooks instructionStep synthesize coverage results - not on by default.

 

 

Reset All - Resets all global settings, not just those on the current page.

 

 

Reset - Resets the settings on the current page.