*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> cvstatic (1)              
Title
Content
Arch
Section
 

Contents


CVSTATIC(1)							   CVSTATIC(1)


NAME    [Toc]    [Back]

     cvstatic -	static analysis	tool

SYNOPSIS    [Toc]    [Back]

     cvstatic [-batch] [-fileset <filename>] [-readonly] [-executable
     <filename>] [-noindex] [-preprocess] [-mode SCANNER] [-mode PARSER]

DESCRIPTION    [Toc]    [Back]

     Cvstatic is a source code analysis	tool designed to help programmers
     understand	the structure of a program. Cvstatic allows the	programmer to
     ask questions about a collection of files,	such as	"Who calls this
     function",	or "Who	references this	variable".  Cvstatic supports C, C++,
     and Fortran, and provides various ways to look at your program structure
     graphically, in addition to providing textual results of queries.

GETTING	STARTED
     To	get started, type "cvstatic" in	the directory containing the source
     files you wish to analyze.	You can	ask queries by selecting an item of
     the Queries menu. For more	details	on the available Queries, see the
     Cvstatic manual.  Additional information on using cvstatic	can also be
     found below. You can also ask for on-line help by selecting an item from
     the Help menu.

FILESET	FILES
     Cvstatic works on source files, and does not require the files to
     represent a complete program. Because cvstatic is very forgiving of
     syntax errors, and	does not require completeness, cvstatic	will work on
     programs that will	not yet	compile. This makes it useful when developing
     new code as well as porting existing code to new platforms.

     Cvstatic also have	a more detailed	analysis mode called parser mode that
     uses a real compiler front-end to analyze the code.  This mode works only
     on	sources	that do	compile.

     You must provide cvstatic with a set of files to analyze. Cvstatic
     analyzes files found in a fileset,	which is just a	file that contains a
     list of files, one	file per line. By default cvstatic creates a fileset
     containing	the pattern *.[cCfF], which matches all	C, Fortran, and	C++
     programs in the current directory.	(Note: C++ has no standard suffix
     conventions, and the pattern used by cvstatic may not match c++
     conventions used at your site.)  A	fileset	file can have any name you
     like, but by default cvstatic looks for a file named cvstatic.fileset
     when it starts up.

     If	the default fileset does not meet your needs, the fileset file can be
     changed as	needed.	You can	provide	cvstatic with a	manually-prepared list
     by	editing	the fileset file with a	text editor.  If you have many
     subdirectories, you may find it useful to use the find command to create
     a fileset file. For example, the following	command	can be used to
     generate a	fileset	containing all C files in the current directory	and
     all subdirectories.




									Page 1






CVSTATIC(1)							   CVSTATIC(1)



     find . -name \*.c -print >	cvstatic.fileset

     All fileset files must have "-cvstatic" as	the first line.	 If the
     fileset file is created by	the user outside the Static Analyzer, the user
     must edit the file	to add this line at the	beginning.  If this line is
     absent, cvstatic will fail	to recognize file as a valid fileset.

     You do not	need to	list header files in a file set. Cvstatic determines
     what headers are actually used as it reads	the source files. By default,
     cvstatic looks in the current directory (the directory of the including
     file) and then /usr/include for all headers. If you want cvstatic to look
     elsewhere,	just add lines like:

	  -I/usr/local/include

     to	the end	of the file set.

     You can also ask cvstatic to extract a fileset from an executable by
     specifying	-executable <filename> on the command line, or use cvstatic's
     fileset editor to build a list for	you.

     In	scanner	mode, Cvstatic creates several database	files from the sources
     listed in the fileset file. The names of these files are based on the
     name of the fileset file. By default, these files are named
     cvstatic.xref, cvstatic.index, and	cvstatic.posting. These	files are
     non-ascii database	files used by cvstatic to rapidly look up information
     in	response to queries.

     In	parser mode, cvstatic creates a	number of files	beginning with "cvdb"
     that compose a database of	a different format from	that produced in
     scanner mode.  cvstatic can analyze files in either mode and will produce
     both kinds	of database files.

     By	default, cvstatic checks the dates of all files	in a fileset when it
     starts up.	If any files are newer than the	database files,	cvstatic
     incrementally updates the database. This behavior can be changed in one
     of	two ways. Cvstatic can be started in readonly mode, by specifying a
     -readonly flag on the command-line. Cvstatic can also be changed to
     readonly mode interactively, by selecting the appropriate option in the
     General Options dialog (brought up	from the General Options... entry on
     the Admin menu). You can also force the database to be completely rebuilt
     at	any time by choosing the Force Scan command on the Admin menu.

     Readonly mode is useful for viewing files mounted on read-only file
     systems. For example, a large project might build a cvstatic database
     overnight on a fileserver.	Individual users could view this database by
     starting cvstatic in readonly mode, without having	cvstatic try to
     rebuild the database. For large filesets, using readonly mode can reduce
     startup time significantly, because cvstatic will not check the time
     stamps on every file. Note	however, that using an outofdate database may
     mean that the results do not match	the files.




									Page 2






