Walkthrough: Debugging a Project (C++)
In this walkthrough, you modify the program to fix the problem that you found when you tested the project.
Prerequisites
This walkthrough assumes that you understand the fundamentals of the C++ language.
It also assumes that you've completed the earlier related walkthroughs that are listed in Using the Visual Studio IDE for C++ Desktop Development.
To fix a program that has a bug
To see what occurs when a
Cardgame
object is destroyed, view the destructor for theCardgame
class.On the menu bar, choose View > Class View.
In the Class View window, expand the Game project tree and select the Cardgame class to display the class members and methods.
Open the shortcut menu for the ~Cardgame(void) destructor and then choose Go To Definition.
To decrease the
totalParticipants
when a Cardgame ends, add the following code between the opening and closing braces of theCardgame::~Cardgame
destructor.totalParticipants -= players; cout << players << " players have finished their game. There are now " << totalParticipants << " players in total." << endl;
The Cardgame.cpp file should resemble the code below after you change it:
#include "Cardgame.h" #include <iostream> using namespace std; int Cardgame::totalParticipants = 0; Cardgame::Cardgame(int players) : players(players) { totalParticipants += players; cout << players << " players have started a new game. There are now " << totalParticipants << " players in total." << endl; } Cardgame::~Cardgame() { totalParticipants -= players; cout << players << " players have finished their game. There are now " << totalParticipants << " players in total." << endl; }
On the menu bar, choose Build > Build Solution.
When the build completes, run it in Debug mode by choosing Debug > Start Debugging on the menu bar, or by choosing the F5 key. The program pauses at the first breakpoint.
To step through the program, on the menu bar, choose Debug > Step Over, or choose the F10 key.
Notice that after each
Cardgame
constructor executes, the value oftotalParticipants
increases. When thePlayGames
function returns, as eachCardgame
instance goes out of scope and is deleted (and the destructor is called),totalParticipants
decreases. Just before thereturn
statement is executed,totalParticipants
equals 0.Continue stepping through the program until it exits, or let it run by choosing Debug > Run on the menu bar, or by choosing the F5 key.
Next Steps
Previous: Walkthrough: Testing a Project (C++)
Next: Walkthrough: Deploying Your Program (C++)