From 580f21f18b01ed01a27dfbf468ea498eaf850087 Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Thu, 29 Sep 2022 22:48:33 +0000 Subject: Initial commit --- CST116-Ch5-Debugging/CST116-Ch5-Debugging.cpp | 85 +++++++++++++ CST116-Ch5-Debugging/CST116-Ch5-Debugging.sln | 31 +++++ CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj | 135 +++++++++++++++++++++ .../CST116-Ch5-Debugging.vcxproj.filters | 22 ++++ .../CST116-Ch5-Debugging.vcxproj.user | 4 + README.md | 2 + 6 files changed, 279 insertions(+) create mode 100644 CST116-Ch5-Debugging/CST116-Ch5-Debugging.cpp create mode 100644 CST116-Ch5-Debugging/CST116-Ch5-Debugging.sln create mode 100644 CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj create mode 100644 CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj.filters create mode 100644 CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj.user create mode 100644 README.md diff --git a/CST116-Ch5-Debugging/CST116-Ch5-Debugging.cpp b/CST116-Ch5-Debugging/CST116-Ch5-Debugging.cpp new file mode 100644 index 0000000..851932d --- /dev/null +++ b/CST116-Ch5-Debugging/CST116-Ch5-Debugging.cpp @@ -0,0 +1,85 @@ +/******************************************************************** +* 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? +* 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? +* 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? +* 7) Hover your mouse pointer over raise. What is its value? +* 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. +* +* 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 +#include +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 = money * raise; + + cout << "After your raise you have $"; + cout << money << endl; + + return 0; +} \ No newline at end of file diff --git a/CST116-Ch5-Debugging/CST116-Ch5-Debugging.sln b/CST116-Ch5-Debugging/CST116-Ch5-Debugging.sln new file mode 100644 index 0000000..61b265b --- /dev/null +++ b/CST116-Ch5-Debugging/CST116-Ch5-Debugging.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32804.467 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CST116-Ch5-Debugging", "CST116-Ch5-Debugging.vcxproj", "{656289CE-6A7B-4681-B61A-B8BD2CF9E712}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {656289CE-6A7B-4681-B61A-B8BD2CF9E712}.Debug|x64.ActiveCfg = Debug|x64 + {656289CE-6A7B-4681-B61A-B8BD2CF9E712}.Debug|x64.Build.0 = Debug|x64 + {656289CE-6A7B-4681-B61A-B8BD2CF9E712}.Debug|x86.ActiveCfg = Debug|Win32 + {656289CE-6A7B-4681-B61A-B8BD2CF9E712}.Debug|x86.Build.0 = Debug|Win32 + {656289CE-6A7B-4681-B61A-B8BD2CF9E712}.Release|x64.ActiveCfg = Release|x64 + {656289CE-6A7B-4681-B61A-B8BD2CF9E712}.Release|x64.Build.0 = Release|x64 + {656289CE-6A7B-4681-B61A-B8BD2CF9E712}.Release|x86.ActiveCfg = Release|Win32 + {656289CE-6A7B-4681-B61A-B8BD2CF9E712}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {814ACEF9-6F20-4A06-B885-731651BC52DC} + EndGlobalSection +EndGlobal diff --git a/CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj b/CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj new file mode 100644 index 0000000..4339244 --- /dev/null +++ b/CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {656289ce-6a7b-4681-b61a-b8bd2cf9e712} + CST116Ch5Debugging + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj.filters b/CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj.filters new file mode 100644 index 0000000..c938e8d --- /dev/null +++ b/CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj.user b/CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj.user new file mode 100644 index 0000000..0f14913 --- /dev/null +++ b/CST116-Ch5-Debugging/CST116-Ch5-Debugging.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..35a3ce5 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# CST116-Ch5-Debugging +Beginning debugging (Ch 5) -- cgit v1.2.3