Advanced debugging – tracing
Tracing of a program right from the beginning can often be used as an advanced debugging technique. Tracing allows a developer to trace program execution, find caller/callee relationships, and figure out all functions executed during the run of a program.
The trace module
Python comes with a default trace
module as part of its standard library.
The trace module takes one of the –trace
, --count
, or –listfuncs
options. The first option traces and prints all the source lines as they are executed. The second option produces an annotated list of files, which shows how many times a statement was executed. The latter simply displays all the functions executed by running of the program.
The following is a screenshot of the subarray problem being invoked by the –trace
option of the trace
module:

Tracing program execution using the trace module by using its –trace
option.
As you can see, the trace
module traced the entire program execution...