I recently had the need to debug some code and was looking for an easy way to generate the call graph of the application. For a given function I wanted to see who its callers were and who the callers of the callers were, etc. Turns out Microsoft has a free tool called the CLR Profiler that does precisely this. Here is how to use it:
This can also be used to profile the program and to improve and optimize its performance. Also it works with ASP.NET applications. Overall, an extremely cool application.