How to use Insure++/CodeWizard

How to use Insure++/CodeWizard



Introduction

Insure++ is a source level run-time debugger for C and C++. It detects memory leaks and other problems which compiler may not finds.

CodeWizard for C++ is a software version of books by Scott Meyers, "Effective C++" and "More Effective C++". It analyze your sources and give you suggestions according to these books.

Insure++ version 5.1 for Sun-solaris, pentium-linux have been installed at RCF.

How to setup

If you are using STAR central enviroment, you can setup enviroment by
  setup INSURE

If not, include following lines at the end of your .cshrc file. For linux RedHat61,

  setenv PARASOFT /usr/local/app/parasoft
or
  setenv PARASOFT /afs/rhic/i386_redhat1/app/parasoft
and
  setenv MANPATH ${MANPATH}:{$PARASOFT}/man
  setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:{$PARASOFT}/lib.linux2
  set path = ($path $PARASOFT/bin.linux2)
and for soralis,
  setenv PARASOFT /usr/local/app/parasoft
or
  setenv PARASOFT /afs/rhic/sun4x_56/app/parasoft
and
  setenv MANPATH ${MANPATH}:{$PARASOFT}/man
  setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:{$PARASOFT}/lib.solaris
  set path = ($path $PARASOFT/bin.solaris)

Try it with simple example

$ setenv DISPLAY IPAddress.of.your.display:0.0
$ cp $PARASOFT/examples/c/bubble1.c .
$ gcc -o bubble1 bubble1.c
$ bubble1
Works fine? No error message?
$ insra &
$ insure -o bubble1.insure bubble1.c
$ bubble1.insure
These is a serious bug. Did you see it on insura which is graphical blowser of insure++/codewizard. Now try the codewizard.
$ cp $PARASOFT/codewizard/examples/item11SV.C .
$ CC -g -o item11SV item11SV.C 
$ item11SV
Works fine? No error message?
$ codewizard -g -o item11SV item11SV.C
These is a serious problem in its coding structure. There are more examples at the same directories.

How to configure

You may create a file named .psrc at your home directory and/or your current working directory to configure Insure++ and CodeWizard. This is an example,
$ cat ~akio/.psrc
####  Ivoke your favorite editor
insra.visual xemacs +%l %f
####  Report file insra or a file
insure++.report_file insra
insure++.runtime.report_file insra
#insure++.report_file $HOME/insure++.report
#insure++.runtime.report_file $HOME/insure++.runtime.report
####  Summaries
insure++.summarize leaks detailed outstanding coverage bugs 
####     Supress READ_NULL error message at runtime
insure++.runtime.suppress READ_NULL
####     Compiler for .c file
#Insure++.compiler_c gcc
####   Compiler for .cc, .cpp, .cxx and .C files
#Insure++.compiler_cpp g++
####
####  For linux, these 2 option will solve "crash in insure++ routiune" problem
symboltable off
stackinternal on
####
There are manny more options to configure Insure++. See "man .psrc".

How to use them for your code on STAF/ROOT with makel

STAR make files now supports Insure++ and CodeWizard. To compile your analysis code(C or C++, Insure++ is completely blind for Fortran code) with Insure++ or CodeWizard for STAF PAMS,
 $ makes INSURE=yes ...
 $ makes CODEWIZ=yes ...
(cannot use them at same time...). And with ROOT,
 $ makel INSURE=yes ... 
 $ makel CODEWIZ=yes ...
Note that these will not work with NODEBUG=yes.

Well I tried CodeWizard from my small St_ems_Maker.C, and got 4239 messages!!! Oh well.

How to use them for your code on STAF/ROOT with cons

STAR cons files now supports Insure++. To compile your analysis code (C or C++, Insure++ is completely blind for Fortran code) with Insure++,
$ insra &
$ cons INSURE=yes ...
$ root4star 'your macro' 
Note that these will not work with NODEBUG=yes.

Supported platforms and compilers

 Platform\Compiler  CC  cxx  gcc/g++  xlC
 DEC-Alpha/DU3.2 and 4.0    X  X  
 HP9000/UX9.x and 10.x  X    X  
 Linux      X  
 RS6000/AIX3.2.x and 4.x      X  X
 SCO  X    X  
 SGI/IRIX5.3 and 6.x  X    X  
 Sun/Solaris2.x  X    X  
 Sun/SunOS4.1.x  X    X  


Go back to STAR software

Go back to Akio's page