HP UX Web Development Tools manual Suppressing report header, Generating PDB comparison report

Page 34

Example 30 Generating report for a module

$ cadvise report -pdb test.pdb -summary -module test1

=============================== SUMMARY REPORT =================================

Report generated using "HP Code Advisor C.XX.XX [Release Time]" on <machine> at <Report Time> Report command line: " cadvise report -pdb test.pdb -summary -module test1"

Unique warnings:29

Duplicate warnings: 0

Sev. Count

Diagnostic Message

 

--------------------------------------------------------------------------------

 

5

1

warning #20111-D: (SECURITY) Tainted data may be used in data length computation%s

5

4

warning

#20200-D: Potential null pointer dereference %s%s is detected

%s

5

12

warning

#20112-D: (SECURITY) Tainted data may be copied to the target

buffer%s

512 warning #20118-D: Tainted value may be used in pointer arithmetic expression%s

6.13Suppressing report header

All cadvise reports contain a header with the details of the report generation.

Format of Report header:

Report generated using <cadvise version> on <SYSTEM> at <TIMESTAMP> Report command line: <command line>

The -noheaderoption suppresses the report header in cadvise report.

Following example shows the report generation without a header.

Example 31 Suppressing Report Header

Report generated using "HP Code Advisor C.XX.XX [Feb 25 2009]" on shale at Mon Feb 25 01:49:11 2009 Report command line: "/opt/cadvise/bin/cadvise report -pdb /tmp/testpdb"

6.14 Modifying the default severity level of a diagnostic

The -chseverity <DN1:SL1,DN2:SL2,...,DNn:SLn> option enables you to modify the default severity level of one or more diagnostics in reports. DNx is the diagnostic number whose severity level is to be modified and SLx is the new severity level. The valid values for DNx and SLx are 1 to 9.

The following example shows the commands for modifying the default severity level of a diagnostic.

Example 32 Modifying the default severity level of diagnostic

The default severity level of diagnostic 20200 is 5. The following command line changes the severity to level 3.

$ cadvise -pdb testpdb -severity 1 -summary -chseverity 20200:3

The following command line changes the severity of 20200 to 3 and 20201 to 8.

$ cadvise -pdb testpdb -severity 1 -summary -chseverity 20200:3,20201:8

6.15 Generating PDB comparison report

The -basepdb <basepdbname> option enables you to compare the PDB <basepdbname> with the PDB specified with -pdboption. You can generate the following reports while comparing the PDBs:

“Generating summary diff report” (page 35)

“Generating detailed diff report” (page 35)

34 Generating reports

Image 34
Contents HP Code Advisor C.02.20 User Guide Page Contents Contents Intended audience Document conventions and symbolsAbout this document Related informationHP encourages your comments Cadvise-help@lists.hp.comIntroduction FeaturesCadvise user interface Features Cadvise user interfaceAdvanced static code analysis $ cadvise cc -c hello.cSupported compilers $ cadvise -pdb ./mypdb +wlint aCC hello.cppSupported platforms Installing Cadvise Using CadviseSteps in using cadvise Getting startedInvoking Cadvise See the following makefile content Using Cadvise as a wrapper around Compiler or LinkerFor information on PDB, see Using the Program Database PDB Integrating Cadvise with the makefiles and build processGenerating code complexity metrics Enabling different categories of diagnostic messagesExample 2 Sample wrapper script Example 3 Generating code complexity metrics Objfile.metricsGenerating code complexity metrics Example 4 Code complexity metrics $ cat /tmp/example.c+wcodeguide=rules-library Source structure in the rules library Example 5 Writing a rule to enforce naming conventionUsing the Program Database PDB Deleting PDB PDB options tableSpecifying the PDB location Disabling locks in PDB operationsExample 8 Removing object file information from the PDB Creating a PDB snapshot at a specified locationDisplaying PDB version Example 9 Creating a PDB snapshotUsage Using cross-file analysisCross-file analysis options Crossfile=auto Example 15 Specifying the location of object files Suppressing warnings selectively Configuring diagnostic messagesDiagnostic configuration options table Enabling warnings selectivelyDisabling warnings in a macro Interpreting selective warnings as errorsManaging warnings in a source file Cadvise report report-options -pdb pdbdir Generating reportsReport generation options table Cadvise report report-options logfileGenerating detailed report Generating summary reportsGenerating file summary report $cadvise report -summary -pdb testpdb -noheaderExample 23 Generating detailed report To save reports, run the following commandGenerating Html report $ cadvise report -pdb testpdb -allGenerating XML report Printing diagnostics with specific diagnostic numbersFollowing example shows the command to generate XML report Example 24 Generating an XML report$ cadvise report -pdb testpdb -diag Suppressing diagnostics for specific filesGenerating reports based on severity Example 26 Generating reports based on severity$ cadvise report -pdb test.pdb -summary -exclude inflate.c Reporting diagnostics from specific filesReporting program complexity metrics $ cadvise report -pdb test.pdb -summary -include inflate.cExample 29 Reporting program complexity metrics Generating report for a module$ cadvise report -pdb gzip.pdb +metrics -include inflate.c Generating PDB comparison report Modifying the default severity level of a diagnosticSuppressing report header $ cadvise report -pdb test.pdb -summary -module test1Example 34 Generating detailed diff report with the header $ cadvise report -pdb tmp.pdb -basepdb tmp1.pdb -allExample 35 Generating diff report for any particular warning $ cadvise report -pdb tmp.pdb -basepdb tmp1.pdb -diag$ cadvise report -pdb tmp.pdb -basepdb tmp1.pdb -severity $ cadvise -pdb pdb1 cc one.c two.cReport options file $ cadvise report -pdb new.pdb -basepdb old.pdb -allGenerating consolidated report from multiple PDBs Example 42 Generating a report using -migration optionGenerate report for migration related warnings Example 41 Report options fileReport options interoperability Recommended process for analyzing the diagnostic messagesGenerating PDB diffs with multiple PDBs $ cadvise report -pdb 1.pdb2.pdb3.pdb4.pdb -allExample 45 Ignoring the -includeoption Example 44 Reporting options interoperability$ cadvise report -pdb test.pdb -diag 2549 -exclude b.c $ cadvise report -pdb test.pdb -summary -include a.cb.cHelp-h-H Example 48 Using -noabortMiscellaneous driver options Example 47 Displaying the list of cadvise optionsExample 51 Using -tee option Example 49 Using -nobuild optionFollowing command creates the file cadvdir/foo.cad Following example shows the usage of -nobuildoptionExample 52 Using +opts filename option Line generates the following messagesCategories of diagnostics table Categories of diagnostics with examplesDetecting generic programming errors Categories of diagnostics with examples Example 53 Null pointer dereference check Such cases, cadvise generates the following warningExample 54 Potential memory leak check Such cases, cadvise generates the following warningsExample 55 Out of bound access Example 56 Out of scope accessExample 57 Use of pointer after free Such cases, cadvise generates the following errorExample 58 Allocator/deallocator mismatch Example 60 Detecting 32-bit to 64-bit migraton issues Detecting 32-bit to 64-bit migraton issuesDetecting endianness migration issues Example 59 Signed bit field of lengthExample 61 Detecting endian dependent code fragments Detecting potential security vulnerabilitiesConsider the following code fragment Detecting multi-threaded programming issues This case, cadvise generates the following errorRunning cadvise generates the following error Example 63 Detecting multi-threaded programming issuesDetecting potential performance improvement opportunities Detecting potential performance improvement opportunities Fixing the warnings by source change Incompatibilities on PA-RISC based systems AC++ standard conformance and compatibility changesSymbols Index