Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Jun 2005 14:30:17 +0930
From:      Greg 'groggy' Lehey <grog@FreeBSD.org>
To:        FreeBSD Hackers <hackers@freebsd.org>
Subject:   Suurce code navigation tools with call graph?
Message-ID:  <20050630050017.GU31528@wantadilla.lemis.com>

next in thread | raw e-mail | index | archive | help

--SDZNRjzUoAX9KAL/
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

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
--
The virus contained in this message was not detected.

Finger grog@FreeBSD.org for PGP public key.
See complete headers for address and phone numbers.

--SDZNRjzUoAX9KAL/
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQFCw3xhIubykFB6QiMRArVeAJ44LLY4kxYWtXXYi/gh9Z8YjDV2qQCeJNie
owqtP8yYQsiK474hLl4tw+Q=
=NWwP
-----END PGP SIGNATURE-----

--SDZNRjzUoAX9KAL/--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050630050017.GU31528>