From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 30 05:00:19 2005 Return-Path: X-Original-To: hackers@freebsd.org Delivered-To: freebsd-hackers@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8AF1F16A41C for ; Thu, 30 Jun 2005 05:00:19 +0000 (GMT) (envelope-from grog@lemis.com) Received: from blackwater.lemis.com (wantadilla.lemis.com [192.109.197.135]) by mx1.FreeBSD.org (Postfix) with ESMTP id 29CEC43D1F for ; Thu, 30 Jun 2005 05:00:18 +0000 (GMT) (envelope-from grog@lemis.com) Received: by blackwater.lemis.com (Postfix, from userid 1004) id 20F4C856A6; Thu, 30 Jun 2005 14:30:17 +0930 (CST) Date: Thu, 30 Jun 2005 14:30:17 +0930 From: Greg 'groggy' Lehey To: FreeBSD Hackers Message-ID: <20050630050017.GU31528@wantadilla.lemis.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="SDZNRjzUoAX9KAL/" Content-Disposition: inline User-Agent: Mutt/1.4.2.1i Organization: The FreeBSD Project Phone: +61-8-8388-8286 Fax: +61-8-8388-8725 Mobile: +61-418-838-708 WWW-Home-Page: http://www.FreeBSD.org/ X-PGP-Fingerprint: 9A1B 8202 BCCE B846 F92F 09AC 22E6 F290 507A 4223 Cc: Subject: Suurce code navigation tools with call graph? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Jun 2005 05:00:19 -0000 --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/--