Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Debugging code

From: Visual Studio 2010 Essential Training

Video: Debugging code

Nobody likes to write code that contains bugs, but it is a fact of the programmer's life. So in this movie, I would like to show you the debugging tools that are available inside Visual Studio. I'm inside Visual Studio, and I've opened a solution called DebuggingCode, which contains one project called ExploringBreakpoints. Let me show you the main UI for this application. I'm going to double-click on MainWindow.xaml. It's a simple form that contains seven buttons. Each of these buttons contains one of the demos I'm going to show today. Before I continue, let's make sure we have one setting enabled in Tools > Options.

Debugging code

Nobody likes to write code that contains bugs, but it is a fact of the programmer's life. So in this movie, I would like to show you the debugging tools that are available inside Visual Studio. I'm inside Visual Studio, and I've opened a solution called DebuggingCode, which contains one project called ExploringBreakpoints. Let me show you the main UI for this application. I'm going to double-click on MainWindow.xaml. It's a simple form that contains seven buttons. Each of these buttons contains one of the demos I'm going to show today. Before I continue, let's make sure we have one setting enabled in Tools > Options.

I'll go to Tools > Options, and then you want to go down to the Debugging section, and go to Edit and Continue. Make sure there is a check mark in Enable Edit and Continue. This allows us to edit the code while we're sitting at a breakpoint. I don't believe this works on 64- bit operating systems, however. So now I'm ready to add a breakpoint. I'm going to switch to my Code view by double-clicking on the Simple Breakpoint button. Here is the code that I want to examine under a debugger.

So I can put my cursor on line 37, and then I can press the F9 key. Notice that the line turns red, and on the left margin is a red circle. That signifies that there is a breakpoint waiting at this line. To turn off the breakpoint, I can press F9 again. Another way of adding a breakpoint is to click on the margin. Now that I have this breakpoint, I need to run the application under a debugger. The easiest way to do that is to click the Start Debugging or press F5.

Now when I click on the button, we switch over to Visual Studio, and we're sitting here looking at the breakpoint. This line of code has not run yet. To run this line of code, I need to click on this Step Into button. Now you can see the breakpoint is still on line 38, but the next line of code that's going to execute is line 39. Another way of putting a breakpoint in your code is to write a little bit of code. I can come down to this section and write a System.Diagnostics.Debugger.Break().

That means that when the debugger encounters this line, it'll automatically stop. Now, you probably don't want to leave this in your production code, so what you can do is wrap it in an if statement, like I'm doing here. I'm going to uncomment this by doing a Ctrl+K, Ctrl+U. Now, when I run this breakButton, I'll switch back to my UI, I'll press F5 to continue running the application, and then I can click on this button, and you see again I have a yellow marker sitting on that line.

Now, there's no red indicator on this one because that you wrote the code to stop instead of adding a breakpoint. And then I'll press F5. If you have an exception in your code, and you don't have an exception handler, which is called an untrapped exception, then you'll get an opportunity to debug that if you're running under a debugger. Let me click on this button here. So I wrote some code that was attempting to open a file stream, and I passed it an invalid text file name.

So when .NET went out to open this file, it couldn't find the file, which is what this exception error is I'm getting here, "Could not find file 'C:\bogus.txt'." This is a nice little window that shows me there's an error at this line. It switched over to a break, so that I can look at the code and see if I can figure out what's wrong. I can click on this View Detail button to learn more about the exception, and I can dismiss that dialog and then make any changes necessary and then try to run this application again.

I'm going to stop the application for a second and rerun the application. Now, we're going to look at how to step through our code. I'm going to click on this button. I do believe I need a breakpoint on this line. So, I switched over to my code. This is the stepping code. I'm going to add a breakpoint right here on line 75, F9, Alt+Tab back to my Running application and then click on that button again.

Now, I should say something about breakpoints. When you save your application, it's going to store your breakpoints in a special user-specific file. So if I open this file again tomorrow, my breakpoints will still be here. If you were to open this file--say I sent you a copy of my solution--you wouldn't have my breakpoints, because you get your own user-specific Solution file. I'm ready to run this line of code. Now, I've showed you earlier, you can click on this button; you can also press F11 to do a single step. Watch what happens if I do a single step by pressing F11.

There is a function over here called CalculateMonthlyPayment, and now I've entered that function. Now, I can press F11 to walk through my code over here. Then I'll return back to the previous code. Another way of walking through your code is to click on this Step Over. What that does is it looks at this and says, "We'll there are six or seven lines of code over there, in that method. I'm going to skip over those. I'm just going to run this as if it was a single line of code." So, by pressing Step Over, I don't have to walk through that method that I already have debugged.

