연습 - 디버그 환경에서 코드 실행

완료됨

Visual Studio Code 사용자 인터페이스를 사용하면 개발자가 디버그 환경에서 코드를 실행할 수 있습니다. 디버깅에 대한 지원은 확장에서 제공되며, C# 개발자를 위해 디버거 지원은 코드 개발 및 IntelliSense에 대한 지원을 제공하는 동일한 확장에서 제공됩니다.

디버거 및 애플리케이션 상호 작용

코드 디버거를 사용하여 코드 실행을 일시 중지 및 다시 시작하고, 변수 상태를 검사하고, 런타임에 변수에 할당된 값을 변경할 수도 있습니다. 디버거가 실행 중인 애플리케이션을 어떻게 제어하고 수정할 수 있는지 궁금할 수 있습니다. 짧은 대답은 디버거가 애플리케이션의 런타임 환경 및 실행 코드에 액세스할 수 있다는 것입니다.

비고

런타임 환경과의 디버거 상호 작용은 고급 항목입니다. 또한 디버거가 백그라운드에서 작동하는 방식을 이해하는 것은 디버거를 사용하기 위한 요구 사항이 아닙니다. 그러나 다음 설명은 호기심을 충족시킬 수 있습니다.

C#용 Visual Studio Code 디버거는 .NET 런타임을 사용하여 애플리케이션을 시작하고 상호 작용합니다. 디버거를 시작하면 런타임의 새 인스턴스를 만들고 해당 인스턴스 내에서 애플리케이션을 실행합니다. 런타임에는 디버거가 실행 중인 프로세스(애플리케이션)에 연결하는 데 사용하는 API(애플리케이션 프로그래밍 인터페이스)가 포함됩니다.

애플리케이션이 실행되고 디버거가 연결되면 디버거는 .NET 런타임의 디버깅 API 및 표준 디버그 프로토콜을 사용하여 실행 중인 프로세스와 통신합니다. 디버거는 중단점을 설정하고, 코드를 단계별로 실행하고, 변수를 검사하여 프로세스(.NET 런타임 인스턴스 내에서 실행되는 애플리케이션)와 상호 작용할 수 있습니다. Visual Studio Code의 디버거 인터페이스를 사용하면 소스 코드를 탐색하고 호출 스택을 보고 식을 평가할 수 있습니다.

디버그 세션을 지정하는 가장 일반적인 방법은 launch.json 파일의 시작 구성입니다. 이 방법은 디버거 도구에서 사용하도록 설정된 기본 옵션입니다. 예를 들어 C# 콘솔 애플리케이션을 만들고 실행 메뉴에서 디버깅 시작을 선택하는 경우 디버거는 이 방법을 사용하여 애플리케이션을 시작, 연결 및 상호 작용합니다.

새 코드 프로젝트 만들기

디버거 도구를 학습하는 첫 번째 단계는 디버거에서 실행할 수 있는 코드 프로젝트를 만드는 것입니다.

  1. Visual Studio Code의 새 인스턴스를 엽니다.

  2. 파일 메뉴에서 폴더 열기를 선택합니다.

  3. 폴더 열기 대화 상자에서 Windows 데스크톱 폴더로 이동합니다.

  4. 폴더 열기 대화 상자에서 새 폴더를 선택합니다.

  5. 새 폴더의 이름을 Debug101로 지정하고 폴더 선택을 선택합니다.

  6. 터미널 메뉴에서 새 터미널을 선택합니다.

    .NET CLI 명령을 사용하여 새 콘솔 앱을 만들 수 있습니다.

  7. 터미널 패널 명령 프롬프트에서 다음 명령을 입력합니다.

    dotnet new console
    
  8. 터미널 패널을 닫습니다.

디버깅을 위한 시작 구성 검사

Visual Studio Code는 시작 구성 파일을 사용하여 디버그 환경에서 실행되는 애플리케이션을 지정합니다.

  1. Debug101 폴더에 Debug101.sln 파일이 없는 경우 Program.cs 선택한 다음 .sln 파일이 만들어졌는지 확인합니다.

    C# 코드 파일을 열면 환경이 프로젝트 파일을 확인하라는 메시지가 표시됩니다. .sln 파일은 Visual Studio에서 프로젝트를 관리하는 데 사용되는 솔루션 파일이며 일반적으로 Visual Studio Code에서 새 프로젝트를 만들 때 자동으로 만들어집니다. .sln 파일은 디버거에서 디버그 환경에서 실행해야 하는 프로젝트를 식별하는 데 사용됩니다.

  2. 보기 메뉴에서 명령 팔레트를 선택합니다.

  3. 명령 프롬프트에서 .net: g 를 입력하고 .NET: 빌드 및 디버그에 대한 자산 생성을 선택합니다.

  4. 프로젝트 폴더에 추가된 새 .vscode 폴더를 확인합니다.

    탐색기의 .vscode 폴더를 보여 주는 스크린샷

    폴더에는 .vscode 디버그 환경을 구성하는 데 사용되는 파일이 포함되어 있습니다.

  5. 폴더를 확장하고 .vscodelaunch.json 파일을 선택합니다.

  6. launch.json 파일을 검사하는 데 1분 정도 걸릴 수 있습니다.

    시작 구성 파일에는 여러 구성이 포함될 수 있습니다. 각 구성에는 해당 구성을 정의하는 데 사용되는 특성 컬렉션이 포함됩니다.

  7. prelaunchTask 특성은 빌드 작업을 지정합니다.

  8. 폴더에서 .vscodetasks.json선택합니다.

  9. tasks.json 파일에는 코드 프로젝트에 대한 빌드 작업이 포함되어 있습니다.

  10. launch.json 파일과 tasks.json 파일을 닫으세요.

