subroutine
Triggering on a Loop Overrun
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.
Select the state analyzer Trigger menu.
1
Define terms SR_START and SR_END to represent the start and end
2
addresses of the subroutine.
Under State Sequence Levels, enter the following sequence
3
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
To verify that all stacks and registers are restored correctly be
Triggering
113