Doxygen can do this. See the CALL_GRAPH configuration option:
If the CALL_GRAPH
and HAVE_DOT
tags are set to YES
then doxygen will generate a call dependency graph for every global function or class method. Note that enabling this option will significantly increase the time of a run. So in most cases it will be better to enable call graphs for selected functions only using the \callgraph command.