Skip to content

ezickler/pycflow2dot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pycflow2dot

Summary

Draw call graphs for C source codes using dot and cflow. Typeset PDF with a page per source file and clickable cross-file function references.

cflow2dot -i hello_simple.c -f png produces:

from hello_simple.c.

Description

Draw the call graph of C source code using cflow and dot. Output to LaTeX, .dot, .PDF, .SVG, .PNG and from dot to all formats supported from it. The LaTeX output is obtained by including the SVG via Inkscape's LaTeX export functionality.

Multi-file sources are converted to multiple SVG files, one for each source. These contain links using the LaTeX package hyperref, so that after compilation one can click on the name of a function call and be taken to its definition, even if that definition is in another page of the PDF, because the function is defined in another source file than the one corresponding to the current PDF page.

Note that if a file containing the definition is missing, then the hyperref link is omitted, so that no dead links result after compiling with LaTeX. This might be the case of for example the file with the definitions is available, but is not passed to pycflow2dot, e.g., for the purpose of focusing on a subset of the sources.

For now the LaTeX result has to be manually compiled, though this extra step will be automated in the future. Multi-SVG export will still be available, so that the results can be included in a larger document, e.g., a report.

PyCflow2dot is a Python port of the Perl script cflow2dot. Tested with Python 3.2 (NetworkX not yet available in 3.3.).

Dependencies

  • Python 2.7.* or 3.*
  • GNU cflow (e.g. port install cflow with MacPorts)
  • dot (port install graphviz)
  • networkx (port install py-networkx with MacPorts)
  • pydot (optional, port install py-pydot)
  • cpp (optional)

License

PyCflow2dot is licensed under the GNU GPL v3.

About

Layout cflow output using GraphViz dot

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%