Manufacturing Part Number B6454-97413 June
C++ SoftBench Users Guide
 Legal Notices
Page
 Printing History
 Boldface font
Convention Description
Page
 Contents
 Using SoftBench Configuration Manager
 Using SoftBench Editors
 Using SoftBench Class Graph/Editor
 Using SoftBench Debugger
 Contents
 Using SoftBench Debugger Data Graph Window
 Using Static Graphs
 Using SoftBench File Compare
 Using SoftBench Graph Windows
 Using Regular Expressions
 Contents
 Maximizing Your Results with
 Major Software Development Tasks Supported by SoftBench
SoftBench Task Flow
 More sets of build instructions and dependencies
Understanding Projects
SoftBench Tools Interacting with Project and Files
 Building Targets
 Understanding Build Configurations and Packages
 Understanding Projects
 Simplified Build Configuration, Package, and Transform Series
Choosing Between Project Build and External Build Models
 Understanding Projects
 One Project, One Author
Sharing Projects with a Team
One Project, Many Authors
 Team Members Cloning the Project Definition
 One Project with Subprojects, Many Authors
Team Members Using Subprojects
Team Members Sharing the Project Definition
 Sharing Projects with a Team Chapter
 Planning Your Project
 SoftBench Static Analyzer
Using the SoftBench Integrated Environment
Editors
Configuration Management
 SoftBench Message Monitor
Using SoftBench Tools Throughout Your Development Cycle
SoftBench Debugger
SoftBench File Compare
 Using SoftBench Tools Together
 Tools That Can Directly Invoke Other Tools
Using SoftBench Tools on Multiple Projects
 10 Iconize and Normalize Project Buttons
Using SoftBench Tools as Standalone Tools
 Copying Data between SoftBench Tools
Reusing Tool Windows
 An Example SoftBench Session
 An Example SoftBench Session
 Learning SoftBench
 Using SoftBench
 Shell Syntax
Prerequisites to Using SoftBench
 Starting SoftBench
 Unexpanded SoftBench Window
Understanding SoftBench Window Areas
 Window Area Description
Description of SoftBench Window Areas
 Static, and Optimized compiler
 Expanded SoftBench Window Displaying Builder
Understanding the Builder
 Expanded SoftBench Window Displaying SoftBench
Understanding the SoftBench CodeAdvisor
CodeAdvisor
 Understanding SoftBench Window Areas
 Creating a Project Using Project Build
Setting Up a Project
 Create Project Dialog Box
 Create Project Dialog Box for External Build
Creating a Project Using External Build
 Cloning a Project from an Existing Project
 Repartitioning an Existing Project
 Creating a Subproject
 Modifying a Project Definition
 Creating Files within a Project
 Add Files to Project Dialog Box
Adding Existing Files to a Project
 Adding Existing Files to a Project
 Creating a Target
Defining Targets for Project Build
 Specifying Dependency Relationships
 Manage Build Configuration Dialog Box
Customizing Build Configurations
 Using Build Packages
 Defining Targets for External Build
External Build Command Dialog Box
 Defining Targets for External Build
 Build Model Operations in the Target Graph
Using the Target Graph
 Operation Project Build External Build
Understanding the Graph
 Graph Node States
Displaying Dependencies
Color Meaning
 Building a Selected Target
Controlling Graph Complexity
Starting Your Configured Editor
 Building Projects and Targets
Setting the Compile Mode
 Compile Mode Settings Default Compiler Flag
 Previewing the Build
Using the External Build Command Dialog Box
 Compiling Instead of Building
Handling Errors
Building Subprojects
 Browsing and Correcting Build Errors
Interpreting Error Messages
 Running the Build on a Remote System
 Checking Your Code Using SoftBench CodeAdvisor
 Running Other SoftBench Tools
 Managing Your SoftBench Environment
 Adding and Removing Tool Icons
 Registering New Tools with SoftBench
Choosing Tool Preferences
 Accessing Distributed Data and Tools
Customizing SoftBench by Setting Resources
 Integrating with CDE
Running SoftBench on a Remote System
Stopping SoftBench
 Restoring Your Previous SoftBench Session
 11 SoftBench Online Help Window
Getting Help
 Accessing On Item Help
Using the Help Menu
 Condition or Explanation Message
If Something Goes Wrong
 For More Information
 For More Information Chapter
 Using SoftBench Configuration
 Integration of SoftBench CM with SoftBench
Understanding SoftBench CM
 Understanding SoftBench CM
 Getting Started a Brief Overview
 Choose Directory Create…
 Choose Actions Check Out to Local Directory
 Browsing Local Network Servers and Archives
Managing the Archive System
 Viewing Local Servers and SoftBench CM Archives
 File or directory name
Creating an Archive Directory
SoftBench CM Main Window
 Local Directory
