Fundamentals of Breakpoints

Introduction

A breakpoint is a line in the code where you want the execution to suspend. The reason you use a breakpoint is to examine what happens in your application when execution reaches that point.

Practical LearningPractical Learning: Introducing Errors

  1. Start Microsoft Visual Studio
  2. Create a new Console App named WattsALoan----------------2
  3. In the Solution Explorer, right-click Program.cs -> Rename
  4. Type LoanEvaluation (to get LoanEvaluation.cs) and press Enter
  5. Change the document as follows:
    using static System.Console;
    
    double principal;
    double interestRate;
    double period;
    double interestAmount;
    double futureValue;
    
    Title = "Watts A Loan?";
    
    WriteLine("This application allows you to evaluate a loan");
    principal    = 6585;
    interestRate = 9.725 / 100;
    period       = 36 / 12;
    
    interestAmount = principal * interestRate * period;
    futureValue    = principal + interestAmount;
    
    Clear();
    
    WriteLine("============================");
    WriteLine("Loan Summary");
    WriteLine("=--------------------------=");
    WriteLine("Principal:       {0:F}", principal);
    WriteLine("Interest Rate:   {0:P}", interestRate);
    WriteLine("Period For:      {0} months", period * 12);
    WriteLine("Interest Amount: {0:F}", interestAmount);
    WriteLine("Future Value:    {0:F}", futureValue);
    WriteLine("============================");
  6. To start debugging, on the main menu, click Debug -> Step Into.
    Move the DOS window so you can see both your code and that window.
    Notice that the Locals window in the bottom section of Microsoft Visual Studio
  7. To continue debugging, on the main menu, click Debug -> Step Into; do that three times
  8. On the main menu of Microsoft Visual Studio, click Debug and click Step Out

Creating a Breakpoint

A breakpoint is not part of your code; it is just a section you as the developer (or application tester) explicitly specify as a breakpoint. This means that, in order to get a breakpoint, you must create it. To create a breakpoint, first identify the line of code where you want to add it. Then:

A breakpoint is represented by a red circular button:

Breakpoint

In the same way, you can create as many breakpoints as you want.

After creating a breakpoint, when code executes and reaches that line, it would pause and let you know by drawing a right-pointing yellow button:

Breakpoint

Practical LearningPractical Learning: Using Breakpoints

  1. In the Code Editor, click the margin on the left side of "interestRate = GetInterestRate() / 100;"

    Breakpoint

  2. On the main menu, click Debug -> Start Debugging.
    Notice that the DOS window displays

    Debugging - Running to a Breakpoint

  3. When asked, enter the value of the principal as 6255.75
  4. And press Enter.
    The focus moves back to Microsoft Visual Studio:

    Debugging - Running to a Breakpoint

  5. Press F5 to continue
  6. For the interest rate, type 9.725 and press Enter
  7. For the number of months, type 48 and press Enter:
    ============================
    Loan Summary
    =--------------------------=
    Principal:       6255.75
    Interest Rate:   9.73%
    Period For:      48 months
    Interest Amount: 2433.49
    Future Value:    8689.24
    ============================
    
    To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
    Press any key to close this window . . .
  8. To close ther DOS window, press any key.
    The focus moves back to Microsoft Visual Studio
  9. To remove the breakpoint, on the main menu, click Debug -> Toggle Breakpoint
  10. In the Code Editor, right-click the interestRate = GetInterestRate() / 100; line, position the mouse on Breakpoint, and click Insert Breakpoint
  11. In the Code Editor, right-click anywhere on the interestAmount = principal * interestRate * period; line -> Breakpoint -> Insert Breakpoint:

    Debugging - Creating Breakpoints

  12. To start debugging, press F5
  13. When requested, enter the value of the principal as 18225.45
  14. And press Enter

    Debugging - Running to a Breakpoint

  15. To continue debugging, press F5.
    The focus moves to the DOS window
  16. For the interest rate, type 6.815 and press Enter
  17. For the number of months, type 60 and press Enter

    Debugging - Running to a Breakpoint

    The focus moves to Microsoft Visual Studion
  18. To continue debugging, press F5:
    ============================
    Loan Summary
    =--------------------------=
    Principal:       18225.45
    Interest Rate:   6.82%
    Period For:      60 months
    Interest Amount: 6210.32
    Future Value:    24435.77
    ============================
    
    To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
    Press any key to close this window . . .
  19. To close the DOS window, press any key

Stepping to Breakpoints

