Develop Fast, Reliable Code Rational PurifyPlus for UNIX

Customers and end-users demand that your Automatically Pinpoint code works reliably and offers adequate execu- Hard-To-Find Bugs tion performance. But the reality of your deliv- Reliability problems, such as runtime errors and ery schedule often forces you to sacrifice relia- memory leaks in /C++, can kill a bility or performance – sometimes both. And company’s reputation. These errors are hard to without adequate time for testing, you may not find, hard to reproduce, and hardest of all, to even know these issues exist. So you reluctant- explain to customers who discover them. No ly deliver your code before it’s ready, knowing one intentionally relies on their customer as good and well that the integrity of your work their "final QA." But without adequate tools, this may be suspect. is the inevitable outcome. Even the best pro- Rational Software has a solution for ensuring grammers make mistakes in their coding. that your code is both fast and reliable. Rational PurifyPlus for UNIX automatically finds HIGHLIGHTS Rational® PurifyPlus for UNIX combines runtime these reliability errors in C/C++ code that can’t error detection, application performance profil- Automatically finds runtime be found in any other way. It finds the errors ing, and code coverage analysis into a single, errors in C/C++ code even before visible symptoms occur (such as a complete package. Together, these functions system crash or other spurious behavior). And help developers ensure the highest reliability Quickly isolates application it shows you exactly where the error originated, and performance of their software from the very performance bottlenecks regardless of how remote from the visible first release. symptom of trouble. Graphically identifies untested Rational® PurifyPlus for UNIX integrates with Rational PurifyPlus for UNIX finds these kinds of code your existing development processes. It can errors even in third party components where operate with or without . You can you don’t have the source code. This enables Works with or without source choose to incorporate all of its functionality into you to better manage the quality of code that code your daily builds, or use just parts of it on an you deliver but didn’t write and don’t have easy ad-hoc basis. PurifyPlus for UNIX integrates access to change. with the development tools you use for UNIX No code recompiles needed application development. PurifyPlus for UNIX is PurifyPlus for UNIX includes the following easy to adopt, easy to learn, and easy to use. runtime error checking features: Instruments entire application, including 3rd party libraries If you need to develop UNIX code that is both • Pinpoints runtime and memory-related fast and reliable, PurifyPlus for UNIX is your errors in C/C++ code Defects can be entered into runtime analysis solution. • Works on your entire application, including Rational ClearQuest directly from the PurifyPlus GUI

Rational PurifyPlus quickly pinpoints errors throughout your code. Develop Fast, Reliable Code

third-party components—with or without Performance issues are not necessarily related source to algorithmic errors. An algorithm may be func- tionally correct and accurate, but simply ineffi- • Quickly analyzes your executables without cient in its implementation. There often exists requiring a recompile multiple ways to code an algorithm so that it is • Finds errors in C/C++ code including heap- functionally equivalent to the original yet related and stack-related errors, pointer notably faster in computer execution. PurifyPlus errors, memory usage errors and handle for UNIX identifies performance bottlenecks, errors allowing the designer or to deter- mine if such optimizations are in order. • Fully integrated with code coverage analysis features of PurifyPlus for UNIX to identify When working on performance issues, it is criti- untested code cal to be able to measure improvements analyt- ically. The PurifyPlus "Diff" function enables • Lets you control the level of error checking developers or performance engineers to vali- per code module date the impact of changes on improvements in performance and scalability, even on small Highlight Performance Bottlenecks test cases. Performance issues—sometimes known as "the Rational PurifyPlus for UNIX provides a global, final bug"—often get minimal attention, and graphical view of the performance data you then only at the very end of the development need to quickly identify performance problems lifecycle. When the code finally "works," there is from the beginning of the development a tendency to prematurely deliver to the process. PurifyPlus for UNIX offers truly repeat- users—maybe because of schedule pressure, able and accurate results because it uses actu- or maybe because performance issues can be al clock or machine cycle counts rather than hard to find and even harder to resolve. the sampling methods used by traditional per- Rational PurifyPlus for UNIX gives developers a formance profiling tools. This reduces the diffi- tool that helps developers quickly isolate per- culty and guesswork of performance tuning formance bottlenecks within the application because it helps you to analyze precise per- and to understand their impact. Real perform- formance data and immediately focus in on the ance gains come from correcting or improving changes that will have the greatest perform- inefficient algorithms or detailed coding deci- ance impact. sions. PurifyPlus for UNIX offers repeatable per- PurifyPlus for UNIX includes the following appli- formance data (not just based on sampled cation performance analysis features: data) and clear, concise views of performance profile data to help developers identify the • Highlights application performance bottle- algorithms that are eating away at perform- necks in C/C++ code and Solaris-based ance. The PurifyPlus Call Graph, in particular, Java code highlights algorithmic performance data per thread basis.

The Rational PurifyPlus graphical display of performance data makes it easy see which functions to ‘tune’ first, because thicker lines indicate more time consumed. • Quickly analyzes your executables without PurifyPlus for UNIX includes the following code requiring a recompile coverage analysis features:

• Provides accurate, thorough and repeatable • Identifies untested code throughout C/C++ performance data on all functions, with or applications and Solaris-based Java appli- without source code cations