See, when I clicked on that button, it immediately went to the next one. There is another setting. Let me click on the Step Into. Now I'm back inside that CalculateMonthlyPayment. Let's say that I've run a couple of lines of code in here, and I don't want to step through the rest of the code. I can use this Step Out button to finish running all the code in here and then stop on the first line of code back in the calling function. So let me show you how that one works. As you can see, it returned back to the calling method. You remember that Edit and Continue feature I turned on earlier? I can now rerun some of these lines of code by dragging this yellow marker up and rerunning that line of code by pressing F10.

Another thing that I can do is I can now edit this code while I'm sitting at a breakpoint. Let's say I don't like the name of this variable. I'm going to have to rename it in several places. But now that I've renamed it successfully, I can press F10 to successfully run that code. So I'm able to edit the code while I was sitting at a breakpoint. Let me press F5 and click on the next button. Now, I've got three more examples I want to show you.

So let me shut this application down and add some breakpoints before I continue. I'll press F9 while I'm on this DataTips. I'll press F9 while I'm down here on the visualizerButton, and then I'm going to add a special better breakpoint down in this area. I'll come back and show you that in just a second. Actually, I think I'll show it to you now. I'm going to add a special breakpoint here. One of the new things in Visual Studio is that you can add breakpoints that have special counts. So, I'm going to add a breakpoint here, and then I'm going to right-click on it and set Hit Count. Then I'm going to choose when the hit count is a multiple of 60.

Notice that there's a special Plus sign now on the breakpoint? Let's run these last three demos. Again, I'm going to go up and choose Debug > Start Debugging. There is a special tooltip in Visual Studio called a datatip. I'm going to press F10 a couple of times to move down into my code, and then I'm going to hover over this variable. You can see the datatip. It tells me that the current value of that variable is 0.0.

And if I come down here and click on this birthDate, it shows that it's 5/5/1992. Notice there's also a Plus symbol here, where I can see more specific details about that item. There is also a little stickpin over here. Click on this and then it adds the tip to my coding window. So now that you notice as I move to my code, that little datatip is now stuck there for me to keep watch on it. Let me press F10 a few times here. We'll run through this code. This is another feature, I can choose Run To Cursor.

I'm going to click down here and right-click and choose Run To Cursor. Now it'll run down to the line of code where my cursor is sitting, and then I can hover over this to see that I have five items inside that SortedDictionary. Now, I'm going to press F5 to return back to the UI, and I'll show you this other cool thing called the Visualizer. I'll press F10 twice to run down to this curly brace. I've just loaded an XML file into this variable. If you hover over it, you can see that there is a lot of raw text in there, but there's this thing called the data visualizer, where I have the magnifying glass.

I can click on this magnifying glass and then choose a different representation of the data. I like this XML Visualizer better than the raw Text view. That's what's currently stored in that variable. I'll press F5 one more time, and you probably remember just a few minutes ago, I added that special breakpoint. Now, I'm going to execute that breakpoint by clicking here, and I have just run through this loop counter and if you hover over the counter, you'll see that I'm at 60, because that was my condition I set up for the counter.

If I press F5 again, I'll now have run through another 60 iterations. So rather than having me step through this over and over again, I can just skip forward 60 steps in this loop. These debugger tools that I'm showing you are just the ticket when you have an unexplained problem in your code. In the next movie, I'll show you how to use the Watch and other debug windows.

Show transcript

This video is part of

Image for Visual Studio 2010 Essential Training
Visual Studio 2010 Essential Training

86 video lessons · 31855 viewers

