This script generates graphivz dot files from a cxref function 
cross reference.

Graphviz is a graph drawing tool from AT&T. You can get more information
on graphviz from http://www.research.att.com/sw/tools/graphviz/

This script  works in a similar manner to the xrefgraph.py script. It has 
some extra functionality, viz ; the ability to draw just part of a call 
tree, and extra parameters for controlling the final layout.

To see the full description of the program, run

        xrgr.pl --help

Some examples:

If you just wanted to show the call trees for functions in a 
file func.c, you would invoke
       
        xrgr.pl -n func.c -o outfile.dot cxref.function

You then produce a call graph by running e.g.

        dot -o graph.out -Tps outfile.dot

Sometimes it is useful to cluster functions in a file. This can
show things like inappropriate modularity (functions that really belong
somewhere else). The -c option clusters functions in a file.

        xrgr.pl -n func.c -c func.c -o outfile.dot cxref.function

One of the difficulties with graphviz diagrams is that they can be quite
large. If you try to put them on a single sheet, they can be illegible.
The alternative is to use multiple sheets, or A3 size paper if you are
lucky enough to have an A3 printer.

-t multi : multiple pages

-t compress : squishes things up but can look really squashed

-k deletes calls to functions that are not defined in your code. This will 
eliminate showing calls to standard library functions.

You can also draw the call tree for a single function. This will also
help in fitting information onto a single sheet.

The following shows the call tree for function CheckFunctionVariableRef,
eliminating calls to standard library functions.

        xrgr.pl -k -f CheckFunctionVariableRef -o xx cxref.function


Jamie Honan
jhonan@optushome.com.au
