A method and system for tracing the failing or successful execution of
nested functions coded with return codes in a thread during its
execution. The method comprises an ENTRY and EXIT trace macro to mark the
beginning and the end of execution of the function, a TRACE macro to
record messages and program variable values, and a QUIT macro marking the
failing execution of the corresponding function. Using a Graphical User
Interface, an interactive trace analyzer reads the trace file and
displays the tree structure of the nested functions and marks, by using
different colors, the success or failure of each of them. The trace
analyzer utilities help the user to quickly identify the error in the
source code corresponding to a function with a failing execution.