Walt Ritscher
Author

 
Expand all | Collapse all
  1. 2m 3s
    1. Welcome
      1m 2s
    2. Using the exercise files
      1m 1s
  2. 7m 19s
    1. Understanding the Visual Studio versions
      3m 51s
    2. Setting up your developer computer
      3m 28s
  3. 58m 2s
    1. Creating a Visual Studio project
      4m 58s
    2. Working with Solution Explorer
      6m 32s
    3. Working with big projects
      3m 53s
    4. Taking a tour of the Integrated Developer Environment (IDE)
      8m 36s
    5. Introducing drag-and-drop UI design
      7m 38s
    6. Working with the Properties window
      6m 44s
    7. Looking at Server Explorer
      7m 4s
    8. Exploring the new Help engine
      6m 41s
    9. Setting options for the IDE
      5m 56s
  4. 39m 25s
    1. Creating a simple WPF application
      1m 32s
    2. Building the UI with the editors
      9m 14s
    3. Working with the application code
      3m 37s
    4. Communicating with the web site
      7m 15s
    5. Connecting your data
      8m 4s
    6. Binding to an RSS feed
      5m 4s
    7. Packaging and deploying the application
      4m 39s
  5. 39m 46s
    1. What languages are supported in Visual Studio 2010?
      1m 17s
    2. Exploring basic settings for the Code Editor
      5m 35s
    3. Writing a C# program
      6m 48s
    4. Writing a VB program
      6m 29s
    5. Working with C++
      6m 38s
    6. Working with F Sharp
      6m 9s
    7. Font and color options
      6m 50s
  6. 1h 5m
    1. Formatting your code
      6m 43s
    2. Navigating your code
      7m 44s
    3. Using the Task List
      2m 26s
    4. Commenting your code
      2m 45s
    5. Documenting your code
      8m 26s
    6. Using IntelliSense effectively
      7m 0s
    7. Working with code snippets
      6m 25s
    8. Refactoring your code
      5m 15s
    9. Understanding code generation
      2m 10s
    10. Generating code with T4
      6m 29s
    11. Using the Class View, Class Designer, and Class Diagram tools
      5m 51s
    12. Refactoring VB with CodeRush Xpress
      4m 33s
  7. 1h 11m
    1. Working with project and item templates
      8m 38s
    2. Creating a console application
      7m 5s
    3. Creating a class library
      6m 26s
    4. Creating a web site with ASP.NET
      7m 37s
    5. Creating a rich internet application with Silverlight
      6m 57s
    6. Creating a classic Windows application with Windows Forms
      10m 31s
    7. Creating a dramatic Windows application with Windows Presentation Foundation (WPF)
      4m 41s
    8. Creating a WCF service
      9m 1s
    9. Using an existing WCF service
      6m 38s
    10. Navigation UI designs with the Document Outline view
      3m 41s
  8. 33m 18s
    1. Creating a data project with SQL Project
      6m 24s
    2. Clarifying the confusion on .NET Data
      3m 31s
    3. Using ADO.NET in your application
      6m 50s
    4. Creating typed datasets
      7m 55s
    5. Using the data binding tools
      8m 38s
  9. 30m 13s
    1. Debugging code
      9m 32s
    2. Working with the Watch and other debug windows
      7m 46s
    3. Other debugging techniques
      6m 50s
    4. IntelliTrace historical debugging in Visual Studio Ultimate
      6m 5s
  10. 17m 56s
    1. Understanding Visual Studio editions and test tools
      2m 22s
    2. Verifying your code with unit tests
      8m 58s
    3. Running performance and load tests
      6m 36s
  11. 34m 5s
    1. Building your application
      4m 19s
    2. Customizing the build process with MSBuild
      6m 36s
    3. Setting assembly information
      2m 12s
    4. Deploying a basic Windows application
      2m 19s
    5. Creating an installer with Visual Studio
      7m 39s
    6. Creating a ClickOnce application
      5m 13s
    7. Setting up IIS for deploy
      2m 9s
    8. Deploying a Silverlight or ASP.NET application
      3m 38s
  12. 14m 0s
    1. Understanding source control
      2m 9s
    2. Setting up Team Foundation Server source control
      3m 5s
    3. Using Team Foundation Server source control
      8m 46s
  13. 17m 31s
    1. Understanding the .NET Office integration
      4m 16s
    2. Making a Word 2010 application
      7m 54s
    3. Making an Excel 2010 add-in
      5m 21s
  14. 31m 34s
    1. Understanding the extensibility model in Visual Studio
      2m 17s
    2. Adding external tools to the Tools menu
      4m 42s
    3. Creating macros
      7m 16s
    4. Using the Extension Manager
      5m 1s
    5. Creating an MEF add-in
      7m 9s
    6. Deploying and installing an add-in with VSIX
      5m 9s
  15. 25m 34s
    1. Working with configuration files
      5m 37s
    2. Using the Settings Editor
      7m 30s
    3. Using the Resources Editor
      6m 59s
    4. Localizing your resources
      5m 28s
  16. 1m 17s
    1. Goodbye
      1m 17s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ .

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now Already a member? Log in

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Visual Studio 2010 Essential Training.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member ?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferences from the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Learn more, save more. Upgrade today!

Get our Annual Premium Membership at our best savings yet.

Upgrade to our Annual Premium Membership today and get even more value from your lynda.com subscription:

“In a way, I feel like you are rooting for me. Like you are really invested in my experience, and want me to get as much out of these courses as possible this is the best place to start on your journey to learning new material.”— Nadine H.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.