Creating a Mapping between an Archive Directory
SoftBench CM File Mapping
 Modifying Mappings between Local and Archive Directories
 100
Show / Modify Mappings Dialog Box
 Chapter 101
 102
Managing Archive Files and Directories
Creating Initial Archive Files
Checking Out Archive Files
 Updating a Local Directory
Cancelling Archive File Check Out
 Viewing Contents of Archive Files
 Viewing an Archive File
 Locking an Archive File
Deleting Archive Files and Directories
106
 Viewing the Revision History of Archive Files
Breaking a Lock on an Archive File
Break File Lock Dialog Box
 108
Show Revision History Dialog Box for an Archive File
 Setting Archive Display Filters
 110
Managing Local Files
Modifying Local Source Files
Checking In Modified Files
 Chapter 111
 Understanding Symbolic Names
Creating a Default Symbolic Name for Archive Files
112
 Symbolic Name Example
Defining Symbolic Names
 114
Symbolic Names and Revision Numbers File File Y
Actions and Results After Setting Symbolic Name List
Action Result
 SoftBench CM Command Line Man Pages
Using the SoftBench CM Command Line Interface
Man Task Description
 116
 Using SoftBench Editors
 118
Using Editors with Projects
 Configuring SoftBench vi Editor
Configuring an Editor
Configuring SoftBench Program Editor
 120
 Starting the Configured SoftBench Editor
 122
Editing with SoftBench XEmacs Editor
 Using SoftBench XEmacs
 124
Accessing Help
Editing Multiple Files
SoftBench XEmacs Main Window
 Chapter 125
 SoftBench vi Editor Window
Editing with SoftBench vi Editor
126
 Using the Mouse Pointer Versus the Text Cursor
 If the vi autowrite SoftBench vi Editors behavior Option
Reusing the Edit Window
128
 Selecting, Copying, and Pasting Text
 Building a Project
Accessing SoftBench Static Analyzer from the Editor
Calling Other SoftBench Tools from the Editors
Compiling a Program File
 Using Configuration Management
Setting Breakpoints in a Program File
 132
 Using SoftBench Class
 Understanding the SoftBench Class Graph/Editor Use Model
Editing C++ Structures with SoftBench Class Graph/Editor
134
 SoftBench Class Graph/Editor Use Model
 136
Synchronizing Editor Views and the Static Database
 Chapter 137
 Viewing the Existing Class Hierarchy
Using SoftBench Class Graph/Editor in Your Work
138
 Modifying Existing Components
Creating New Components
 140
Deleting Existing Components
 Working with Class Templates
Sample Use Models
Creating a New Program
Modifying an Existing Program
 142
 Condition Explanation
 144
 Using SoftBench CodeAdvisor
 146
Using SoftBench CodeAdvisor
 Chapter 147
 148
 Preparing Your Program with Project Build
Performing the Check Code Operation
Preparing Your Program with External Build
 150
Accessing SoftBench CodeAdvisor
Selecting Rule Groups
Checking Your Program
 Violations Display
Viewing Violations
 Filtering Rule Violations
Terminating SoftBench CodeAdvisor
152
 Chapter 153
 154
 Using SoftBench Debugger
 156
Understanding SoftBench Debugger
 Chapter 157
 158
 Preparing Your Program for Debugging
 SoftBench Debugger Window
Using SoftBench Debugger Window Areas
160
 Chapter 161
 162
 Tear Apart Main Toolface
Tearing Apart the Main Toolface
 164
 Specifying the Runtime Environment
Loading or Rerunning an Executable Program
 166
Load Executable Dialog Box
 Specifying the Working Directory and Program Arguments
Setting Environment Variables
Specifying Standard I/O
 168
Specifying Source Locations
 Adding Source Directories for External Builds
Debugging Executables in a Project
 170
Add Source Directories Dialog Box
 Stepping through Your Program
 Interrupting in System or Non-debuggable Routines
Interrupting a Running Program
172
 Chapter 173
 Interacting with a Standard I/O Program
Interacting with Your Program
174
 Interacting with a Window-Smart Program
Interacting with a Terminal-Smart Program
 176
 Specifying Program Location
Specifying Identifier Locations
 178
Specifying Variables
 Chapter 179
 180
 Examining and Changing Data in Your Program
 182
Examining Data in Your Program
 Printing Hex or String Values
Using Debugger Variables
Changing Data in Your Program
 184
Using Expressions
 Using Constants
 Viewing the Call Stack
Calling Functions
186
 Stack View Window
Viewing Thread Stacks
 188
Understanding the Operation of Your Program
 Debugging a Program Using Breakpoints
Setting and Using Breakpoints
 Using the Editable Source Area
Setting a Breakpoint
190
 Break Menu
 Using the Breakpoint Set/Change Dialog Box
Using the Break Menu
192
 Breakpoint Set/Change Dialog Box
