Chapter 2. Debugging a Program

In This Chapter

  • Working with debuggers

  • Using the CodeBlocks debugger

  • Tracing through a program and in and out of functions

  • Using other debuggers

  • Getting seriously advanced debuggers

In this chapter, we talk about how you can use a debugger to track down problems and bugs in your program. Sooner or later, things don't work the way you planned them. In this case, you have several plans of attack. One plan involves a hammer and the computer, but we don't recommend that one. Instead, we suggest using a debugger to try to fix the program.

Programming with Debuggers

A debugger is a special tool that you use for tracing line by line through your program. Take a look at Listing 2-1. This is just a basic program with a main and a couple of functions that we use to demonstrate the debugger.

Example 2.1. Tracing a Simple Program

#include <iostream>

using namespace std;

int CountRabbits(int original)
{
    int result = original * 2;
    result = result + 10;
    result = result * 4;
    cout << "Calculating " << result << endl;
    return result * 10;
}

int CountAntelopes(int original)
{
    int result = original + 10;
    result = result - 2;
    cout << "Calculating " << result << endl;
return result;
}

int main()
{
    int rabbits = 5;
    int antelopes = 5;
    rabbits = CountRabbits(rabbits);
    cout << "Rabbits now at " << rabbits << endl;
    antelopes = CountAntelopes(antelopes);
    cout << "Antelopes now at " << antelopes << endl;
    // system("PAUSE"); // add this for Windows
    return 0;
}

When you type and run this program, ...

Get C++ All-In-One For Dummies®, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.