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.





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.