You can similarly use all of the features in Code Analyzer with the codean command . This section is a short tutorial on how to use the codean command to catch new static code issues in your code, using the same sample program from SolarisStudioSampleApplications.
Previous sections of this tutorial did not compile the sample4.c. Preview this file with the cat command.
$ cat sample_4.c int another_new_umr() { int i; if (i) return 0; else return 1; }
Notice that int i is uninitialized.
Compile the source and generate the static report.
On Oracle Solaris:
$ cc -g -xprevise main.c previse_1.c previse_all.c sample1.c sample2.c sample3.c
On Oracle Linux:
$ cc -xannotate -g -xprevise main.c previse_1.c previse_all.c sample1.c sample2.c sample3.c
Save the static report using the codean –-save option to a.out.
$ codean --save -s a.out
Recompile the sample application, this time including sample4.c.
On Oracle Solaris:
$ cc -g -xprevise *.c
On Oracle Linux:
$ cc -g -xannotate -xprevise *.c
This new function is never called from main,however it will introduce a new UMR error.
Use the –-whatisnew option to get a report on the newly added static issue.
$ codean --whatisnew -s a.out STATIC report of a.out showing new issues: Compare the latest results against a.out.analyze/history/2014.8.4.14.49.56... ERROR 1 (UMR): accessing uninitialized data: i at: another_new_umr() <sample_4.c : 4> 1: int another_new_umr() 2: { 3: int i; 4:=> if (i) 5: return 0; PREVISE SUMMARY for a.out: 1 new error(s), 0 new warning(s), 0 new leak(s) in total
The following figure shows the HTML report on static code issues generated by codean.
For more information about codean, see Code Analyzer Command-Line Interface in Oracle Solaris Studio 12.4: Code Analyzer User’s Guide and the codean(1) man page.