In This Chapter
Debugging a multifunction program
Performing a unit test
Using predefined preprocessor commands during debug
This chapter expands upon the debugging techniques introduced in Chapter 8 by showing you how to create debugging functions that allow you to navigate your errors more quickly.
C++ functions represent further opportunities both to excel and to screw up. On the downside are the errors that are possible only when your program is divided into multiple functions. However, dividing your programs into functions allows you to examine, test, and debug each function without regard to how the function is being used in the outside program. This allows you to create a much more solid program.
Debugging a Dys-Functional Program
To demonstrate how dividing a program into functions can make the result easier to read and maintain, I created a version of the SwitchCalculator program in which the calculator operation has been split off as a separate function (which it would have been in the first place if I had only known about functions back then). Unfortunately, I introduced an error during the process that didn't show up until performing testing.
The following listing appears on the enclosed CD-ROM as CalculatorError1:
// CalculatorError1 - the SwitchCalculator program // but with a subtle error in it // #include <cstdio> #include <cstdlib>
#include <iostream> using namespace std; // prototype declarations int calculator(char cOperator, ...