이 모듈의 뒷부분에서 시작 구성 특성을 자세히 살펴보겠습니다.

실행 메뉴에서 코드 실행

Visual Studio Code의 실행 메뉴는 디버거를 사용하거나 사용하지 않고 코드를 실행하는 옵션을 제공합니다.

  1. Program.cs 파일을 엽니다.

  2. Program.cs 파일의 내용을 다음 코드로 바꿉니다.

    /* 
    This code uses a names array and corresponding methods to display
    greeting messages
    */
    
    string[] names = new string[] { "Sophia", "Andrew", "AllGreetings" };
    
    string messageText = "";
    
    foreach (string name in names)
    {
        if (name == "Sophia")
            messageText = SophiaMessage();
        else if (name == "Andrew")
            messageText = AndrewMessage();
        else if (name == "AllGreetings")
            messageText = SophiaMessage();
            messageText = messageText + "\n\r" + AndrewMessage();
    
        Console.WriteLine(messageText + "\n\r");
    }
    
    bool pauseCode = true;
    while (pauseCode == true);
    
    static string SophiaMessage()
    {
        return "Hello, my name is Sophia.";
    }
    
    static string AndrewMessage()
    {
        return "Hi, my name is Andrew. Good to meet you.";
    }
    
  3. 파일 메뉴에서 저장을 선택합니다.

  4. 실행 메뉴를 엽니다.

    실행 메뉴는 디버깅을 사용하거나 사용하지 않고 코드를 실행하기 위한 옵션을 제공합니다.

  5. 실행 메뉴에서 디버깅하지 않고 실행 선택

  6. 디버그 콘솔 패널에 콘솔 출력이 표시되고 디버그 도구 모음 에 실행 컨트롤이 표시됩니다.

    디버그 콘솔 패널이 코드 편집기 아래에 표시되어야 합니다. 기본적으로 디버그 도구 모음 (코드 실행 컨트롤을 표시하는 작은 도구 모음)은 코드 편집기 위에 있으며 Visual Studio Code 창의 가로 가운데에 배치됩니다.

  7. 디버그 도구 모음에서 중지를 선택합니다.

실행 메뉴에서 디버그 세션 시작

실행 메뉴에는 디버그 세션을 시작하는 옵션이 포함되어 있습니다.

  1. 실행 메뉴에서 디버깅 시작을 선택합니다.

  2. 잠시 시간을 내어 DEBUG 콘솔 패널에 표시되는 메시지를 검토합니다.

    애플리케이션의 출력은 디버깅하지 않고 실행했을 때와 동일하지만 디버그 환경 준비와 관련된 다른 메시지가 표시됩니다.

  3. .NET 리소스 및 Debug101 애플리케이션 로드에 대한 메시지를 확인합니다.

    처음 두 메시지는 .NET 라이브러리 및 Debug101 애플리케이션을 로드하는 것을 보고합니다.

    Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.0\System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
    Loaded 'C:\Users\someuser\Desktop\Debug101\bin\Debug\net10.0\Debug101.dll'. Symbols loaded.
    

    디버거는 .NET 런타임의 특수 인스턴스를 사용하여 애플리케이션 실행을 제어하고 애플리케이션 상태를 평가합니다.

  4. 디버그 도구 모음에서 중지를 선택합니다.

실행 및 디버그 보기에서 코드 실행

Visual Studio Code의 실행 및 디버그 보기는 풍부한 디버깅 환경을 지원합니다.

  1. 실행 및 디버그 보기로 전환합니다.

    실행 및 디버그 보기의 실행 옵션을 보여 주는 스크린샷

  2. 실행 및 디버그 보기에서 디버깅 시작을 선택합니다.

    디버깅 시작 단추는 보기 맨 위에 있는 제어판의 녹색 화살표입니다.

  3. 디버그 콘솔 패널에는 실행 메뉴에서 디버그 프로세스를 시작할 때 표시된 디버거 구성에 대한 동일한 메시지가 표시됩니다.

  4. 디버그 도구 모음에서 중지를 선택합니다.

애플리케이션의 출력 검사

  1. 디버그 콘솔 패널을 닫기 전에 코드에서 생성한 출력을 검토하는 데 1분이 소요됩니다.

  2. 앤드류의 인사말 메시지는 예기치 않게 반복됩니다.

이 모듈의 나머지 부분에서는 Visual Studio Code 디버거 도구를 사용하여 코딩 문제를 조사합니다.

요약

이 단원에서 기억해야 하는 몇 가지 중요한 사항은 다음과 같습니다.

  • C#용 Visual Studio Code 디버거는 .NET 런타임을 사용하여 애플리케이션을 시작하고 상호 작용합니다.
  • Visual Studio Code 실행 메뉴에는 디버거가 연결되어 있고 연결하지 않고 애플리케이션을 시작할 수 있는 옵션이 있습니다.
  • 디버그 도구 모음에는 실행 중인 프로세스를 중지하는 단추가 포함되어 있습니다.
  • 실행 및 디버그 보기에는 애플리케이션 디버깅을 시작하는 옵션이 포함되어 있습니다.