CVSTATIC(1)							   CVSTATIC(1)


QUERIES    [Toc]    [Back]

     Cvstatic supports a lengthy list of queries. Programmers can make queries
     by	selecting an item from the Queries menu	in the main menu bar of
     cvstatic.	Some queries are always	available, while other queries require
     a "target"	argument. For example, the query: "list	all functions" does
     not require an argument, while "who calls <function>" does	require	an
     argument. Queries that require an argument	take their argument from the
     "Query Target" text field at the top of the main cvstatic window.

     Queries are displayed in the current view,	and are	also recorded in the
     history list to allow users to re-examine results of previous queries.

VIEWS    [Toc]    [Back]

     Cvstatic offers several different ways to view the	results	of a query.
     The default view is the text view.	Other views include the	Call Tree
     View, the Class Tree View,	and the	File Dependency	View.

     Text View    [Toc]    [Back]

     The Text View is the default view that appears when cvstatic is first
     started. This view	displays the results of	each query as a	list. Each
     item in the list represents one result of the query. For example, if you
     ask "who is called	by main", you will see a list of all functions called
     by	the function main, along with the file in which	the call occurred, (in
     this case the same	file as	main), the line	number,	and a short code
     segment.

     Clicking the mouse	on a line in the Text View selects both	a line and a
     column. The text in the selected column is	placed in the Query target
     area for future use as a query target.  You can also double click on any
     line to bring up an editor	to view	the source indicated by	the line.

     Call Tree View    [Toc]    [Back]

     The Call Tree View	displays a call	graph of the functions in the fileset.
     By	default, the call tree displays	only the functions represented by the
     results of	a query. For example, a	query like "who	is called by main" is
     displayed graphically as a	tree one level deep with main as the root of
     the tree. Less obvious, if	you display the	results	of a query like	"who
     references	x", all	functions that reference the variable x	will be
     displayed.	If any of these	functions have caller/callee relationships,
     these will	be shown as well.

     The Call Tree View	supports three other display modes. In Incremental
     Mode the results of all previous queries remain on	the screen when	new
     queries are made. This allows the user to build up	a call tree of an
     interesting portion of code incrementally.	The next mode, is to show All
     Defined functions in the file set at all times. The results of various
     queries are shown by annotating the appropriate nodes of the tree in
     color. This mode is only appropriate for fairly small filesets. For large
     numbers of	functions, the tree quickly becomes unmanageable. The final
     mode is to	show the Complete Tree at all times. This mode is similar to



									Page 3






CVSTATIC(1)							   CVSTATIC(1)



     the All Defined mode, but displays	not only all functions defined in the
     file set but all known functions referenced within	the fileset, including
     library routines, system calls and	so on.

     Class Tree	View

     The Class Tree View is used for C++ programs and allows the programmer to
     see superclass/subclass relationships between classes defined within the
     fileset. The Class	Tree View functions similarly to the Call Tree View.

     File Dependency View    [Toc]    [Back]

     The File Dependency View displays include relationships between files The
     File Dependency Tree View functions similarly to the Call Tree View. This
     view is useful for	seeing how include files are used, but also can	be
     used to provide a global view of the system. For example, displaying the
     File Dependency View and making the query "who references x" would
     display all files that contains references	to the variable	x.

