Graphical Development Environments for C++
• Eclipse
– Widely available open-source debugging environment • Available on Windows, Linux, others
– Designed to use g++ and other existing open-source tools – Unfortunately not working on Urbauer Windows machines
• Visual Studio – Specific to Windows but still widely used • Excellent multi-threaded debugger, eases Windows development
– Uses Visual C++ (and other tools for other languages) – Works fine on Urbauer machines, so we’ll use this for now
CSE 232: C++ Programming in Visual Studio
• • • • • • •
Overview of Today’s Session Start Visual Studio and create a C++ project Look at the code and files it generated automatically Create a simple “hello, world!” program Build, fix, and repeat until the program compiles Set breakpoints and step over lines of the program Look at the program’s output in the debug terminal Stepping off the end of the main program – Into the crtexe.c file from which the main function is called
• Try printing out the program’s name (in argv[0]) • Look at different syntaxes for the main function – How those different forms treat argc and argv, for example
CSE 232: C++ Programming in Visual Studio
Starting Visual Studio
CSE 232: C++ Programming in Visual Studio
Choosing Visual C++
CSE 232: C++ Programming in Visual Studio
Click on Create Project
CSE 232: C++ Programming in Visual Studio
Choose Win32
CSE 232: C++ Programming in Visual Studio
Fill in Project Name
CSE 232: C++ Programming in Visual Studio
Click Finish to Create the Project …
CSE 232: C++ Programming in Visual Studio
… Which May Take it a While to Do
CSE 232: C++ Programming in Visual Studio
Visual Studio Generated Several Files
CSE 232: C++ Programming in Visual Studio
Provided StdAFX Header File
CSE 232: C++ Programming in Visual Studio
Provided StdAFX Source File
CSE 232: C++ Programming in Visual Studio
Provided Readme.txt File
CSE 232: C++ Programming in Visual Studio
Have the Program Print Out Hello, World
CSE 232: C++ Programming in Visual Studio
Build the Program
CSE 232: C++ Programming in Visual Studio
What do the Errors Tell Us We Missed?
CSE 232: C++ Programming in Visual Studio
Corrected Program
CSE 232: C++ Programming in Visual Studio
Build Again
CSE 232: C++ Programming in Visual Studio
Successful Compilation
CSE 232: C++ Programming in Visual Studio
Setting a New Breakpoint
CSE 232: C++ Programming in Visual Studio
Breakpoint in the main Function
CSE 232: C++ Programming in Visual Studio
Start Debugging
CSE 232: C++ Programming in Visual Studio
Debugger Stops at the Breakpoint
CSE 232: C++ Programming in Visual Studio
Stepping over the First Line
CSE 232: C++ Programming in Visual Studio
After Stepping Over Once
CSE 232: C++ Programming in Visual Studio
Program Output in Terminal Window
CSE 232: C++ Programming in Visual Studio
Stepping Over a Second Time
CSE 232: C++ Programming in Visual Studio
At The End of the main Function
CSE 232: C++ Programming in Visual Studio
What if we Stepped Over Once More?
CSE 232: C++ Programming in Visual Studio
In the crtexe.c file (calls different Mains)
CSE 232: C++ Programming in Visual Studio
F5 or Continue to Complete the Run
CSE 232: C++ Programming in Visual Studio
All Done (can close crtexe.c now)
CSE 232: C++ Programming in Visual Studio
A Couple More Things to Try • Exercise: what do you see when you have the program print out argv[0]? – Why does it print that? – What is it printing vs. what we saw in previous sessions?
• Exercise: change syntax of the main function to match what we used in earlier sessions – What does printing argv[0] show now? – What if you print out the other program arguments?
CSE 232: C++ Programming in Visual Studio