# cscalls toolman page

## NAME

           cscalls -- cscope version of ccalls(1)

## SYNOPSIS

           cscalls     [-d|f|g|I|l|p|P|S|t]     [-s]     [-F    char]
           [cscope.out_file]

## DESCRIPTION

           cscalls extracts function call,  parameter,  #include  and
           other  information  from  the  file produced when the tool
           cscope was executed.

           cscalls is useful for formatting function call and parame-
           ter data for use by the tree drawing program dt.

           If  no  file  is  specified  on  the command line, cscalls
           defaults to using  the  file  cscope.out  in  the  current
           directory.

           -d        Write  to  standard output the name of each file
                     and the #defines it contains, e.g.:

                     init.c MAXLEN init.c NULL wrap.c BUFSIZE

           -f        Write to standard output the source  file  name,
                     function name, and starting and ending line num-
                     bers for each function.

           -Fchar    Use char as output  field  separator  character.
                     If  -F  is not specified, a space is used as the
                     default.

           -g        Write to standard output the name of  each  file
                     and  global  variable defined in that file.  The
                     format of each line will be:

                                   filename.c variable

           -I        Output source file names and  the  source  files
                     they  #include.  cscalls writes this information
                     to standard output, one set  per  line,  in  the
                     form:

                                      file.c file.h

                     meaning  that  source file file.c contains the C
                     preprocessor #include directive to include  file
                     file.h.   cscalls does not recognize the differ-
                     ence between these two statements:

                                    #include "file.h"
                                           and
                                    #include <file.h>

           -l        Write to standard output the name of each  func-
                     tions  and  local variable defined in that func-
                     tion.  The format of each line will be:

                                  functionname variable

           -P        Write to standard output pairs of function names
                     and calling parameters.

           -p        Output  function  names and parameters.  cscalls
                     writes function names and parameters to standard
                     output, one set per line, in the form:

                                 fcn fcn(arg1,arg2,arg3)

                     meaning  that function fcn accepts the arguments
                     arg1, arg2, and arg3.

                     To avoid possible conflict with the field  sepa-
                     rator  character,  no  spaces  will  be  printed
                     between the comma separated arguments.

                     Without the -p argument, cscalls writes function
                     pairs  to standard output, one pair per line, in
                     the form:

                                          f1 f2

                     meaning that function f1 calls function f2.

                     Regardless of whether or not  -p  is  specified,
                     each field is separated by field separator char-
                     acter (see -F option).

           -S        Write to standard  output  structure  names  and
                     elements.

           -s        Skip  calls  to these UNIX system calls and sub-
                     routines:

                     _exit, _tolower,  _toupper,  a64l,  abort,  abs,
                     access, acct, acos, advfs, alarm, asctime, asin,
                     assert, atan,  atan2,  atof,  atoi,  atol,  brk,
                     bsearch,  calloc,  ceil,  chdir,  chmod,  chown,
                     chroot,  clearerr,  clock,  close,  cos,   cosh,
                     creat,  crypt,  ctermid, ctime, curses, cuserid,
                     ddim, dial,  dim,  dkbreak,  dkdial,  dkenviron,
                     dkeof, dkerr, dkmgr, dkminor, dknamer, dksplice,
                     dkxstdio,  dprod,  drand48,  dup,  ecvt,  edata,
                     encrypt,   end,  endgrent,  endpwent,  endutent,
                     erand48, erf, erfc, errno, etext, execl, execle,
                     execlp,  execv, execve, execvp, exit, exp, fabs,
                     fclose,  fcntl,  fcvt,  fdopen,  feof,   ferror,
                     fflush,   fgetc,  fgetgrent,  fgetpwent,  fgets,
                     fileno,  floor,  fmod,  fopen,  fork,   fprintf,
                     fputc,   fputs,  fread,  free,  freopen,  frexp,
                     fscanf, fseek, fstat, fstatfs, ftell, ftok, ftw,
                     fwrite, gamma, gcvt, getc, getchar, getcwd, get-
                     dents, getegid, getenv,  geteuid,  getgid,  get-
                     grent,  getgrgid,  getgrnam,  getlogin,  getmsg,
                     getopt,  getpass,  getpgrp,   getpid,   getppid,
                     getpw,   getpwent,   getpwnam,  getpwuid,  gets,
                     getuid,  getutent,  getutid,  getutline,   getw,
                     gmtime,  gsignal,  hcreate,  hdestroy,  hsearch,
                     hypot, iargc, idim, ioctl, irand, isalnum, isal-
                     pha, isascii, isatty, iscntrl, isdigit, isgraph,
                     islower,  isprint,  ispunct,  isspace,  isupper,
                     isxdigit,  j0,  j1,  jn,  jrand48,  kill, l3tol,
                     l64a,  lcong48,  ldaclose,  ldahread,   ldaopen,
                     ldclose,  ldexp,  ldfhread,  ldgetname, ldlinit,
                     ldlitem, ldlread, ldlseek,  ldnlseek,  ldnrseek,
                     ldnshread,  ldnsseek, ldohseek, ldopen, ldrseek,
                     ldshread, ldsseek,  ldtbindex,  ldtbread,  ldtb-
                     seek,  lfind,  lge,  lgt, link, lle, llt, local-
                     time,  lockf,  log,  log10,  logname,   longjmp,
                     lrand48,  lsearch,  lseek, ltol3, mallinfo, mal-
                     loc, mallopt, maphost, matherr, memccpy, memchr,
                     memcmp,  memcpy,  memset,  mkdir, mknod, mktemp,
                     modf, monitor, mount, mrand48,  msgctl,  msgget,
                     nice,  nlist, nrand48, open, pause, pclose, per-
                     ror, pipe, plock, plot,  popen,  pow,  ppremote,
                     printf,  profil,  ptrace, putc, putchar, putenv,
                     putmsg, putpwent, puts, pututline, putw,  qsort,
                     rand, read, realloc, regcmp, regex, rewind, rex-
                     ecl,  rexecv,  rfstart,  rmdir,   sbrk,   scanf,
                     seed48,  semctl,  semget, semop, setbuf, setgid,
                     setgrent,  setjmp,  setkey,  setpgrp,  setpwent,
                     setuid,   setutent,   setvbuf,   sgetl,  shmctl,
                     shmget, sighold,  sigignore,  signal,  sigpause,
                     sigrelse,  sigset,  sin,  sinh,  sleep, sprintf,
                     sputl, sqrt, srand,  srand48,  sscanf,  ssignal,
                     stat,  statfs,  stdio,  stdipc,  stime,  strcat,
                     strchr, strcmp, strcpy, strcspn,  strlen,  strn-
                     cat, strncmp, strncpy, strpbrk, strrchr, strspn,
                     strtod, strtok, strtol, swab, sync, sys_errlist,
                     sys_nerr,   sysfs,  system,  t_accept,  t_alloc,
                     t_bind,  t_close,  t_connect,  t_error,  t_free,
                     t_getinfo, t_getstate, t_listen, t_look, t_open,
                     t_optmgmt,   t_rcv,   t_rcvconnect,    t_rcvdis,
                     t_rcvrel,  t_rcvudata, t_rcvuderr, t_snd, t_snd-
                     dis,  t_sndrel,  t_sndudata,  t_sync,  t_unbind,
                     tan, tanh, tdelete, tempnam, tfind, time, times,
                     tmpfile,  tmpnam,  toascii,  tolower,   toupper,
                     tsearch, ttyname, ttyslot, twalk, tzset, ulimit,
                     umask, umount, uname,  undial,  ungetc,  unlink,
                     ustat,   utime,   utmpname,  vfprintf,  vprintf,
                     vsprintf, wait, write, y0, y1, and yn.

                     If -s is not specified,  calls  to  UNIX  system
                     calls  and  subroutines will be treated the same
                     as other function calls and displayed  on  stan-
                     dard output.

           -t        Write  to standard output file names and typedef
                     names.