You can combine the Step Into and/or the Step Over feature with breakpoints. That is, you can examine each code line after line until you get to a specific line. This allows you to monitor the values of variables and see their respective values up to a critical section. To do this, first create one or more breakpoints, then proceed with steps of your choice.

Practical LearningPractical Learning: Stepping to Breakpoints

  1. Make sure the previous two breakpoints are still selected.
    To start debugging, on the main menu, click Debug -> Step Into.
    Make sure you can see the Code Editor, the Locals window, and the DOS window

    Debugging - Breakpoint - Stepping Into ...

  2. Click the title bar of Microsoft Visual Studio to give it focus.
    Press F11 continually until the DOS window receives focus
  3. When the value of the principal is requested, type 6535.85 and press Enter
  4. Press F11 to continue. Notice the value on the right side of the closing curly bracket on the GetPrincipal() function:

    Debugging - Breakpoint - Stepping Into ...

  5. Press F11 to continue.
    The focus moves to the "principal = GetPrincipal();" line

    Debugging - Breakpoint - Stepping Into ...

  6. Press F11 to continue.
    The focus moves to the "interestRate = GetInterestRate() / 100;" line

    Debugging - Breakpoint - Stepping Into ...

  7. Press F11 to continue.
    The focus moves to the GetInterestRate() function
  8. Press F11 continually (4 times) until the focus moves to the DOS window
  9. For the interest rate, type 7.625 and press Enter.
    The focus moves to the last line of the GetInterestRate() function
  10. Press F11 to continue. Notice the value on the right side of the closing curly bracket on the GetInterestRate() function:

    Debugging - Breakpoint - Stepping Into ...

  11. Press F11 to continue:

    Debugging - Breakpoint - Stepping Into ...

  12. Press F11 to continue
  13. Press F11 again
  14. Press F11 again.
    The focus moves to the GetPeriods() function
  15. Press F11 continually (4 times) until the focus moves to the DOS window
  16. For the number of months, type 48 and press Enter

    Debugging - Breakpoint - Stepping Into ...

    The focus moves to Microsoft Visual Studio
  17. Press F11 to continue. Notice the value on the right side of the closing curly bracket of the GetPeriods() function:

    Debugging - Breakpoint - Stepping Into ...

  18. Press F11 to continue:

    Debugging - Breakpoint - Stepping Into ...

  19. Press F11 to continue:

    Debugging - Breakpoint - Stepping Into ...

  20. Press F11 continually. Watch how focus moves to the lines in the Code Editor. Also watch the values in the Locals window
    ============================
    Loan Summary
    =--------------------------=
    Principal:       6535.85
    Interest Rate:   7.62%
    Period For:      48 months
    Interest Amount: 1993.43
    Future Value:    8529.28
    ============================
    
    To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
    Press any key to close this window . . .
  21. On the main menu of Microsoft Visual Studio, click Debug and click Stop Debugging.
    If the DOS window is opened, click in it to give it focus. Then press any key to close the DOS window and return to Microsoft Visual Studio
  22. To remove the breakpoints, on the main menu of Microsoft Visual Studio, click Debug -> Delete All Breakpoints
  23. Close your programming environment

A Breakpoints Window

Introduction

Breakpoints are some types of objects and must be managed. For example you can create breakpoints as we saw in previous sections. You can also delete them or create new ones in different sections of your code.

A Window for Breakpoints

To assist you in using and managing breakpoints, Microsoft Visual Studio provides a special window: The Breakpoints window. To get the breackpoint window, you should first start a debugging operation. The Breakpoint window usually appears in the bottom (-right) section of Microsoft Visual Studio.

When in a Breakpoint-Less Session

When you starting a debugging session, if there is no breakpoint in your project, a Breakpoints window would display but it would be empty:

Breakpoints Window

Otherwise, if you had first created some breakpoints, their list would display in the Breakpoints window.

Managing Breakpoints

Introduction

Remember that each breakpoint shows a button in the margin of its line in the Code Editor. In the Breakpoints window, each breakpoint is represented by a row in the list:

Breakpoints Window

Removing a Breakpoint

At any time, such as after using a breakpoint, you can remove it. To delete a breakpoint:

Deleting all Breakpoinst

Remember that you can create more than one breakpoint. If you have more than one breakpoint in your code, execution would pause at each one of them. At any time, you can remove one or all breakpoints. To delete all breakpoints, on the main menu, click Debug -> Delete all Breakpoints.

Disabling a Breakpoint