Viewing and Modifying Breakpoints
 194
Clearing a Breakpoint
Changing Active / Suspend Status
Changing Verbose / Silent Status
 Executing DDE Commands at a Breakpoint
 196
 Setting Group Breakpoints
Setting C++ Breakpoints
Viewing and Modifying Group Breakpoints
 198
 Setting and Using Watchpoints
 200
Using the Watch Menu
Using the Data Watchpoint Set/Change Dialog Box
Creating Watchpoints
 Data Watchpoint Window
Viewing and Modifying Watchpoints
 202
Clearing a Watchpoint
 Chapter 203
 204
Using the Trace Menu
Tracing Program Flow
Creating Traces
 Viewing Traces
Using the Trace Set/Change Dialog Box
Trace Set/Change Dialog Box
 206
Clearing Traces
 Editing Source Code
Correcting Errors in Your Program
 208
Synchronizing Files
 Debugging Dynamic Libraries
 210
10 Dynamic Images/Libraries Dialog Box
 Tracing Assembly Language
Viewing Assembly Language and CPU Registers
 212
Tracing Registers
 Chapter 213
 Viewing and Editing Intercepts
Handling Signals and Events
214
 Chapter 215
 216
Handling Signals
 Debugging After a Program Fails Core Dump
Signal Error Message Text Name
Debugging with a Core File
 218
 Debugging Forked Processes
 Viewing and Manipulating Threads
Debugging Threaded Applications
220
 Setting Breakpoints on Threads
 222
Attaching the Debugger to a Running Program
 Debugging C++ Programs
 224
 Accessing Inherited C++ Values
Using Breakpoints for Exception Handling
Debugging Static Constructors
 226
 Debugging Optimized Code
 228
Customizing SoftBench Debugger
Specifying Debugger Options
Customizing User Buttons
 Chapter 229
 230
 Chapter 231
 232
Offset argument.
 Chapter 233
 234
 Using SoftBench Debugger Data
 236
Starting and Stopping the Data Graph Window
Beginning a Browsing Session
Stopping a Browsing Session
 Understanding the Layout Control Area
Understanding Data Graph Window Areas
Data Graph Window Areas
 Understanding the Graph Area
Understanding the Display Control Area
238
 Object Selected Actions Allowed
Data Graph Window Action Menus
Reading Nodes
 240
Using Dialog Boxes
Understanding the Window Control Area
Reading Arcs
 Using the Node Values Dialog Box
Using the Graph Area
Displaying New Nodes
 242
Node Values Dialog Box
 Following Selected Pointers
Setting Data Member Values
Node Values Dialog Box Action Menu
Displaying Data Members
 244
Suspending Graph Updates
Deactivating the Graph
Stopping a Graph Process
 Viewing btree
Verifying Correct Data Structures
 246
Binary Tree Node
Continuing Program Execution
Binary Tree Node with Children
 Showing Nodes
Viewing Values of Data Members
Dereferencing Particular Data Members
 Showing Values On the Graph
Viewing Values from Multiple Nodes
Viewing Embedded Arrays
Viewing Values from Embedded Arrays
 Viewing Data Members on The Graph Nodes
 250
 Using SoftBench Static
 252
Starting SoftBench Static Analyzer
 Chapter 253
 Generating Static Data
Preparing to Make Queries
254
 Including Subprojects and Parent Projects
Using the Default Analysis File Set
Updating Static Data without Building
Specifying Static Data to Analyze
 Keeping Analysis Files Current
Customizing the File Set in Non-Project Mode
256
 Determining the File Set Status
Filtering Queries by File Set
 258
Using SoftBench Static Analyzer Window Areas
 SoftBench Static Analyzer Window and Areas
 260
Making Textual Static Queries
Making General Queries
Making Queries Based on a Program Identifier
 Understanding the Types of References
Selecting Text
 Determining Identifier Classification
Relationships among Reference Queries
262
 Using Pattern Matching
Troubleshooting Invalid Identifiers for Queries
 Updating the Database
Using Query Results
Browsing the Query Result
Editing the Source File
 Performing a Query
 SoftBench Static Analyzer Display Options
Filtering Results Using the File Set
Command Description
Simplifying Query Results
 Filtered Source File List
Unfiltered Source File List
 Filtering C++ Query Results
Using Scoping
268
 Scoping Prerequisites and Constraints
Troubleshooting Scoping Information
Scoping Example
 270
 Saving and Printing a Query Result
Redisplaying Past Queries
Redisplaying Query Results
Deleting a Query Result
 272
 Generating Static Data from the Command Line
Using SoftBench Static Analyzer in Standalone Mode
Searching Subdirectories
 274
Using the Staticfileset File
 Customizing SoftBench Static Analyzer
 Analysis file set choose F ile
