Date: Wed, 03 Mar 2004 09:47:08 +0300 From: Zajcev Evgeny <zevlg@yandex.ru> To: Robert Watson <rwatson@freebsd.org> Cc: hackers@freebsd.org Subject: Re: Looking for static analysis tool to generate call graphs Message-ID: <82brneh1g3.fsf@us.dmz.local> In-Reply-To: <Pine.NEB.3.96L.1040302221117.17237B-100000@fledge.watson.org> (Robert Watson's message of "Tue, 2 Mar 2004 22:18:31 -0500 (EST)") References: <Pine.NEB.3.96L.1040302221117.17237B-100000@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Robert Watson <rwatson@freebsd.org> writes: > Well, using a scary combination of grep, awk, a long list of "omit this" > regexp's, and prcc from cflow, I got the following: > > http://www.watson.org/~robert/freebsd/20040302-sockets.ps Actually it looks kind a mess. Maybe use dot's clustering or ranking to organize callgraph a little? like this: Clustering output: digraph cg { a -> b; b->c; a->c; c->d; a->d; subgraph "cluster_one.c" { label="one.c"; a; b;}; subgraph "cluster_two.c" { label="two.c"; c; d;} } Layered output: digraph cg { a -> b; b->c; a->c; c->d; a->d; { rank = same; a; c; } { rank = same; b; d; } } So soXXX functions may be with same rank, also some high level functions such as `accept', `listen', `send', etc may have same rank, so callgraph will look like subroutine was designed on paper. Unfortunately there is no way in dot to use clustering and ranking for same node :(. -- lg
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?82brneh1g3.fsf>