C and C++ SoftBench User's Guide
Contents
13
Debugging Optimized Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Customizing SoftBench Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Specifying Debugger Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Customizing User Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
If Something Goes Wrong . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
For More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
8. Using SoftBench Debugger Data Graph Window
Starting and Stopping the Data Graph Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Beginning a Browsing Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Stopping a Browsing Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Understanding Data Graph Window Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Understanding the Layout Control Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Understanding the Display Control Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Understanding the Graph Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Understanding the Window Control Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Using the Graph Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Displaying New Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Using the "Node Values" Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Suspending Graph Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Deactivating the Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Stopping a Graph Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Sample Use Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Verifying Correct Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Viewing Values of Data Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
For More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
9. Using SoftBench Static Analyzer
Starting SoftBench Static Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Preparing to Make Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Generating Static Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
Updating Static Data without Building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Specifying Static Data to Analyze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Using SoftBench Static Analyzer Window Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Making Textual Static Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Making General Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Making Queries Based on a Program Identiļ¬er . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Using Query Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264