COMMAND	LINE OPTIONS
     Cvstatic accepts the following options:

     -batch -fileset [fileset name]
	  Run cvstatic in batch	mode.  Batch mode is useful if you want	to
	  build	a database for a very large program and	don't want to wait
	  while	it builds.  (For example, you might run	cvstatic overnight as
	  a "cron" job.)  The fileset file must	already	exist in the immediate
	  directory for	batch mode to work.  Filename defaults to
	  cvstatic.fileset.  Nothing is	displayed when cvstatic	is run in
	  batch	mode. When the database	is built, cvstatic exits.  Batch mode
	  always forces	a complete rebuild of the database.

	  The -fileset option needs to be given	if the default fileset is not
	  being	used.

     -readonly
	  Run cvstatic using the current database files. Do not	attempt	to
	  update the database.	The fileset file and database files must
	  already exist.

     -fileset <file>
	  Tell cvstatic	to use the given file as a fileset file	instead	of the
	  default cvstatic.fileset. Database filenames will be generated based
	  on the given name.

     -preprocess
	  By default, cvstatic does not	preprecess files in scanner mode.
	  Preprocessing	destroys useful	information and	alters the programmers
	  view of the program.	In general cvstatic tries to work on the
	  unaltered sources. However, for heavily ifdef'd code,	it is
	  sometimes desirable to preproces ifdefs. If the -preprocess flag is
	  given, cvstatic will run a special preprocessor before scanning the



									Page 4






CVSTATIC(1)							   CVSTATIC(1)



	  code.	 This preprocessor only	handles	ifdefs and defines. It does
	  not perform macro expansion, nor insert included code. It does read
	  include files	to look	for defines that might affect other ifdefs.
	  Preprocessing	adds significantly to the time required	to generate a
	  scanner-mode database	file.

     -noindex
	  By default, cvstatic creates three database files in scanner mode.
	  The first, cvstatic.xref contains cross reference listings. The
	  second two, cvstatic.index and cvstatic.posting, provide a way to
	  rapidly find items in	the cvstatic.xref file.	If the -noindex	option
	  is specified,	the index files	will not be built, and cvstatic	will
	  rely on a slower, linear search mode for all queries.	The default
	  mode is significantly	faster,	particularly on	large databases.
	  However, the index files take	time to	generate and require
	  approximately	twice as much disk space as when the -noindex option
	  is used.

     -executable <prog>
	  This option requests cvstatic	to generate a fileset by extracting
	  the filenames	used to	build the named	executable. This executable
	  must be unstripped. Although this may	at times provide a convenient
	  way to create	a fileset file,	you will probably want to edit the
	  resulting fileset file, as this technique includes all files,
	  including system libraries, and other	files that are probably
	  outside the fileset of interest.

     -mode SCANNER
	  This option limits cvstatic to operating in scanner mode.  File in
	  the parser-mode fileset will be ignored, and queries supported only
	  in parser mode will be unavailable.  A parser-mode database is not
	  produced.  In	the absence of either -mode option, cvstatic analyzes
	  files	in either mode and supports all	queries.

     -mode PARSER
	  This option limits cvstatic to operating in parser mode.  File in
	  the scanner-mode fileset will	be ignored, and	queries	supported only
	  in scanner mode will be unavailable. The files cvstatic.xref,
	  cvstatic.postings, and cvstatic.index	are not	produced.  In the
	  absence of either -mode option, cvstatic analyzes files in either
	  mode and supports all	queries.

WARNINGS    [Toc]    [Back]

     Cvstatic is intended for use with a single	program. Attempting to analyze
     filesets that represent multiple programs will produce unpredictable
     results in	the graphical views.

     Cvstatic performs a static	analysis. Therefore, it	cannot do anything
     reasonable	with C++ virtual functions, or other indirect techniques for
     calling functions.





									Page 5






CVSTATIC(1)							   CVSTATIC(1)


FILES    [Toc]    [Back]

     cvstatic.fileset
     cvstatic.xref
     cvstatic.index
     cvstatic.posting
     /usr/lib/WorkShop/cvstaticpp

SEE ALSO    [Toc]    [Back]

      
      
     Help


									PPPPaaaaggggeeee 6666
[ Back ]
 Similar pages
Name OS Title
ipv6sniff Tru64 Internet Protocol Version 6 (IPv6) search and analysis tool
fstab Linux static information about the filesystems
sched_get_priority_max Linux get static priority range
fstab IRIX static information about filesystems
fstab OpenBSD static information about the filesystems
slp.reg HP-UX SLP static registration file
fstab FreeBSD static information about the file systems
fstab HP-UX static information about the file systems
fstab Tru64 Static information about mounted file systems
csf_gss_get_OidAddress Tru64 Return a pointer to static storage that contains the requested OID
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service