## EXAMPLES:

           Upcoming examples make use of the following C program,  in
           file.c:

           main(argv, argc)
           char *argv[];
           int argc;
           {
                int x;

                x = calculate(12, 5);
                printf("x is: %d", x);
           }

           int calculate(a, b)
           int a;
           int b;
           {
                int sum;

                sum = square(a) + square(b);
                return(sum);

           }

           int square(n)
           int n;
           {
                return(n * n);
           }

           cscalls, without any arguments, produces these lines:

           main calculate
           main printf
           calculate square

                                  cscalls -F:

           produces these lines:

           main:calculate
           main:printf
           calculate:square

                                 cscalls -F: -p

           produces these lines:

           main:main(argv,argc)
           calculate:calculate(a,b)
           square:square(n)

                                   cscalls -f

           produces these lines:

           file.c main 1 9
           file.c calculate 11 19
           file.c square 21 25

## EXAMPLE:

           To  produce a structure chart of C function calls, one may
           execute:

           cscope  -b file1.c file2.c ...
           cscalls | dt

           Where a large number of functions are involved,  eliminat-
           ing  duplicate data may speed execution of the chart draw-
           ing:

           cscope  -b file1.c file2.c ...
           cscalls | sort -u | dt

           To produce a structure chart of C function calls,  includ-
           ing parameters, one may execute:

           cscope  -b file1.c file2.c ...
           cscalls -p > fcn.parameters
           cscalls | dt -x fcn.parameters

## EXIT CODES

           0 for no errors; 1 for any error.

## DIAGNOSTICS

           All  error  messages are written to standard error and are
           intended to be self-explanatory.

## SEE ALSO

           ccalls(1), cscope(1)

## WARNINGS

           cscalls prints function parameters from the  called  func-
           tion  point  of view, rather than that of the caller func-
           tion.

## AUTHOR

           The cscalls emulation was written by Mark Skeates.

## PROVIDER

           The cscalls tool is provided by Mark Skeates.

## SEE ALSO

           dt - A Program for Visualizing Complex Problems Using Sim-
           ple  Terminals,  by  R. S. Parnass, AT&T Bell Laboratories
           technical memorandum 55545-880516-01TM.

           dt(1), cscope(1)