In the preceding section, you learned how to use the debugger's print command to examine the value of a variable during program execution. In this section, you will learn how to use the print command to examine the value of more complex expressions. You will also learn the set command, which allows the programmer to assign new values to variables. We assume you are working in the directory containing this appendix's examples and have compiled for debugging with the -g compiler option.
1. |
Starting debugging. Type gdb figM_03 to start the GNU debugger. |
||
2. |
Inserting a breakpoint. Set a breakpoint at line 25 in the source code by typing break 25 (Fig. M.15). Figure M.15. Setting a breakpoint in the program.
|
||
3. |
Running the program and reaching a breakpoint. Type run to begin the debugging process (Fig. M.16). This will cause main to execute until the breakpoint at line 25 is reached. This suspends program execution and switches the program into break mode. The statement in line 25 is the next statement that will execute. Figure M.16. Running the program until the breakpoint at line 25 is reached. (This item is displayed on page 1390 in the print version)
|
||
4. |
Evaluating arithmetic and boolean expressions. Recall from Section M.2 that once the program has entered break mode, you can explore the values of the program's variables using the debugger's print command. You can also use the print command to evaluate arithmetic and boolean expressions. Type print withdrawalAmount - 2. Note that the print command returns the value 11 (Fig. M.17). However, this command does not actually change the value of withdrawalAmount. Type print withdrawalAmount == 11. Expressions containing the == symbol are treated as boolean expressions. The value returned is false (Fig. M.17) because withdrawalAmount does not currently contain the value 11withdrawalAmount is still 13. Figure M.17. Printing expressions with the debugger.
|
||
5. |
Modifying values. The debugger allows you to change the values of variables during the program's execution. This can be valuable for experimenting with different values and for locating logic errors in programs. You can use the debugger's set command to change the value of a variable. Type set withdrawalAmount = 42. The debugger changes the value of withdrawalAmount. Type print withdrawalAmount to display its new value (Fig. M.18). Figure M.18. Setting the value of a variable while in break mode.
|
||
6. |
Viewing the program result. Type continue to continue program execution. Line 25 of Fig. M.3 executes, passing withdrawalAmount to Account member function debit. Function main then displays the new balance. Note that the result is $8 (Fig. M.19). This shows that the preceding step changed the value of withdrawalAmount from its initial value (13) to 42. Figure M.19. Using a modified variable in the execution of a program. (This item is displayed on page 1391 in the print version)
|
||
7. |
Using the quit command. Use the quit command to end the debugging session (Fig. M.20). This command causes the debugger to terminate. Figure M.20. Exiting the debugger using the quit command. (This item is displayed on page 1391 in the print version)
|
In this section, you learned how to use the debugger's print command to evaluate arithmetic and boolean expressions. You also learned how to use the set command to modify the value of a variable during your program's execution.
Introduction to Computers, the Internet and World Wide Web
Introduction to C++ Programming
Introduction to Classes and Objects
Control Statements: Part 1
Control Statements: Part 2
Functions and an Introduction to Recursion
Arrays and Vectors
Pointers and Pointer-Based Strings
Classes: A Deeper Look, Part 1
Classes: A Deeper Look, Part 2
Operator Overloading; String and Array Objects
Object-Oriented Programming: Inheritance
Object-Oriented Programming: Polymorphism
Templates
Stream Input/Output
Exception Handling
File Processing
Class string and String Stream Processing
Web Programming
Searching and Sorting
Data Structures
Bits, Characters, C-Strings and structs
Standard Template Library (STL)
Other Topics
Appendix A. Operator Precedence and Associativity Chart
Appendix B. ASCII Character Set
Appendix C. Fundamental Types
Appendix D. Number Systems
Appendix E. C Legacy Code Topics
Appendix F. Preprocessor
Appendix G. ATM Case Study Code
Appendix H. UML 2: Additional Diagram Types
Appendix I. C++ Internet and Web Resources
Appendix J. Introduction to XHTML
Appendix K. XHTML Special Characters
Appendix L. Using the Visual Studio .NET Debugger
Appendix M. Using the GNU C++ Debugger
Bibliography