Debugging via Standard Output
◀ Syntax Error Versus Logic Error▶ Debugging Using Debugging Tools Amazon
n C++ you use cout
to print statements to standard output (stdout
) channel. Using the output ability of a program is generally useful for debugging. It is very useful in the following three situations while a program is running:
In the first
situation, the program hangs and must be terminated forcibly. To find out the cause we can insert print statements in different places and run the program again. Doing so generally enables us to locate where the hanging occurs.
In the second
situation, the program exits after generating a segmentation fault. Most programmers would probably agree that a segmentation fault is the most annoying and elusive bug. Again, inserting print statements in several places generally helps you see where this fault is generated.
A detailed discussion about segmentation fault will be given in Chapter 9.
In the third
situation, the program runs infinitely and does not exit until the operating system runs out of memory. Two of the most common sources of this problem are an infinite loop and infinite recursion.
In any case you need to make sure you “flush” the outputs in your print statements to make them printed on the screen immediately. See Chapter 16.2
for more details.
A common practice is to use #define DEBUG
where you would like to print a debugging message. You wrap debugging statements in the #define
block and you will only see those statements when you #define DEBUG
. This way you can easily turn on and off debugging.
An alternative is to log the results instead of printing them on the screen. Once you run the program you can check the log.
Next let’s check out how we can debug using debugging tools!
◀ Syntax Error Versus Logic Error▶ Debugging Using Debugging Tools