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