Remember that when you are debugging your code, if you had created some breakpoints, code execution would stop (or break) at each breakpoint. If you already what is supposed to happen on a breakpoint, we saw that you can delete such a breakpoint. Sometimes, you may want to conduct a debugging operation that must ignore a certain breakpoint, in which case you don't yet want to remove such a breakpoint. In that case, you can disable a breakpoint instead of deleting it.

To disable a breakpoint:

============================================================================

Breakpoints

Introduction

A breakpoint is a line in the code where you want the execution to suspend. The reason you use a breakpoint is to examine what happens in your application when execution reaches that point.

Creating a Breakpoint

A breakpoint is not part of your code; it is just a section you as the developer (or application tester) explicitly specify as a breakpoint. This means that, in order to get a breakpoint, you must create it. To create a breakpoint, first identify the line of code where you want to add it. Then:

A breakpoint is represented by a red circular button:

Breakpoint

In the same way, you can create as many breakpoints as you want.

After creating a breakpoint, when code executes and reaches that line, it would pause and let you know by drawing a right-pointing yellow button:

Breakpoint

Practical LearningPractical Learning: Using Breakpoints

  1. In the Code Editor, click the margin on the left side of "interestRate = GetInterestRate() / 100;"

    Breakpoint

  2. On the main menu, click Debug -> Start Debugging.
    Notice that the DOS window displays

    Debugging - Running to a Breakpoint

  3. When asked, enter the value of the principal as 6255.75
  4. And press Enter.
    The focus moves back to Microsoft Visual Studio:

    Debugging - Running to a Breakpoint

  5. Press F5 to continue
  6. For the interest rate, type 9.725 and press Enter
  7. For the number of months, type 48 and press Enter:
    ============================
    Loan Summary
    =--------------------------=
    Principal:       6255.75
    Interest Rate:   9.73%
    Period For:      48 months
    Interest Amount: 2433.49
    Future Value:    8689.24
    ============================
    
    To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
    Press any key to close this window . . .
  8. To close ther DOS window, press any key.
    The focus moves back to Microsoft Visual Studio
  9. To remove the breakpoint, on the main menu, click Debug -> Toggle Breakpoint
  10. In the Code Editor, right-click the interestRate = GetInterestRate() / 100; line, position the mouse on Breakpoint, and click Insert Breakpoint
  11. In the Code Editor, right-click anywhere on the interestAmount = principal * interestRate * period; line -> Breakpoint -> Insert Breakpoint:

    Debugging - Creating Breakpoints

  12. To start debugging, press F5
  13. When requested, enter the value of the principal as 18225.45
  14. And press Enter

    Debugging - Running to a Breakpoint

  15. To continue debugging, press F5.
    The focus moves to the DOS window
  16. For the interest rate, type 6.815 and press Enter
  17. For the number of months, type 60 and press Enter

    Debugging - Running to a Breakpoint

    The focus moves to Microsoft Visual Studion
  18. To continue debugging, press F5:
    ============================
    Loan Summary
    =--------------------------=
    Principal:       18225.45
    Interest Rate:   6.82%
    Period For:      60 months
    Interest Amount: 6210.32
    Future Value:    24435.77
    ============================
    
    To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
    Press any key to close this window . . .
  19. To close the DOS window, press any key

Stepping to Breakpoints

You can combine the Step Into and/or the Step Over feature with breakpoints. That is, you can examine each code line after line until you get to a specific line. This allows you to monitor the values of variables and see their respective values up to a critical section. To do this, first create one or more breakpoints, then proceed with steps of your choice.

