aboutsummaryrefslogtreecommitdiff
path: root/CST116-Ch9-Debugging/CST116-Ch9-Debugging.cpp
blob: 47e481e5e04a5a7efba57f89c3baac453f53fe84 (plain) (blame)
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/********************************************************************
* File: CST116-Ch9-Debugging.cpp
*
* General Instructions: Complete each step before proceeding to the
* next.
*
* Debugging Exercise 1
*
* 1) Insert a breakpoint on the lines indicated in the code.
* 2) Run to Breakpoint 1.
* 3) Place a watch on age and days.
* 4) Add another watch using &age for the name. This will display
*    the address of age.
* 5) Write down the address of age.
* 
*    ANS: 0x000000dfd68ff554{0}
* 
* 6) Step Into the code for the function GetAge.
* 7) The execution continues to the function header for GetAge.
* 8) Step into one more time.
* 9) Why did the address of age and value change?
* 
*    ANS: Because age has been defined to a different value.
* 
* 10) Step over the cout and cin statements.
* 11) Verify the value entered is stored properly in age.
* 12) Step into until the flow returns to main.
* 13) Step over one more time.
* 14) Why didn't the value entered get transferred back to main?
* 15) Stop debugging and fix the error.
* 16) Run to Breakpoint 1.
* 17) Step over the function call to GetAge.
* 18) Verify that the value entered was returned and stored
*     correctly from GetAge.
* 19) Stop debugging.
*
* Debugging Exercise 2
*
* 1) Run to Breakpoint 1.
* 2) Step over the call to GetAge.
* 3) Step into CalcDays.
* 4) Step into one more time so that the current line is the
*    calculation.
* 5) Why is age greyed out in your watch window?
* 
* ANS: Age was not in the calcdays function.
* 
* 6) Stop debugging.
*
* Debugging Exercise 3
*
* 1) Run to Breakpoint 2.
* 2) When asked, enter the value of 20 for your age.
* 3) Verify that the variable age is 20 and the variable days
*    is 7300.
* 4) Step into the PrintResults function.
* 5) Age is 7300? Not even Ralph is that old.
* 6) Why did the values for both variables change?
* 
* ANS: The int order for age and days was switched 
* 
* 7) Stop debugging and fix the error.
*
* Debugging Exercise 4
*
* 1) Run to Breakpoint 2.
* 2) Display your Call Stack window.
* 3) View the contents of the window and notice that the top
*    function on the stack is main.
* 4) Step into the PrintResults function.
* 5) Notice that the call stack now shows PrintResults on top of
*    the stack.
********************************************************************/
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

const int DAYS_PER_YEAR = 365;

int GetAge();
int CalcDays(int age);
void PrintResults(int age, int days);

int main()
{
    int age = 0;
    int days = 0;

    // Breakpoint 1
    // Put breakpoint on the following line 
    age = GetAge();
    days = CalcDays(age);

    // Breakpoint 2
    // Put breakpoint on the following line
    PrintResults(age, days);

    return 0;
}
int GetAge()
{
    int age;

    cout << "Please enter your age: ";
    cin >> age;

    return age;
}
int CalcDays(int years)
{
    int days;


    days = years * DAYS_PER_YEAR;

    return days;
}
void PrintResults(int age, int days)
{
    cout << age << "! Boy are you old!\n";
    cout << "Did you know that you are at least " << days << " days old?\n\n";
}