I have a (single-threaded) C++ program which involves a large number of nested function calls, lots of nested constructors, type conversions, etc. - and it's difficult to follow exactly what gets called when.
To compare two versions of the source, I would have liked to be able to look at a "trace" of all function invocatons - with or without the easily-printable arguments - by order of invocation time.
Obviously it is theoretically possible to obtain such a list, since, after all, it can be done manually using a debugger and repeated Step-Into's. Question is, can it be obtained relatively easily and without a lot of manual work?
Note:
- I mean freestanding functions, members, and lambdas (which are basically members of anonymous classes).
- If this is only possible for the parts of the program for which I have the source, and not for other libraries, that's good enough.
- Assume the trace is not in the millions of calls; or - even better, don't...