Practical LearningPractical Learning: Stepping to Breakpoints

  1. Make sure the previous two breakpoints are still selected.
    To start debugging, on the main menu, click Debug -> Step Into.
    Make sure you can see the Code Editor, the Locals window, and the DOS window

    Debugging - Breakpoint - Stepping Into ...

  2. Click the title bar of Microsoft Visual Studio to give it focus.
    Press F11 continually until the DOS window receives focus
  3. When the value of the principal is requested, type 6535.85 and press Enter
  4. Press F11 to continue. Notice the value on the right side of the closing curly bracket on the GetPrincipal() function:

    Debugging - Breakpoint - Stepping Into ...

  5. Press F11 to continue.
    The focus moves to the "principal = GetPrincipal();" line

    Debugging - Breakpoint - Stepping Into ...

  6. Press F11 to continue.
    The focus moves to the "interestRate = GetInterestRate() / 100;" line

    Debugging - Breakpoint - Stepping Into ...

  7. Press F11 to continue.
    The focus moves to the GetInterestRate() function
  8. Press F11 continually (4 times) until the focus moves to the DOS window
  9. For the interest rate, type 7.625 and press Enter.
    The focus moves to the last line of the GetInterestRate() function
  10. Press F11 to continue. Notice the value on the right side of the closing curly bracket on the GetInterestRate() function:

    Debugging - Breakpoint - Stepping Into ...

  11. Press F11 to continue:

    Debugging - Breakpoint - Stepping Into ...

  12. Press F11 to continue
  13. Press F11 again
  14. Press F11 again.
    The focus moves to the GetPeriods() function
  15. Press F11 continually (4 times) until the focus moves to the DOS window
  16. For the number of months, type 48 and press Enter

    Debugging - Breakpoint - Stepping Into ...

    The focus moves to Microsoft Visual Studio
  17. Press F11 to continue. Notice the value on the right side of the closing curly bracket of the GetPeriods() function:

    Debugging - Breakpoint - Stepping Into ...

  18. Press F11 to continue:

    Debugging - Breakpoint - Stepping Into ...

  19. Press F11 to continue:

    Debugging - Breakpoint - Stepping Into ...

  20. Press F11 continually. Watch how focus moves to the lines in the Code Editor. Also watch the values in the Locals window
    ============================
    Loan Summary
    =--------------------------=
    Principal:       6535.85
    Interest Rate:   7.62%
    Period For:      48 months
    Interest Amount: 1993.43
    Future Value:    8529.28
    ============================
    
    To automatically close the console when debugging stops, enable Tools->Options->Debugging->Automatically close the console when debugging stops.
    Press any key to close this window . . .
  21. On the main menu of Microsoft Visual Studio, click Debug and click Stop Debugging.
    If the DOS window is opened, click in it to give it focus. Then press any key to close the DOS window and return to Microsoft Visual Studio
  22. To remove the breakpoints, on the main menu of Microsoft Visual Studio, click Debug -> Delete All Breakpoints
  23. Close your programming environment

A Breakpoints Window

Introduction

Breakpoints are some types of objects and must be managed. For example you can create breakpoints as we saw in previous sections. You can also delete them or create new ones in different sections of your code.

A Window for Breakpoints

To assist you in using and managing breakpoints, Microsoft Visual Studio provides a special window: The Breakpoints window. To get the breackpoint window, you should first start a debugging operation. The Breakpoint window usually appears in the bottom (-right) section of Microsoft Visual Studio.

When in a Breakpoint-Less Session

When you starting a debugging session, if there is no breakpoint in your project, a Breakpoints window would display but it would be empty:

Breakpoints Window

Otherwise, if you had first created some breakpoints, their list would display in the Breakpoints window.

Managing Breakpoints

Introduction

Remember that each breakpoint shows a button in the margin of its line in the Code Editor. In the Breakpoints window, each breakpoint is represented by a row in the list:

Breakpoints Window

Removing a Breakpoint

At any time, such as after using a breakpoint, you can remove it. To delete a breakpoint:

Disabling a Breakpoint

Remember that when you are debugging your code, if you had created some breakpoints, code execution would stop (or break) at each breakpoint. If you already what is supposed to happen on a breakpoint, we saw that you can delete such a breakpoint. Sometimes, you may want to conduct a debugging operation that must ignore a certain breakpoint, in which case you don't yet want to remove such a breakpoint. In that case, you can disable a breakpoint instead of deleting it.

To disable a breakpoint:

Deleting all Breakpoinst

Remember that you can create more than one breakpoint. If you have more than one breakpoint in your code, execution would pause at each one of them. At any time, you can remove one or all breakpoints. To delete all breakpoints, on the main menu, click Debug -> Delete all Breakpoints.

Debugging Separate Files

Introduction

As you know already, a program can use many files, some files come from the .NET Framework, some are created by Microsoft Visual Studio when you start a project, and you create the others as you judge them necessary for your project. As a result, when debugging, you can consider files that are linked at one time or another. The process of debugging is primarily the same. You just have to keep in mind that you are dealing with many classes and probably different files. This has some consequences on the results you see.

