1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
/********************************************************************
* File: CST116-Ch5-Debugging.cpp
*
* General Instructions: Complete each step before proceeding to the
* next.
*
* Debugging Exercise 1
*
* 1) On the lines indicated in the code below, insert a breakpoint.
* 2) With the program not in debugging mode, start debugging by
* using the "Step Into" tool.
* 3) Click on the Watch1 tab.
* 4) With the cursor in the Name column type money and press enter.
* This adds a programmer defined watch on the variable money.
* 5) Step Into until you reach the first cout statement. With
* the current line being that cout statement, Step Into again.
* 6) What happened? Where are we now? What is all of this nasty
* looking code?
*
* I'm gonna be honest here, I have no idea what the "nasty looking code" you're talking about is, unless its the lines about "the thread [number] has exited with code [number]", which doesn't look all that nasty to me.
*
* 7) Remember, stepping into a predefined routine takes you to the
* code for that routine. If the debugger can't find the code it
* will show the assembly code for that routine.
* 8) How do we get out of this mess? Use the "Step Out" tool.
* 9) In Visual Studio you will be taken back to the same cout
* statement. Use the Step Over tool to take you to the next
* line.
* 10) Step over the next cout statement. Now look at the console
* window. What was printed?
*
* Assuming we're both looking in the same place, "The thread 0x367c has exited with code 0 (0x0).", which doesn't look all that nasty to me. I'm no expert, but "code 0" definitely feels too short for an error code.
*
* 11) Select Stop Debugging either from the Debug menu or from your
* toolbar.
*
* Debugging Exercise 2
*
* 1) With the program stopped, run to Breakpoint 1 by selecting
* the Start Debugging menu option, toolbar icon or press F5.
* 2) Step over the cout.
* 3) Step over the cin. Notice that you can now enter a value.
* 4) Enter the value .1 and press enter.
* 5) Notice that the current line of execution is now at the
* calculation.
* 6) Look at your watch. What is the value of money?
*
* 123.45
*
* 7) Hover your mouse pointer over raise. What is its value?
*
* 0.1
*
* 8) Step over the calculation. Notice the watch on money is now
* red. This designates that the variable just changed its value.
* 9) What happened to our money? I thought a raise was supposed
* to increase our money? Stop debugging and fix the calculation.
*
* Inputting 0.1 for raise causes it to return 10% of money, instead of money + 10%. Just add 1 to raise before calculating. Also, "money *= (1 + raise)" is significantly more readable than "money = money (1 + raise)".
*
*
* Debugging Exercise 3
*
* 1) Choose Disable All Breakpoints from the Debug menu.
* 2) With the cursor on the calculation, Run to Cursor. Remember
* that the Run to Cursor tool can be accessed by right clicking
* in the code window and choosing the correct menu option.
* 3) Step over the calculation and verify that this time
* you end up with more money than before the raise.
* 4) Stop debugging. Now run the entire program by choosing the menu
* option Start Without Debugging.
*
********************************************************************/
#include <iostream>
#include <iomanip>
using std::cout;
using std::cin;
using std::endl;
int main()
{
float money = 123.45F;
float raise;
cout << "You have $";
cout << money << endl;
// Breakpoint 1
// Put a breakpoint on the following line
cout << "Enter percent raise: ";
cin >> raise;
money *= (raise + 1);
cout << "After your raise you have $";
cout << money << endl;
return 0;
}
|