Suurce code navigation tools with call graph?

Evan Dower evantd at yahoo.com
Thu Jun 30 13:41:39 GMT 2005


I am reminded of Thu, Jun 30, 2005 at 02:30:17PM +0930 when Greg 'groggy' Lehey said:
> I'm currently in the position of needing to cut a large program into
> two halves and insert a clean API between them.  To do this I need to
> get a good understanding of how the control flow works, and I'm
> looking for tools that might help me.  So far I've seen:
> 
> - etags will follow the control flow downwards with the find-tag
>   command (M-. in Emacs).  It's useful at times, but a little
>   pedestrian for what I want to do.
> - cscope will show me all callers for a function.  This is closer, but
>   it's still not overly easy to read.
> - Source navigator (snavigator) gives a graphical representation of
>   the downwards control tree for a function.  It doesn't seem to be
>   able to go in the other direction, i.e show what functions call a
>   specific function.
> - doxygen does the same thing.  Arguably the graphic representation is
>   nicer.
> - kscope is a KDE wrapper for cscope.  It seems to come closest to
>   what I'm looking for in that it will show the callers, but the form
>   in which it does so is painful.  In particular, there doesn't seem
>   to be any way to view the source code round the call.
> 
> If that's the best there is, I can live with it.  But is it the best?
> Does anybody have a better tool?  And yes, I've looked through
> /usr/ports/devel, but with 1536 ports, it's easy to miss things.
> 
> Greg

As I understand it, doxygen can be configured to produce both call
graphs and called-by graphs.

-- 
Evan Dower
Software Development Engineer
Amazon.com, Inc.
Public key: http://students.washington.edu/evantd/pgp-pub-key.txt
Key fingerprint = D321 FA24 4BDA F82D 53A9  5B27 7D15 5A4F 033F 887D


More information about the freebsd-hackers mailing list