Contents
Checking Your Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Viewing Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Terminating SoftBench CodeAdvisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Filtering Rule Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
For More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Understanding SoftBench Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
156
Preparing Your Program for Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
159
Using SoftBench Debugger Window Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
160
Tearing Apart the Main Toolface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
163
Loading or Rerunning an Executable Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
165
Specifying the Runtime Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying Source Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
168
Debugging Executables in a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
169
Stepping through Your Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
171
Interrupting a Running Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
172
Interrupting in System or Non-debuggable Routines . . . . . . . . . . . . . . . . . . . . . . .
Interacting with Your Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
174
Interacting with a Standard I/O Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interacting with a Terminal-Smart Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
175
Interacting with a Window-Smart Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying Identifier Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
177
Specifying Program Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
178
Examining and Changing Data in Your Program . . . . . . . . . . . . . . . . . . . . . . . . . . . .
181
Examining Data in Your Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
182
Printing Hex or String Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
183
Changing Data in Your Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Debugger Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
184
Using Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
185
Calling Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
186
Viewing the Call Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Viewing Thread Stacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
187
Understanding the Operation of Your Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
188
Setting and Using Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
189
Debugging a Program Using Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11