- General information
- Data readiness
- Grid and Cloud
- Infrastructure
- Online Computing
- Software Infrastructure
- Batch system, resource management system
- Computing Environment
- Facility Access
- FileCatalog
- HPSS services
- Home directories and other areas backups
- Hypernews
- Installing the STAR software stack
- Provision CVMFS and mount BNL/STAR repo
- RCF Contributions
- Software and Libraries
- Storage
- Tools
- Video Conferencing
- Web Access
- Machine Learning
- Offline Software
- Production
- Test tree
Autobuild & Code Sanity
Updated on Tue, 2019-03-26 05:33 by testadmin. Originally created by jeromel on 2007-11-16 10:58.
Under:
This page will contain results from code-sanity tools i.e. tools checking for code syntax, memory leak, profiling etc ... and tips on how to correct those problems.
Most, if not all, pages here are generated automatically. If you encountered an error in the formatting, please send me a note ...
- AutoBuild compilation builds
- cppcheck and coverity dashboards (coverity not completed yet)
- Valgrind tool
- How to run: cppcheck, coverity
AutoBuild
- Official OS version (SL7.3, optimized and non optimized, 32 bits) Linux Last AutoBuild compilation status).
- Official OS version (SL7.3 non optimized only for 64bits) Linux 64 bits AutoBuild status
AutoBuild is a tool which automatically builds/compiles our libraries based on what has been committed during the day. From time to time, please consult those pages and remember the following guideline for code submission into the repository :
- Code submitted to cvs must compile and run under Linux platform.
- Compilation should not give any serious warnings.
AutoBuild is self documented, just type AutoBuild.pl -h for all command line options.
AutoBuild behavior may be altered using directives. Directives are tags (key=value pairs) to be placed in a configuration file. The configuration file name is .ABrc_$^O where $^O is the string returned by the perl command % perl -e 'print $^O'. The following directives are allowed. If you have multiple values for one directive, each should be on a separate line.
- SKIP_DIRS=XXX
Excludes XXX from compilation, this directive will be passed to cons (the build system in STAR). This works only for directories.
Example:SKIP_DIRS=StEbyePool
- CO_DIRS=XXX
This directive forces the full tree to be CVS check out. Normally, AutoBuild only updates trees (which means that new sub-directories would not appear by defaults). This directive only works on directories and should not be used extensively as it is resource intensive (re-check out the entire directory).
Example:CO_DIRS=StRoot/StEEmcPool
- EX_DIRS=XXX - This directives indicates that the item XXX (already present and deployed) should be ignored from CVS UPDATE. Practically, AutoBuild will rename the item XXX to a temporary name and restore. This directive works on files or directories.
Example:EX_DIRS=StChain
- #
Not a directive per-se, this is indicate the start of a comment (the rest of the line is ignored)
Examples:SKIP_DIRS=StJetmaker # Disabled 2008/07/23 # the following lines are for blabla
Valgrind
Valgrind is a flexible tool for debugging and profiling Linux-x86 executable. The tool consists of a core, which provides a synthetic x86 CPU in software, and a series of "skins", each of which is a debugging or profiling tool.For more information valgrind, check its documentation page and the quick How to use valgrind.
Quick guide to run cppcheck
% cppcheck --force --enable=information StRoot/
In his mode, you will see all errors as it finds it.
Quickly running coverity
Nothing quick about it here as you will need to compile your code and generate the report ... But here is what you will need to do
- Add the coverity path to your PATH
% set COVPATH=/afs/rhic.bnl.gov/x8664_sl6/app/coverity-7.6.0 % set path=($COVPATH/bin $path) % rehash
- Run a build using cov-build command. In the below command, the coverity output and results go into to a temporary directory named $MYDIR/covtmp
% cov-build --dir $MYDIR/covtmp cons -k
- "Analyze" the results (i.e. it will relate errors with one another)
% cov-analyze --dir $MYDIR/covtmp --all -j auto
- Finally, generate the HTML report
% cov-format-errors --dir $MYDIR/covtmp --filesort -x --title "Bla" --html-output $MYDIR/html
STACK_USE
Coverity uses an arbitrary limit for the checking of a single variable size allocation. This default is 10000 bytes and far too small. In C/C++ only the total number of bytes for the whole stack is relevant and this is provided by the value of stacksize (provided by the shell limit command). Our dashboard will analyze the report using a max_total_use_bytes equal to the return value stacksize from the limit command and 1/10th of that value for a single variable allocation. Any excess will be reported as a defect but may not be.
Practically, add similar options to cov-analyze command:
- --checker-option STACK_USE:max_total_use_bytes:10240000 --checker-option STACK_USE:max_single_base_use_bytes:1024000
- ...
Was also available ...
Profiling, Valgrind Results
Run-time - sorry, runtime profiling results were removed (nobody looked at them and it used lots of resources).Profiling using gprof
This section was removed as not always working and not used by out users.»
- Printer-friendly version
- Login or register to post comments