logo资料库

QAC用户详细指导手册.pdf

第1页 / 共189页
第2页 / 共189页
第3页 / 共189页
第4页 / 共189页
第5页 / 共189页
第6页 / 共189页
第7页 / 共189页
第8页 / 共189页
资料共189页,剩余部分请下载后查看
IMPORTANT NOTICE
CHAPTER 1
Introduction to QA C
QA C Action Overview
CHAPTER 2
Projects
Opening a QA C 8.0 Project
Upgrading an 8.0 Project
Using an old Project Configuration File
Creating a Project Automatically
Creating a Project Manually
Reopening Projects
Project Folders
Making File Selections
Relative Path and Environment Variable Support
Root Path
GUI-based Environment Variable Creation
Applying Relative Paths and Environment Variables
CHAPTER 3
Configuring QA C
Configuring Your Compiler Personality
Setting System Header Files
Setting System Macros
Setting Implementation Defined Types
Compiler Extensions
Standard Extensions
Redefinition of Extended Data Types
Operators
Additional Include Files
Identifiers
Configuring Your Analyzer Personality
Project Header Files
Project Macros
Brace Style and Tab Spacing
Warning Calls
Pragma Blocks
K&R Compatibility
Configuring Your Message Personality
Choosing a Message Subset
Standard Message File
Level 0: Information
Level 1: Obsolete Messages
Level 2: Minor
Level 3: Major
Level 4: Local Standards
Level 5: Dataflow Analysis
Level 6: Portability
Level 7: Undefined Behavior
Level 8: Language Constraints
Level 9: Errors
Message Suppression
Code-based Suppression Syntax
Suppression of Warnings with #pragma
Project Configuration File
Dataflow Analysis Settings
Personalities and Analysis
Configuration of Application Options
Editor Preferences: Choosing Your Editor and Browser
Setting the Housekeeping Options
Default Personalities
Environment
Product Extensions
CHAPTER 4
Analyzing Source Code
Deep Flow Dataflow Analysis (DF^2)
Recommendations for First Time Operation of DF^2
Recommendations for Fine-Tuning DF^2 Configuration Settings
Commencing Analysis
Analysis Output Files
.err Files
.met Files
.i Files
Managing Output Files
Suppressing Analysis Output from Header Files
Secondary Analysis
Configuring Secondary Analysis
Secondary Analysis Naming Convention Checking
Running Multiple Secondary Analysis
Cross-Module Analysis
Configuring Cross-Module Analysis
CMA Output Files
Running Cross-Module Analysis
Default-supplied CMA Settings
Analysis Log
CHAPTER 5
Viewing Analysis Results: Message Browser
The Source View
Context Messages
Navigating Through Messages
Displaying Message Help
Displaying Line Numbers
Warning Summary View
Message Groups
Files
CMA Results
Syntax Errors
Active MG
Warning List View
Changing the Format of Annotated Source
Using Annotated Source Code
Sample Annotated Source Code Listing
The Corrected Source File
Displaying Diagnostic Messages
Overview of Baselining
Message Groups and Active Message Groups
CHAPTER 6
Reports
Project Warning Summary
Warning Summary Message Count
Identifier Declarations
Close Name Analysis
External Name Cross-Reference
COCOMO Cost Model
Programmer Time
Development Time
Tool Usage
Project Metrics
CHAPTER 7
Code Structure
Relationships
Choosing Relationships
Searching for Relationships
Displaying Parent and Child Nodes
Starting the Graph from an Individual Node
Selecting Additional Files
Printing the Relationship Graph
Saving the Relationship Graph
Viewing Source Code
Drawing the Graph Vertically
Function Structure
Searching for Functions
Display Simple Functions
Selecting Additional Files
Printing the Structure Diagram
Saving the Structure Diagram
Viewing Function Structure Source Code
CHAPTER 8
Metrics
Metric Thresholds in Analysis
Threshold Order
The Metrics Browser
Metric Name Listing Panel
Name Listing Panel
Metrics Graph
Selecting Additional Files
Reloading Metrics Data
Filtering Metrics
Changing the Metric Group
Magnifying the Graph
Exporting Metrics
Creating a Demograph File
Printing the Graph
Saving the Metrics Graph
Displaying a Kiviat Diagram
Displaying Source Code
Displaying Function Structure
The Demographics Browser
The Demographics Listing
Selecting Additional Files
Reloading Metrics Data
Saving the Demographics Graph
Printing the graph
Displaying Source Code
Displaying Function Structure
Displaying a Kiviat Diagram
Exporting Metrics
The Kiviat Diagram
Changing the display
Selecting Metrics
Printing the Kiviat Diagram
Saving the Kiviat Diagram
CHAPTER 9
Running QA C on the Command Line
Environment Variables
Configuration Options
Option Syntax
Toggled Options
Options with Arguments
The –via option
Personality Files
-forgetall
Analyzing Source
Configuring Primary Analysis
Common Analyzer Options
Analyzer Return Codes
Running Secondary Analysis Checks
Running CMA Checks
Viewing Diagnostic Output
Message Browser (viewer)
Project Warning Summary (errsum)
CHAPTER 10
Advanced Topics
Customizing the Message System
Message File (qac.msg)
Message Level Records
Message Group Records
Message Records
Duplicate Warning Messages
User Message Files
Rewording Messages
Moving a Message to a New Group
Duplicating a Message Number at a Different Level
Changing the Level or Description of a Message Group
Renaming Message Levels
Adding a New Message
Formatting Message Output
Message Display
Conditional Formatting
Message Text Control
An Example Message Format
Writing Secondary Analysis Checks
Global Data Analysis
Library Usage
Writing Messages to the Error File
Batch usage of errwrt
Writing Custom Reports
APPENDIX A
Personalities
Message Personality
Analyzer Personality
Compiler Personality
APPENDIX B
Configuration Options
Appendix C
The Components of Function Structure
APPENDIX D
The Calculation of Metrics
Function-Based Metrics
File-Based Metrics
Project-Wide Metrics
APPENDIX E
Program Return Codes
APPENDIX F
Metric Output File
Relationship Records
Relationship Type Records
External Reference Records
Define Records
Control Graph Records
Metrics Records
Pragma Records
Literal Records
APPENDIX G
QA C Utilities
r_basename
r_close
r_fields
r_grep
r_sort
r_uniq
APPENDIX H
Code-based Suppression
Atomics of Diagnostics
Code-based Annotations
Location Tag Syntax
Predefined Location Tags
Suppression Syntax
Continuous Suppression Syntax
Examples
Single instance suppression
Range suppression using location tags
Range suppression using line counting
Continuous suppressions
Suppressions in header files
Suppression input failures
Appendix I
Naming Convention Checking
Introduction
Configuration Basics
Configuration File
Rule Format (JSON Syntax)
Rule Names
Filename
Included File
Definition
Space
Scope
Linkage
Type
Flags
Pattern
Invert
Message Number
Perl-Compatible Regular Expressions
Matching Characters
Matching a Number of Times
Anchoring
Alternate Matching
Escaping Special Characters
Configuration File Example
Getting Feedback on Errors
Configuration File
JSON Syntax Errors
Unknown Name
Unknown value
Regular Expressions
Appendix J
Baselining Details
How to Generate a Baseline
Generating a Baseline via Menu
Generating a Baseline via Custom Report
Generating a Baseline from the Command Line
Editing the Command Line
Table of Baseline Parameters
Generating a Baseline via Secondary Analysis
Modifying Source
Copying the Original Source and Baseline
Synchronizing the Baseline Data with Working Source
Applying the Baseline to Working Source
Modifying the Baseline
Hide/Show Messages
Baseline Admin Mode
Restrictions
Marking Message Groups
Updating the Baseline
Using a Version Control System with Baselining
Requirements
Version Identification
PRQA Helper Application
Usage Details: PRQA Helper Application
Setting up Baselining with VCS
INDEX
QA·C 8.1 SOURCE CODE ANALYZER USER GUIDE FOR WINDOWS May 2013 This document describes functionality and GUI of the QA·C Source Code Analyzer application for Windows. © 2013 Programming Research Ltd
IMPORTANT NOTICE DISCLAIMER OF WARRANTY The staff of Programming Research Ltd have taken due care in preparing this document which is believed to be accurate at the time of printing. However, no liability can be accepted for errors or omissions nor should this document be considered as an expressed or implied warranty that the products described perform as specified within. COPYRIGHT NOTICE This document is copyrighted and may not, in whole or in part, be copied, reproduced, disclosed, transferred, translated, or reduced to any form, including electronic medium or machine-readable form, or transmitted by any means, electronic or otherwise, unless Programming Research Ltd consents in writing in advance. TRADEMARKS PRQA, the PRQA logo, and QA·C are registered trademarks of Programming Research Ltd. Windows is a registered trademark of Microsoft Corporation. CONTACTING PROGRAMMING RESEARCH LTD For technical support, contact your nearest Programming Research Ltd authorized distributor or you can contact Programming Research's head office: by telephone on by fax on or by e-mail on +44 (0) 1 932 888 080 +44 (0) 1 932 888 081 support@programmingresearch.com www.programmingresearch.com © 2013 Programming Research Ltd 2
Table of Contents IMPORTANT NOTICE ............................................................................................................................................ 2 CHAPTER 1 .......................................................................................................................................................... 12 INTRODUCTION TO QA·C ........................................................................................................................... 12 QA·C ACTION OVERVIEW .......................................................................................................................... 12 CHAPTER 2 .......................................................................................................................................................... 14 PROJECTS ................................................................................................................................................ 14 Opening a QA·C 8.0 Project .......................................................................................................................... 14 Upgrading an 8.0 Project ............................................................................................................................... 14 Using an old Project Configuration File ......................................................................................................... 14 Creating a Project Automatically ................................................................................................................... 15 Creating a Project Manually .......................................................................................................................... 15 Reopening Projects ....................................................................................................................................... 16 Project Folders .............................................................................................................................................. 16 Making File Selections ................................................................................................................................... 17 Relative Path and Environment Variable Support ......................................................................................... 17 Root Path ........................................................................................................................................................................................ 17 GUI-based Environment Variable Creation ..................................................................................................................................... 18 Applying Relative Paths and Environment Variables ...................................................................................................................... 18 CHAPTER 3 .......................................................................................................................................................... 21 CONFIGURING QA·C ................................................................................................................................. 21 Configuring Your Compiler Personality ......................................................................................................... 21 Setting System Header Files ........................................................................................................................................................... 21 Setting System Macros ................................................................................................................................................................... 22 Setting Implementation Defined Types .......................................................................................................................................... 22 Compiler Extensions ....................................................................................................................................................................... 23 Standard Extensions ....................................................................................................................................................................... 23 Redefinition of Extended Data Types ............................................................................................................................................. 24 Operators ....................................................................................................................................................................................... 24 Additional Include Files................................................................................................................................................................... 24 Identifiers ....................................................................................................................................................................................... 24 Configuring Your Analyzer Personality .......................................................................................................... 25 Project Header Files ........................................................................................................................................................................ 25 Project Macros ............................................................................................................................................................................... 25 Brace Style and Tab Spacing ........................................................................................................................................................... 25 © 2013 Programming Research Ltd 3
Warning Calls .................................................................................................................................................................................. 25 Pragma Blocks ................................................................................................................................................................................ 25 K&R Compatibility .......................................................................................................................................................................... 26 Configuring Your Message Personality ......................................................................................................... 26 Choosing a Message Subset ........................................................................................................................................................... 26 Standard Message File .................................................................................................................................. 27 Level 0: Information ....................................................................................................................................................................... 27 Level 1: Obsolete Messages ............................................................................................................................................................ 27 Level 2: Minor ................................................................................................................................................................................. 27 Level 3: Major ................................................................................................................................................................................. 27 Level 4: Local Standards ................................................................................................................................................................. 28 Level 5: Dataflow Analysis .............................................................................................................................................................. 28 Level 6: Portability .......................................................................................................................................................................... 28 Level 7: Undefined Behavior ........................................................................................................................................................... 29 Level 8: Language Constraints ........................................................................................................................................................ 29 Level 9: Errors ................................................................................................................................................................................. 29 Message Suppression ................................................................................................................................... 29 Code-based Suppression Syntax ..................................................................................................................................................... 29 Suppression of Warnings with #pragma ......................................................................................................................................... 30 Project Configuration File .............................................................................................................................. 31 Dataflow Analysis Settings ............................................................................................................................ 31 Personalities and Analysis ............................................................................................................................. 33 Configuration of Application Options ............................................................................................................. 33 Editor Preferences: Choosing Your Editor and Browser ................................................................................................................. 33 Setting the Housekeeping Options ................................................................................................................................................. 34 Default Personalities....................................................................................................................................................................... 34 Environment ................................................................................................................................................................................... 34 Product Extensions ......................................................................................................................................................................... 35 CHAPTER 4 .......................................................................................................................................................... 36 ANALYZING SOURCE CODE .......................................................................................................................... 36 Deep Flow Dataflow Analysis (DF^2) ............................................................................................................ 36 Recommendations for First Time Operation of DF^2 ..................................................................................................................... 37 Recommendations for Fine-Tuning DF^2 Configuration Settings ................................................................................................... 37 Commencing Analysis ................................................................................................................................... 38 Analysis Output Files ..................................................................................................................................... 38 .err Files .......................................................................................................................................................................................... 39 .met Files ........................................................................................................................................................................................ 39 © 2013 Programming Research Ltd 4
.i Files .............................................................................................................................................................................................. 39 Managing Output Files .................................................................................................................................. 40 Suppressing Analysis Output from Header Files ............................................................................................................................. 40 Secondary Analysis ....................................................................................................................................... 41 Configuring Secondary Analysis ...................................................................................................................................................... 41 Secondary Analysis Naming Convention Checking ...................................................................................... 42 Running Multiple Secondary Analysis ........................................................................................................... 42 Cross-Module Analysis .................................................................................................................................. 43 Configuring Cross-Module Analysis ................................................................................................................................................ 43 CMA Output Files ............................................................................................................................................................................ 44 Running Cross-Module Analysis ..................................................................................................................................................... 44 Default-supplied CMA Settings ....................................................................................................................................................... 44 Analysis Log .................................................................................................................................................. 45 CHAPTER 5 .......................................................................................................................................................... 46 VIEWING ANALYSIS RESULTS: MESSAGE BROWSER .......................................................................................... 46 The Source View ............................................................................................................................................................................. 47 Context Messages ...................................................................................................................................................................... 47 Navigating Through Messages .................................................................................................................................................. 47 Displaying Message Help ........................................................................................................................................................... 48 Displaying Line Numbers ........................................................................................................................................................... 48 Warning Summary View ................................................................................................................................................................. 48 Message Groups ........................................................................................................................................................................ 48 Files ............................................................................................................................................................................................ 48 CMA Results ............................................................................................................................................................................... 48 Syntax Errors .............................................................................................................................................................................. 48 Active MG .................................................................................................................................................................................. 48 Warning List View ........................................................................................................................................................................... 49 Changing the Format of Annotated Source .................................................................................................................................... 49 Using Annotated Source Code ........................................................................................................................................................ 49 Sample Annotated Source Code Listing .................................................................................................................................... 50 The Corrected Source File .......................................................................................................................................................... 54 Displaying Diagnostic Messages ................................................................................................................................................ 57 Overview of Baselining .............................................................................................................................................................. 57 Message Groups and Active Message Groups .......................................................................................................................... 58 CHAPTER 6 .......................................................................................................................................................... 59 REPORTS ................................................................................................................................................. 59 © 2013 Programming Research Ltd 5
Project Warning Summary ............................................................................................................................. 59 Warning Summary Message Count ................................................................................................................................................ 60 Identifier Declarations .................................................................................................................................... 60 Close Name Analysis .................................................................................................................................... 60 External Name Cross-Reference .................................................................................................................. 60 COCOMO Cost Model ................................................................................................................................... 61 Programmer Time ........................................................................................................................................................................... 61 Development Time ......................................................................................................................................................................... 61 Tool Usage ...................................................................................................................................................................................... 62 Project Metrics ............................................................................................................................................... 62 CHAPTER 7 .......................................................................................................................................................... 63 CODE STRUCTURE ..................................................................................................................................... 63 RELATIONSHIPS ........................................................................................................................................ 63 Choosing Relationships ................................................................................................................................. 64 Searching for Relationships ........................................................................................................................... 64 Displaying Parent and Child Nodes ............................................................................................................... 64 Starting the Graph from an Individual Node .................................................................................................. 64 Selecting Additional Files .............................................................................................................................. 64 Printing the Relationship Graph .................................................................................................................... 64 Saving the Relationship Graph ...................................................................................................................... 64 Viewing Source Code .................................................................................................................................... 64 Drawing the Graph Vertically ......................................................................................................................... 65 FUNCTION STRUCTURE ............................................................................................................................... 65 Searching for Functions ................................................................................................................................. 65 Display Simple Functions .............................................................................................................................. 65 Selecting Additional Files .............................................................................................................................. 65 Printing the Structure Diagram ...................................................................................................................... 65 Saving the Structure Diagram ....................................................................................................................... 65 Viewing Function Structure Source Code ..................................................................................................... 66 CHAPTER 8 .......................................................................................................................................................... 67 METRICS ................................................................................................................................................. 67 METRIC THRESHOLDS IN ANALYSIS ............................................................................................................... 67 Threshold Order ............................................................................................................................................................................. 68 The Metrics Browser ...................................................................................................................................... 68 Metric Name Listing Panel .............................................................................................................................................................. 68 © 2013 Programming Research Ltd 6
Name Listing Panel ......................................................................................................................................................................... 68 Metrics Graph ................................................................................................................................................................................. 69 Selecting Additional Files ................................................................................................................................................................ 69 Reloading Metrics Data .................................................................................................................................................................. 69 Filtering Metrics.............................................................................................................................................................................. 69 Changing the Metric Group ............................................................................................................................................................ 70 Magnifying the Graph ..................................................................................................................................................................... 70 Exporting Metrics ........................................................................................................................................................................... 70 Creating a Demograph File ............................................................................................................................................................. 70 Printing the Graph .......................................................................................................................................................................... 70 Saving the Metrics Graph ............................................................................................................................................................... 70 Displaying a Kiviat Diagram ............................................................................................................................................................ 70 Displaying Source Code .................................................................................................................................................................. 70 Displaying Function Structure ......................................................................................................................................................... 71 The Demographics Browser .......................................................................................................................... 71 The Demographics Listing ............................................................................................................................................................... 72 Selecting Additional Files ................................................................................................................................................................ 72 Reloading Metrics Data .................................................................................................................................................................. 72 Saving the Demographics Graph .................................................................................................................................................... 72 Printing the graph ........................................................................................................................................................................... 72 Displaying Source Code .................................................................................................................................................................. 72 Displaying Function Structure ......................................................................................................................................................... 72 Displaying a Kiviat Diagram ............................................................................................................................................................ 72 Exporting Metrics ........................................................................................................................................... 72 The Kiviat Diagram ........................................................................................................................................ 73 Changing the display ....................................................................................................................................................................... 73 Selecting Metrics ............................................................................................................................................................................ 73 Printing the Kiviat Diagram ............................................................................................................................................................. 74 Saving the Kiviat Diagram ............................................................................................................................................................... 74 CHAPTER 9 .......................................................................................................................................................... 75 RUNNING QA·C ON THE COMMAND LINE ..................................................................................................... 75 Environment Variables .................................................................................................................................. 75 Configuration Options .................................................................................................................................... 75 Option Syntax ................................................................................................................................................................................. 75 Toggled Options.............................................................................................................................................................................. 76 Options with Arguments................................................................................................................................................................. 76 The –via option ............................................................................................................................................................................... 76 © 2013 Programming Research Ltd 7
Personality Files .............................................................................................................................................................................. 76 -forgetall ......................................................................................................................................................................................... 77 ANALYZING SOURCE .................................................................................................................................. 77 Configuring Primary Analysis ........................................................................................................................ 77 Common Analyzer Options ............................................................................................................................................................. 77 Analyzer Return Codes ................................................................................................................................................................... 78 Running Secondary Analysis Checks ........................................................................................................... 78 Running CMA Checks ................................................................................................................................... 79 VIEWING DIAGNOSTIC OUTPUT ................................................................................................................... 79 Message Browser (viewer) ............................................................................................................................ 79 Project Warning Summary (errsum) ............................................................................................................. 79 CHAPTER 10 ........................................................................................................................................................ 81 ADVANCED TOPICS .................................................................................................................................... 81 Customizing the Message System ................................................................................................................ 81 Message File (qac.msg) ................................................................................................................................................................... 81 Message Level Records ................................................................................................................................................................... 81 Message Group Records ................................................................................................................................................................. 81 Message Records ............................................................................................................................................................................ 82 Duplicate Warning Messages ......................................................................................................................................................... 82 User Message Files ....................................................................................................................................... 82 Rewording Messages ...................................................................................................................................................................... 83 Moving a Message to a New Group ............................................................................................................................................... 83 Duplicating a Message Number at a Different Level ...................................................................................................................... 83 Changing the Level or Description of a Message Group ................................................................................................................. 83 Renaming Message Levels .............................................................................................................................................................. 83 Adding a New Message .................................................................................................................................................................. 83 Formatting Message Output .......................................................................................................................... 83 Message Display ............................................................................................................................................................................. 84 Conditional Formatting ................................................................................................................................................................... 84 Message Text Control ..................................................................................................................................................................... 85 An Example Message Format ......................................................................................................................................................... 86 Writing Secondary Analysis Checks .............................................................................................................. 86 Global Data Analysis ....................................................................................................................................................................... 87 Library Usage .................................................................................................................................................................................. 87 Writing Messages to the Error File ................................................................................................................................................. 87 Batch usage of errwrt ..................................................................................................................................................................... 88 © 2013 Programming Research Ltd 8
分享到:
收藏