LabVIEW has a Desktop Execution Trace Toolkit (DETT) that supports this functionality., CVI has the resource tracking window, and Visual Studio has an assortment of tools for .NET and C++ that can accomplish this.
Recently I had a problem with a testprogram slowing down after 3 hours of execution.
It was traced to opening a .wav file and not closing it. The .wav file was opened and played 3 time but only closed once.
The problem was discovered by using Windows 7 task manager and looking in the process information display. The number of .wav file instances increased with every run.
Vi analyzer did not find this.
It would be nice to have a tool that monitors the teststand execution and highlights suspicious behavior, like growing resources.
Instrument handles are also an area that can cause memory leaks. If an Ni-Daq is used and not closed, resource usage grows with each run.