Visual Studio의 디버깅 기본 사항

완료됨

디버깅 기본 사항

오류가 없는 코드를 작성하는 것은 어렵습니다. Visual Studio를 사용하여 프로젝트에서 버그를 찾습니다.

간단한 디버깅

프로젝트에 print 문을 추가하여 코드가 실행되는 방식을 확인합니다. 효과적으로 실행되지 않는 코드는 버그를 일으킬 수 있습니다. 작은 프로젝트에서 간단한 디버깅을 위해 이 메서드를 사용합니다. 이 메서드는 간단한 프로젝트 이외에는 권장되지 않습니다.

UWP(유니버설 Windows 플랫폼) 프로젝트에 print 문을 추가합니다.

  1. 솔루션 탐색기에서 MainPage.xaml을 확장하고 MainPage.xaml.cs를 선택합니다.

    Screenshot of the Visual Studio solution explorer. The MainPage.xaml.cs file is highlighted.

    여기에 있는 C# 코드는 앱에 표시되는 창과 연결됩니다.

  2. 다음 코드를 찾을 때까지 편집기 창에서 아래로 스크롤합니다.

    public MainPage()
    {
      this.InitializeComponent();
    }
    

    위 코드를 다음 코드로 변경합니다.

    public MainPage()
    {
      this.InitializeComponent();
      Hello();
    }
    
    public void Hello()
    {
      System.Diagnostics.Debug.WriteLine("Hello!");
    }
    

    편집기 창은 다음과 같이 표시됩니다.

    Screenshot of the editor window in Visual Studio. Sample code from the previous WriteLine steps is shown.

  3. 실행 단추를 선택하거나 F5 키를 눌러 프로젝트를 실행합니다.

    Screenshot showing the Visual Studio menu bar. The run button, represented by a green triangle, is highlighted.

  4. 앱 창을 최소화하고 Visual Studio를 다시 보기로 가져옵니다. 출력을 선택하여 앱에서 만든 Hello! 메시지를 봅니다.

    Screenshot showing the Visual Studio output window with the Hello! message shown.

    참고 항목

    WPF(Windows Presentation Foundation)Windows Forms 앱에 디버그 텍스트를 표시할 수도 있습니다.

  5. 중지 단추를 선택하여 앱을 중지합니다.

    Screenshot showing the Visual Studio menu bar. The stop button, represented by a red square, is highlighted.

디버깅 향상

중단점을 사용하여 특정 지점에서 앱을 중지하여 무슨 일이 일어나고 있는지 알아보세요. 어떻게 작동하는지 확인해 보겠습니다.

  1. 다음 코드와 일치하도록 Hello() 함수를 업데이트합니다.

    public void Hello()
    {
      int a = 1;
      int b = 2;
      int c = a + b;
    
      if (c == 4)
      {
          // Success
      }
      else
      {
          // Fail
      }
    }
    

    편집기 창은 다음과 같이 표시됩니다.

    Screenshot of the editor window in Visual Studio. Sample code from the above breakpoint steps is shown.

    설명: 앱은 4 값을 사용하여 Hello() 함수를 실행하려고 합니다. 아쉽게도 이 경우 a + bc와 같지 않습니다. 중단점을 사용하여 이 계산을 수행하는 줄을 살펴보겠습니다.

  2. 회색 여백 내에서 int c = a + b; 코드를 포함하는 줄 옆을 클릭합니다. 빨간색 점이 표시됩니다. 이 점이 중단점입니다.

    Screenshot of the Visual Studio editor window. A breakpoint (red circle) has been placed in the margin.

  3. 실행 단추를 선택하거나 F5 키를 눌러 앱을 다시 시작합니다.

    Screenshot showing the Visual Studio menu bar. The run button, represented by a green triangle, is highlighted.

    앱이 즉시 실행을 중지합니다. 작은 노란색 화살표가 오류가 포함된 줄 옆에 여백 내에 나타납니다. 강조 표시된 코드 줄은 다음에 실행됩니다.

    Screenshot of the Visual Studio editor window. A yellow arrow is displayed within the breakpoint in the margin.

    프로그램을 일시 중지된 상태에서 도구 모음의 한 단계씩 코드 실행, 프로시저 단위 실행, 프로시저 나가기 단추를 사용하여 한 줄씩 단계별로 실행할 수 있습니다.

    Screenshot of the Visual Studio menu bar. The step into, step over, and step out options are highlighted.

  4. 한 단계씩 코드 실행을 선택하고 노란색 화살표가 제어 흐름을 따르는 것을 지켜봅니다.

    Screenshot of the Visual Studio menu bar. The step into option is highlighted.

  5. c 변수를 가리킵니다.

    Screenshot of the Visual Studio editor window. A pop-up displays where the mouse was hovering. It indicates c has a value of three.

    변수의 현재 값을 표시하는 창이 나타납니다. 알다시피, 함수가 기대하는 4가 아니라 3입니다.

  6. 녹색 화살표가 나타날 때까지 닫는 중괄호 근처를 마우스로 가리킵니다.

    Screenshot of the Visual Studio editor window. A green arrow is displayed where the mouse was hovering.

    이 중단점을 사용하면 포함된 줄에 도달할 때까지 앱을 실행할 수 있습니다.

  7. 중지 단추를 선택하여 앱 실행을 중지합니다.

    Screenshot showing the Visual Studio menu bar. The stop button, represented red square, is highlighted.

디버깅의 철학

디버깅 개요입니다. 사용할 수 있는 도구를 아는 것이 전투의 절반입니다. 무언가가 작동하지 않는 이유를 이해하려면 경험, 인내, 운이 필요합니다. 다음 팁을 사용하여 코드를 디버그합니다.

  • 코드가 요청된 작업을 정확히 수행하고 있음을 이해합니다. 여러분은 단지 잘못된 것을 수행하도록 요청했을 뿐입니다.
  • 친구나 자신에게 코드를 한 줄씩 설명해 보세요. 소리 내어 말하는 것이 도움이 될 수 있습니다.
  • 코드를 더 작은 섹션(리팩터링 형식)으로 나누고 각 섹션이 작동하는지 확인합니다.
  • 때로는 휴식을 취하고 마음을 비우는 게 도움이 됩니다.