is there a way to do a backtrace on which line of the script called a particular function?
Hopefully this will suit your needs.
Debug.Log(System.Environment.StackTrace);
The way to do that is to use a standard debugging tool and set breakpoints, then execute each statement one by one to follow the code's control flow in in your editor. This isn't possible with Visual Studio however, since Unity uses Mono and therefore can't attach to Visual Studio's debugger, but perhaps it's possible with Mono Develop, I've never used that as an editor for unity.
As a lowtech alternative, you could simply insert strategic Debug.Log calls to see what gets called and what doesn't...