Condition or Message Explanation
276
 Chapter 277
 278
 Chapter 279
 280
Staticrmfile1
 Chapter 281
 282
 Using Static Graphs
 284
 Starting SoftBench Static Analyzer Graphs
 Making Graphical Static Queries
General Static Graph Features
286
 Operating on Static Graph Nodes
Finding Graph Nodes
 Displaying Nodes on Another Graph
Switching between Static Graphs
288
 Function Description Dialog Box
Using Description Boxes
 Saving Static Graph Images to Files
Setting Breakpoints for SoftBench Debugger
290
 Chapter 291
 Reducing Graph Complexity
Simplifying Graph Displays
292
 Filtering Sourceless Nodes
 Removing the Graph Legend Viewing Multiple Graphs
Customizing Static Graphs
294
 Using SoftBench File Compare
 296
Understanding the SoftBench File Compare Window
Understanding the Menu Bar
Understanding the Working Directory Input Box
 Reading the Gutter Column
Using the Left File and Right File Input Boxes
Using the Merge File Input Box
Understanding the Text Areas
 Left Right Selection Column
Selecting Lines for Merging
298
 Traversing by Single Line
Highlighting Differences
 300
Comparing Two Files
 Merging Compared Files
 302
 Chapter 303
 304
 Using SoftBench Message Monitor
 306
Starting SoftBench Message Monitor
 Understanding Broadcast Messages
Understanding the SoftBench Message Monitor Window Area
 308
Clearing the Broadcast Message Area
 Send Message Dialog Box
Composing and Sending a Message
 310
For SoftBench XEmacs
 Specifying a Log File
Logging Messages
Starting and Stopping Message Logging
 312
 Using SoftBench with SQL
 314
Determining Supported Environments
 SQL File Extensions for C Language
Using Default SQL File Types
Using SQL with Project Build
Configuring SoftBench with SQL
 316
 Updating Rdbms Versions
Using SQL with External Build
 318
 Using SQL Preprocessor Wrappers
Using SQL with SoftBench Tools
Debugging with SQL
 320
Debugging Expanded SQL Statements
 Editing and Rebuilding with SQL for SoftBench Debugger
 322
 Using SoftBench Graph Windows
 324
Accessing SoftBench Graph Windows
 Appendix a 325
 326
Using Graph Window Areas
Using Popup Menus
Using Save Options for the Graph Image
 Figure A-1 Save Image Dialog Box
Table A-2 Graph Image File Formats Option Used for
 Saving HP-GL and PostScript Images
Using Graph File Image Save Options
328
 Saving xwd Images
 330
Using Vertical and Horizontal Scrolling
 Clearing the Graph Area
Zooming In or Zooming Out
 332
Understanding Nodes and Arcs
Reading Graph Area Nodes
Selecting Nodes and Arcs
 Appendix a 333
 Moving Nodes
Table A-4 Methods for Selecting Multiple Objects Procedure
334
 Appendix a 335
 Controlling Graph Display
Menu settings
Customizing SoftBench Graphs
Controlling Graph Layout
 Understanding Window Status Information
 338
 Customizing SoftBench CM Configuration
 Table B-1 Server Configuration Files File Name Description
Modifying the Configuration Files
340
 Figure B-1 File Mapping Between Local and Archive Files
Configuring Where Archive Files are Stored
 342
Defining User Access to the Server
 Appendix B 343
 344
 Format 1. Place user field first and permissions field second
Recommended Format for Permissions File
Format 2. Place path field first and permissions field second
 346
Setting Logging and Debug Options
 Appendix B 347
 348
Performing SoftBench CM Administrator Tasks
Migrating Archive Files From RCS
Migrating Archive Files From Sccs
 Modifying the Lockinfo File
Creating Archive Backups
Moving Archive Storage Locations
 350
 Using the Archive Status and Error Log
Troubleshooting
Using the Archive Activity Log
 352
 Using Regular Expressions
 354
Pattern Matching
 Appendix C 355
 356
 Appendix C 357
 358
 Appendix C 359
 360
 Customizing SoftBench for Native Language Support NLS
 362
Preparing to Use NLS in SoftBench
 Appendix D 363
 Table D-1 To have Lang apply to Set Lang
Setting the Lang Environment Variable
364
 Converting from One Encoding Method to Another
 366
Rebinding Alt
 Changing or Removing Menu Mnemonics
SoftBench Mnemonics and Non-USASCII Character Inputs
 368
 Customizing Keyboard Accelerators
 370
 Starting Your Localized SoftBench
 372
Remote Execution Hosts and NLS
 Character Input Example
Editing in SoftBench
 374
 375
Glossary
 376
 377
 378
 379
 380
 381
 382
 383
 384
See also Project Root
 385
 386
 387
 388
 Index
Symbols
389
 390
 391
CDE
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
Graph, 47, 66
 404
 405