Movatterモバイル変換


[0]ホーム

URL:


Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Download Microsoft EdgeMore info about Internet Explorer and Microsoft Edge
Table of contentsExit focus mode

Tutorial: Debug a .NET console application using Visual Studio Code

  • 2024-12-05
Feedback

In this article

This tutorial introduces the debugging tools available in Visual Studio Code for working with .NET apps.

Prerequisites

Use Debug build configuration

Debug andRelease are .NET's built-in build configurations. You use the Debug build configuration for debugging and the Release configuration for the final release distribution.

In the Debug configuration, a program compiles with full symbolic debug information and no optimization. Optimization complicates debugging, because the relationship between source code and generated instructions is more complex. The release configuration of a program has no symbolic debug information and is fully optimized.

By default, Visual Studio Code launch settings use the Debug build configuration, so you don't need to change it before debugging.

  1. Start Visual Studio Code.

  2. Open the folder of the project that you created inCreate a .NET console application using Visual Studio Code.

Set a breakpoint

Abreakpoint temporarily interrupts the execution of the application before the line with the breakpoint is run.

  1. Open theProgram.cs file.

  2. Set abreakpoint on the line that displays the name, date, and time, by clicking in the left margin of the code window. The left margin is to the left of the line numbers. Other ways to set a breakpoint are by pressingF9 or choosingRun >Toggle Breakpoint from the menu while the line of code is selected.

    Visual Studio Code indicates the line on which the breakpoint is set by displaying a red dot in the left margin.

    Breakpoint set

Start debugging

  1. Open the Debug view by selecting the Debugging icon on the left side menu.

    Open the Debug tab in Visual Studio Code

  2. SelectRun and Debug. If asked, selectC# and then selectC#: Launch startup project. Other ways to start the program in debugging mode are by pressingF5 or choosingRun >Start Debugging from the menu.

    Start debugging

  3. If asked toSelect Launch Configuration, selectC#: HelloWorld HelloWorld.

  4. Select theDebug Console tab to see the "What is your name?" prompt that the program displays before waiting for a response.

    Select the Debug Console tab

  5. Enter a string in theDebug Console window in response to the prompt for a name, and then pressEnter.

    Program execution stops when it reaches the breakpoint and before theConsole.WriteLine method runs. TheLocals section of theVariables window displays the values of variables that are defined in the currently running method.

    Breakpoint hit, showing Locals

Use the Debug Console

TheDebug Console window lets you interact with the application you're debugging. You can change the value of variables to see how it affects your program.

  1. Select theDebug Console tab.

  2. Entername = "Gracie" at the prompt at the bottom of theDebug Console window and pressEnter.

    Change variable values

  3. EntercurrentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() at the bottom of theDebug Console window and pressEnter.

    TheVariables window displays the new values of thename andcurrentDate variables.

  4. Continue program execution by selecting theContinue button in the toolbar. Another way to continue is by pressingF5.

    Continue debugging

    The values displayed in the console window correspond to the changes you made in theDebug Console.

    Terminal showing the entered values

  5. PressEnter to exit the application and stop debugging.

Set a conditional breakpoint

The program displays the string that the user enters. What happens if the user doesn't enter anything? You can test this with a useful debugging feature called aconditional breakpoint.

  1. Right-click (Ctrl-click on macOS) on the red dot that represents the breakpoint. In the context menu, selectEdit Breakpoint to open a dialog that lets you enter a conditional expression.

    Breakpoint context menu

  2. SelectExpression in the drop-down, enter the following conditional expression, and pressEnter.

    String.IsNullOrEmpty(name)

    Enter a conditional expression

    Each time the breakpoint is hit, the debugger calls theString.IsNullOrEmpty(name) method, and it breaks on this line only if the method call returnstrue.

    Instead of a conditional expression, you can specify ahit count, which interrupts program execution before a statement is run a specified number of times. Another option is to specify afilter condition, which interrupts program execution based on such attributes as a thread identifier, process name, or thread name.

  3. Start the program with debugging by pressingF5.

  4. In theDebug Console tab, pressEnter when prompted to enter your name.

    Because the condition you specified (name is eithernull orString.Empty) has been satisfied, program execution stops when it reaches the breakpoint and before theConsole.WriteLine method runs.

    TheVariables window shows that the value of thename variable is"", orString.Empty.

  5. Confirm the value is an empty string by entering the following statement at theDebug Console prompt and pressingEnter. The result istrue.

    name == String.Empty
  6. Select theContinue button on the toolbar to continue program execution.

  7. PressEnter to exit the program and stop debugging.

  8. Clear the breakpoint by clicking on the dot in the left margin of the code window. Other ways to clear a breakpoint are by pressingF9 or choosingRun > Toggle Breakpoint from the menu while the line of code is selected.

  9. If you get a warning that the breakpoint condition will be lost, selectRemove Breakpoint.

Step through a program

Visual Studio Code also allows you to step line by line through a program and monitor its execution. Ordinarily, you'd set a breakpoint and follow program flow through a small part of your program code. Since this program is small, you can step through the entire program.

  1. Set a breakpoint on the opening curly brace of theMain method.

  2. PressF5 to start debugging.

    Visual Studio Code highlights the breakpoint line.

    At this point, theVariables window shows that theargs array is empty, andname andcurrentDate have default values.

  3. SelectRun >Step Into or pressF11.

    Step-Into button

    Visual Studio Code highlights the next line.

  4. SelectRun >Step Into or pressF11.

    Visual Studio Code runs theConsole.WriteLine for the name prompt and highlights the next line of execution. The next line is theConsole.ReadLine for thename. TheVariables window is unchanged, and theTerminal tab shows the "What is your name?" prompt.

  5. SelectRun >Step Into or pressF11.

    Visual Studio highlights thename variable assignment. TheVariables window shows thatname is stillnull.

  6. Respond to the prompt by entering a string in the Terminal tab and pressingEnter.

    TheDebug Console tab might not display the string you enter while you're entering it, but theConsole.ReadLine method will capture your input.

  7. SelectRun >Step Into or pressF11.

    Visual Studio Code highlights thecurrentDate variable assignment. TheVariables window shows the value returned by the call to theConsole.ReadLine method. TheTerminal tab displays the string you entered at the prompt.

  8. SelectRun >Step Into or pressF11.

    TheVariables window shows the value of thecurrentDate variable after the assignment from theDateTime.Now property.

  9. SelectRun >Step Into or pressF11.

    Visual Studio Code calls theConsole.WriteLine(String, Object, Object) method. The console window displays the formatted string.

  10. SelectRun >Step Out or pressShift+F11.

    Step-Out button

    The terminal displays "Press any key to exit..."

  11. Press any key to exit the program.

Use Release build configuration

Once you've tested the Debug version of your application, you should also compile and test the Release version. The Release version incorporates compiler optimizations that can affect the behavior of an application. For example, compiler optimizations that are designed to improve performance can create race conditions in multithreaded applications.

To build and test the Release version of your console application, open theTerminal and run the following command:

dotnet run --configuration Release

Additional resources

Next steps

In this tutorial, you used Visual Studio Code debugging tools. In the next tutorial, you publish a deployable version of the app.

Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, seeour contributor guide.

Feedback

Was this page helpful?

YesNo

In this article

Was this page helpful?

YesNo