I love the software. It allowed me to decipher a program of 46,000 lines of spaghetti C code across 63 files. Your code-formatting is by far the best I have seen.
Make your task easy and save time with CallFlow: Suppose you are doing a code review, or debugging a software failure, or trying to understand legacy code ... your task will usually involve reviewing a function and then reviewing the functions which are called by that function.
CallFlow will greatly simplify your task.
In CallFlow, the function-calls are displayed together
with the control flow graph of the function.
You can examine the various paths of execution that
are possible within that function. You can examine
the function-calls that are present in those paths
You can dig deeper by expanding the function-calls
CallFlow provides information that is not available
in a call-tree or other means of analysis.
The CallFlow shows the function-calls and the control flow graph of the function. You can readily see
which function-calls are inside loops, which function-calls are in the True or False parts of an if-statement etc. The CallFlow is integrated with the source code browser.
With CallFlow you get a very quick overview of a function's logic.
You can expand a function-call and get an overview of the called function too.
You can start with main( ) or any other high-level function and go a few levels deep. In this way,
you can get an overview of a number of functions quite quickly.
Print or Export
You can print or export the CallFlow of one or more functions when you need to analyze, discuss,
understand or document a set of functions - all in a single interconnected CallFlow.
No need to generate mulitple documents, then trying to figure out how they are logically connected.
CallFlow helps you visualize what function-call sequences will result when different paths through
control flow are taken. It helps you understand and check that
the function call sequence is correct
the arguments are being set up correctly
and error-checking is not missing in any path
A function accomplishes its overall task by a) delegating certain parts of the task via function-calls and b) performing the rest of the task within the function's logic.
CallFlow shows what parts have been delegated via function-calls and what is performed
by the function itself. In this way, it helps you review the partitioning of the task among various
functions. This results in a good design.