• Allows the comparison of multiple versions • Quickly analyzes your executables without to immediately highlight the precise impact requiring a recompile of changes on application performance • Analyzes your entire application including • Lets you control the level of performance components, with or without source code data collected per module • Presents coverage statistics for each run of the executable, in an intuitive color-coded Avoid Shipping Untested Code display Any testing tool is only as good as the cover- • DIFF and MERGE capabilities automatically age provided by its test suite. But judging the allow you to compare and merge coverage quality of a test suite can be difficult. In particu- data from multiple runs of the same exe- lar, it is hard to know if you have tested all cutable for an aggregate view of coverage paths in which the code can execute, and if data not, what sections you have missed. You don’t want your customer to be the first to exercise • Fully integrated with the memory error and any portion of your application. But without detection features of PurifyPlus exhaustive testing efforts, that often happens. for UNIX

Rational PurifyPlus for UNIX solves this problem • Lets you control the level of code coverage by allowing developers to see exactly what parts data collected per module of their code have been tested, and more impor- tantly, what parts have not been tested. A color- Instantly Become More Productive coded display shows the developer code cover- With Rational PurifyPlus for UNIX, you benefit age analysis results on a function or line-by-line not just from the power of the best-in-class fea- basis, even showing which code fragments on a tures described above, but also from the pow- particular line were (or were not) tested. erful integrations these tools offer. Everything Verifying test suite coverage (and improving on you need is integrated into one product. it where needed) is the best possible way to PurifyPlus for UNIX is designed to work within maximize the benefit of using Rational PurifyPlus your existing development environment, allow- for UNIX. PurifyPlus for UNIX makes it easy for ing you to develop fast, reliable code more pro- you to test your code coverage, whether you ductively. are checking for run-time errors, investigating Rational PurifyPlus for UNIX integrates with performance issues, or both. Verifying test suite Rational ClearQuest® for UNIX for reporting and coverage is the final step in guaranteeing that managing defects. You can submit defects your customer will receive the highest quality directly from the PurifyPlus for UNIX GUI, and code the first time, every time. then track them in ClearQuest. Incrementally Improve Code Unify Your Team With SPECIFICATIONS Reliability or Performance Rational Suite Supported Environments

Rational PurifyPlus for UNIX consists of Rational Rational PurifyPlus for UNIX is included in Sun Platform Purify® for UNIX, Quantify® for UNIX, and Rational Suite® DevelopmentStudio™ for UNIX . • Sun Solaris 2.6, 7, 8, 9 ® PureCoverage for UNIX, packaged together at The Rational Suite product family provides a • Sun SPARC systems an attractive price with a common install and comprehensive development platform that will • Languages: C, C++ (all fea- common licensing for convenience. Rational unify your team, optimize individual productivity, tures); Java (performance also sells each of these individual tools sepa- and simplify adoption of the full Rational solution. profiling & code coverage analysis only) rately for organizations that want to begin improving their code reliability or performance • Full 64 bit "wide-mode" sup- Accelerate Success with port for memory error & leak more incrementally. detection and performance Rational Services profiling on Solaris 7 and Like all Rational tools, Rational PurifyPlus for above; 32 bit support for Runtime Analysis for UNIX is supported by an extensive, worldwide code coverage analysis Embedded Systems service organization. Explore more than a thou- • support through Sun ONE Studio 7 (Forte PurifyPlus is designed to be used on a host sand articles, white papers, courses, and arti- CC 5.4 compiler), and GCC computer. Embedded application developers facts online at the Rational Developer through v3.1 (32-bit only) concerned with memory use or performance Networksm. Build your team's capability through bottlenecks can use PurifyPlus during simula- expert consulting and technical support servic- HP Platform • HP-UX 10.20, 11.0, 11i tion execution on the host. For target system es tailored for Development Teams using (11.11) runtime analysis, Rational offers memory leak Rational tools. And take advantage of more • HP 9000 Series 700 and and performance bottleneck analysis in a sepa- than 60 courses available from Rational Series 800 workstations rate product called Rational Test RealTime. See University to speed technology deployment • Languages: C, C++ http://www.rational.com/products/testrt/index.jsp and accelerate your project’s delivery. Available • Full 64 bit “wide-mode” for details. where and when needed, Rational Services support on HP-UX 11.0 and improve self-sufficiency as they build a founda- 11i (11.11) tion for continuous software development • Compiler support for HP improvement. aCC 3.31, 3.33 and 3.34; GNUPro 98r2; and GCC through v3.1 • Support for ld/dld version 11.30

Rational Software The code coverage analysis features of Dual Headquarters Rational PurifyPlus highlight which portions of your code have not been tested. 18880 Homestead Road Cupertino, CA 95014

20 Maguire Road Lexington, MA 02421

Toll-free: (800) 728-1212 e-mail: [email protected]

IBM is a trademark of International Business Machines Corporation in the United States, other countries, or both. Rational, the Rational logo, Purify, Quantify, PureCoverage, PurifyPlus, Rational Suite, Web: www.rational.com and Rational Test are trademarks or registered trademarks of Rational Software Corporation in the United States and/or in other countries. All other names are used for identification purposes only and are trademarks or registered trademarks of their respective companies. ALL RIGHTS RESERVED. Made in the U.S.A. International Locations: © Copyright 2003 by Rational Software Corporation. www.rational.com/worldwide D610E; Rev.2/03 Subject to change without notice.