Triggering
To verify that all stacks and registers are restored correctly before exiting a subroutine
To verify that all stacks and registers are restored correctly before exiting a subroutine
The exit code for a function will often contain instructions for deallocating stack storage for local variables and restoring registers that were saved during the function call. Some language implementations vary on these points, with the calling function doing some of this work, so you may need to adapt the procedure to suit your system.
1Select the state analyzer Trigger menu.
2Define terms SR_START and SR_END to represent the start and end addresses of the subroutine.
3Under State Sequence Levels, enter the following sequence specification:
∙While storing “anystate” Find “SR_START” 1 time
∙While storing “anystate” Then find “SR_END” 1 time
∙While storing “anystate” TRIGGER on “≠ SR_START” 1 time Else on “SR_START” go to level 2
∙Store “anystate”