Practical LearningPractical Learning: Debugging With a Class

  1. Start Microsoft Visual Studio
  2. Create a new C# Console App named WattsALoan2
  3. To create a folder, in the Solution Explorer, right-click WattsALoan02 -> Add -> New Folder
  4. Type Models and press Enter
  5. To create a new class, in the Solution Explorer, right-click Models -> Add -> Class...
  6. Change the Name to Customer
  7. Click Add
  8. Change the class as follows:
    namespace WattsALoan02.Models
    {
        internal class Customer
        {
            public string fullName;
            public string phoneNumber;
    
            public Customer(string name = "John Doe", string phone = "000-000-0000")
            {
                fullName = name;
                phoneNumber = phone;
            }
        }
    }
  9. To create another class, in the Solution Explorer, right-click Models -> Add -> Class...
  10. Type Employee
  11. Press Enter
  12. Change the class as follows:
    namespace WattsALoan02.Models
    {
        internal class Employee
        {
            public long   employeeNumber;
            public string firstName;
            public string lastName;
            public string title;
    
            public Employee(long   emplNbr  = 0,
                            string fName    = "Unknown",
                            string lName    = " Not Specified",
                            string position = "Loan Specialist")
            {
                lastName       = lName;
                firstName      = fName;
                employeeNumber = emplNbr;
                title          = position;
            }
    
            public string GetEmployeeName()
            {
                return lastName + ", " + firstName;
            }
        }
    }
  13. To add another class to the project, in the Solution Explorer, right-click Models -> Add -> Class...
  14. Change the Name to LoanInformation
  15. Click Add
  16. Change the class as follows:
    namespace WattsALoan02.Models
    {
        internal class LoanInformation
        {
            public double principal;
            public double interestRate;
            public double period;
            public double interestAmount;
            public double futureValue;
        }
    }
  17. In the Solution Explorer, right-click Programa.cs -> Rename
  18. Type LoanEvaluation (to get LoanEvaluation.cs) and press Enter
  19. Change the document as follows:
    using WattsALoan.Models;
    using static System.Console;
    
    public class LoanEvaluation
    {
        private Employee        clerk;
        private Customer        client;
        private LoanInformation loan;
    
        public LoanEvaluation()
        {
            clerk  = new Employee();
            client = new Customer();
            loan   = new LoanInformation();
        }
    
        public void IdentifyEmployee()
        {
            WriteLine("Enter the following pieces of information " +
                              "about the employee who prepared this loan.");
            Write("Employee #: ");
            clerk.employeeNumber = long.Parse(ReadLine()!);
            Write("First Name: ");
            clerk.firstName      = ReadLine()!;
            Write("Last Name:  ");
            clerk.lastName       = ReadLine()!;
            Write("Title:      ");
            clerk.title          = ReadLine()!;
        }
    
        public void IdentifyCustomer()
        {
            WriteLine("Enter the following pieces of information " +
                      "about the customer for whom this loan was prepared.");
            Write("Customer Name: ");
            client.fullName    = ReadLine()!;
            Write("Phone Number:  ");
            client.phoneNumber = ReadLine()!;
        }
    
        public void GetLoanValues()
        {
            WriteLine("Enter the following pieces of information " +
                      "about the values used for the loan.");
    
            Write("Enter the principal: ");
            loan.principal    = double.Parse(ReadLine()!);
      
            Write("Enter the interest rate: ");
            loan.interestRate = double.Parse(ReadLine()!) / 100;
    
            Write("Enter the number of months: ");
            loan.period       = double.Parse(ReadLine()!) / 12;
        }
    
        public void Show()
        {
            loan.InterestAmount = loan.principal * loan.interestRate * loan.period;
            loan.FutureValue    = loan.principal + loan.interestAmount;
    
            WriteLine("======================================");
            WriteLine("Loan Summary");
            WriteLine("=------------------------------------=");
            WriteLine("Prepared by:  {0} - {1}\n              {2}",
                              clerk.employeeNumber,
                              clerk.GetEmployeeName(), clerk.title);
            WriteLine("=------------------------------------=");
            WriteLine("Prepared for: {0}\n              {1}",
                              client.fullName, client.phoneNumber);
            WriteLine("=------------------------------------=");
            WriteLine("Principal:       {0:F}", loan.principal);
            WriteLine("Interest Rate:   {0:P}", loan.interestRate);
            WriteLine("Period For:      {0} months", loan.period * 12);
            WriteLine("Interest Amount: {0:F}", loan.interestAmount);
            WriteLine("Future Value:    {0:F}", loan.futureValue);
            WriteLine("======================================");
        }
    }

Previous Copyright © 2010-2026, FunctionX Monday 10 November 2025, 10:56 Next