Oracle® Solaris Studio 12.4: Code Analyzer Tutorial

Exit Print View

Updated: October 2014
 
 

Using the codean Command-Line Tool

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.

  1. 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.

  2. 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
  3. Save the static report using the codean –-save option to a.out.

    $ codean --save -s a.out
  4. 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.

  5. 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.

image:codean generated HTML report for Static Code Issues, showing a new UMR                     error

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.