Intel® Advisor XE is the premiere tool from Intel for helping to parallelize your code, but it can also be used in other ways. For example, you can take advantage of the Intel Advisor XE special annotation ANNOTATE_OBSERVE_USES to track all memory accesses to a particular variable.
Assume you have a source file, foo.cpp, that contains an allocation point like:
int * pArray = new int[size];
You want to detect all accesses to the pArray elements that happen within the scope of a function bar()where bar() is invoked from bar.cpp.