Every time when load/store operation happens, Vargrind checks if a new function is called. This is done by comparing the number of functions on the stack and the number of functions that were in the previous check. This won't give the correct result if between operation of returning form one function and calling some other, load or store operation didn't happen. Example for this is if we had 3 functions on the stack and a function call that executes load/store happens, Vargrind will store 4 functions. If program returns from that function and calls the other one (or same again) and then executes load/store operation, Vargrind's function counter will remain on 4 and new function call won't be recognized.
This repository was archived by the owner on Sep 29, 2025. It is now read-only.