In this article, I will explain how you can track class activities like function calls, parameters and return values by simply inheriting one class which I named "Spy". The "Spy" class encapsulates the tracking and logging relates the complexities . This class can be used for debugging function call sequence, state change of objects & parameters on the way of nested function calls and their return steps. How it works? The Spy class adds small spy properties at the time of object creation with ......