[comp.sources.wanted] PD cross-referencer/call graph generator for C wanted

dennism@menace.rtech.COM (Dennis Moore (x2435, 1080-276) INGRES/teamwork) (09/13/89)

Can anyone point me at/send me a source for a PD cross-referencer or
calling graph generator for C?  I'd be very grateful.  Thanks muchly.

-- Dinty Moore, this is my beef, my stew

olsen@hpfcdq.HP.COM (John Olsen) (09/14/89)

dennism@menace.rtech.COM (Dennis Moore (x2435, 1080-276) INGRES/teamwork)
writes:
>Can anyone point me at/send me a source for a PD cross-referencer or
>calling graph generator for C?  I'd be very grateful.  Thanks muchly.

I don't know if it is HPUX specific, but look for the system utility
/usr/bin/cflow if you are running UN*X or something close.  It's actually 
a shell script which makes use of such things as lint and cc front ends, 
yacc, lex, nm, dag, and a few other hard-to-find-man-pages-for things.

It builds a list of what functions call what other functions (global only),
then indents and sorts it.

John M. Olsen, Graphics Software Engineer
olsen@hpfcdq.HP.COM  -or-  ...!hplabs!hpfcdq!olsen
(W) Hewlett-Packard, Mail Stop 73, 3404 E. Harmony Road, Ft Collins, CO 80525
(H) 700 E. Drake Rd. #E12, Ft Collins, CO 80525

guy@auspex.auspex.com (Guy Harris) (09/17/89)

 >>Can anyone point me at/send me a source for a PD cross-referencer or
 >>calling graph generator for C?  I'd be very grateful.  Thanks muchly.
 >
 >I don't know if it is HPUX specific, but look for the system utility
 >/usr/bin/cflow if you are running UN*X or something close.

It's not HP-UX specific, but it's not public-domain either; it's AT&T
licensed code.  It is available in a number of UNIX systems, but not in
all of them.

 >It's actually a shell script which makes use of such things as lint and
 >cc front ends, yacc, lex, nm, dag, and a few other
 >hard-to-find-man-pages-for things.

It uses "yacc" and "lex" so it can do something reasonable with YACC and
LEX source.  "dag" and company have no man pages because they're not
commands, they're components of commands - they're programs rather than
subroutines, but they're still not commands.