[comp.lang.c] C program hierarchical listing

dueker@xenon.arc.nasa.gov (Chris Dueker) (01/09/91)

We're looking for a program that will process C source code and produce
an indented listing of the hierarchy of calls, not necessarily starting
with main().  Our source is located in many files and the program would
need to process the files we specify.

We would prefer a public-domain or freely-redistributable program with
source code available.  But...

Any recommendations?  Many Thanks in advance!

Chris

------------------------------------------------------------------------
"Ah, Benson, you are so mercifully free of the ravages of intellegence!"
"Oh, thank you, Master!"             - from the movie, TIME BANDITS
------------------------------------------------------------------------
dueker@xenon.arc.nasa.gov        |   Chris Dueker (The Code Slinger)

celarier@vishnu.reed.edu (Stuart Celarier) (01/10/91)

Let me recommend that you investigate gprof, the
call graph profiler on UNIX systems (well, most of
them).  This produces a lengthy report, based not on
the source code but on the actual execution(s) of the
program, which will tell you for each function:  how
many times it was called (and how long it took), the
names of all _executed_ parents and children, along 
with appropriate counts.  Very valuable for speed 
optimization.

I used this utility extensively when I inherited a
large software package from a third party, and was able
to discover a great amount of information about the
program structure and interaction in a short amount of
time.

-Stuart Celarier
<celarier@reed.bitnet>

fjb@metaware.metaware.com (Fred Bourgeois) (01/10/91)

In article <1991Jan8.191524.14403@nas.nasa.gov> dueker@xenon.arc.nasa.gov writes:
>We're looking for a program that will process C source code and produce
>an indented listing of the hierarchy of calls, not necessarily starting
>with main().  Our source is located in many files and the program would
>need to process the files we specify.
>We would prefer a public-domain or freely-redistributable program with
>source code available.  But...

Don't know of any freeware, but ...

MetaWare provides a product (xref) that will perform multi-module
cross-references.  So far as I know, we do not sell it separately,
but it does come bundled with our C and Pascal compilers.  I haven't
used it extensively myself, but some customers swear by it.

Please direct product inquiries to sales@metaware.com - I don't sell
'em, I just write 'em.  ;-)
-- 
Fred Bourgeois, MetaWare Inc., 2161 Delaware Avenue, Santa Cruz, CA 95060-2806
fjb@metaware.com					...!uunet!metaware!fjb
	     Colorless Green Ideas Sleep Furiously, and so do I.