Understanding Devpartner ®
Total Page:16
File Type:pdf, Size:1020Kb
Understanding DevPartner ® DevPartner Studio Professional Edition DevPartner for Visual C++ BoundsChecker Suite Release 8.1 Technical support is available from our Technical Support Hotline or via our FrontLine Support Web site. Technical Support Hotline: 1-800-468-6342 FrontLine Support Web Site: http://frontline.compuware.com This document and the product referenced in it are subject to the following legends: Access is limited to authorized users. Use of this product is subject to the terms and conditions of the user’s License Agreement with Compuware Corporation. © 2006 Compuware Corporation. All rights reserved. Unpublished - rights reserved under the Copyright Laws of the United States. U.S. GOVERNMENT RIGHTS Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in Compuware Corporation license agreement and as provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii)(OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable. Compuware Corporation. This product contains confidential information and trade secrets of Com- puware Corporation. Use, disclosure, or reproduction is prohibited with- out the prior express written permission of Compuware Corporation. DevPartner® and BoundsChecker are trademarks or registered trademarks of Compuware Corporation. Acrobat® Reader copyright © 1987-2002 Adobe Systems Incorporated. All rights reserved. Adobe, Acrobat, and Acrobat Reader are trademarks of Adobe Systems Incorporated. All other company or product names are trademarks of their respective owners. US Patent Nos.: 5,987,249, 6,332,213, 6,186,677, 6,314,558, 6,760,903 B1,and 6,016,466 April 24, 2006 Table of Contents Preface Who Should Read This Manual . ix What This Manual Covers . x Conventions Used In This Manual . x For More Information . xi Chapter 1 Introducing DevPartner Introducing DevPartner . 1 What Is DevPartner? . 2 DevPartner Features . 2 Error Detection . 2 Static Code Analysis . 4 Performance Analysis . 4 In-Depth Performance Analysis . 4 Coverage Analysis . 5 Memory Analysis . 5 System Comparison . 6 Interoperability . 6 Distributed Data Collection . 6 DevPartner Support for Visual Studio . 7 Web Services Analysis . 7 Language/Technology Support . 7 Managed vs. Unmanaged Code . 8 Configuration . 8 Instrumentation Model . 8 Visual Studio Team System Support . 8 DevPartner and Visual Studio . 9 iii IDE Integration . 9 Menus and Toolbars . 9 Using DevPartner . 9 General User Interface Concepts . 10 DevPartner Methodology . 11 Software Development Life Cycle Model . 11 Definition and Planning . 11 Developing the Application . 12 Testing the Application Internally and Externally . 13 Deploying the Application to End Users . 13 DevPartner Integration into the Enterprise . 14 Chapter 2 Error Detection Check Early, Check Often—The Best Error Detection Philosophy . 15 The Benefits of Using DevPartner Error Detection . 16 Comprehensive Error Detection . 16 Flexible Debugging Environment . 19 Integration with the Visual Studio Debugger . 19 Advanced Error Analysis and Event Logging . 19 Open Error Detection Architecture . 20 DevPartner Error Detection Main Window . 20 Results Pane . 20 Details Pane . 22 Source Pane . 22 Settings Dialog Box . 22 An Example: Call Validation . 23 Using Other Settings Categories . 24 Program Error Detected Dialog Box . 25 Buttons on the Program Error Detected Dialog Box . 25 Memory and Resource Viewer Dialog Box . 27 The Memory and Resource Viewer User Interface . 28 Suppression and Filtering Dialog Boxes . 29 Suppressing Errors . 29 Filtering Errors . 29 Suppression and Filtering User Interface . 30 Creating and Saving Suppression and Filter Files . 31 DevPartner Error Detection Integration with Visual Studio . 31 Using DevPartner Error Detection with Visual Studio 2003/2005 . 33 Integration with Visual Studio 6 . 34 Running DevPartner Error Detection from the Command Line . 35 Running FinalCheck from the Command Line . 36 iv Understanding DevPartner Chapter 3 Static Code Analysis DevPartner Code Review . 37 DevPartner Code Review User Interface . 38 Code Review Options . 53 DevPartner Code Review Toolbar Components . 55 Naming Analysis Functionality . 58 Naming Guidelines Naming Analyzer . 58 Hungarian Naming Analyzer . 61 Call Graph Analysis Functionality . 62 DevPartner Code Review Rule Manager . 67 Creating New Rules Using Regular Expressions . 68 Matching Lines Exceeding 90 Characters . 69 Matching Tabs Used Instead Of Spaces . 70 Matching Instances Where Code Catches System.Exception . 71 Matching Methods Having More Than One Return Point . 72 Enforcing Initialization Of Variables When They Are Defined . 72 Matching Instances Of More Than One Statement Per Line . 74 Ensuring Open Braces Are Placed On A Separate Line . 74 Ensuring Loop Counters Are Not Modified Inside the Loop Bodies . 75 Chapter 4 Automatic Code Coverage Analysis Introducing DevPartner Coverage Analysis . ..