Mac용 Visual Studio를 사용하여 디버깅

Important

Mac용 Visual Studio Microsoft 에 따라 2024년 8월 31일에 사용 중지될 예정입니다. 최신 수명 주기 정책입니다. Mac용 Visual Studio 계속 사용할 수 있지만 Mac의 개발자를 위한 몇 가지 다른 옵션(예: VS Code용 새 C# Dev Kit 확장의 미리 보기 버전)이 있습니다.

지원 타임라인 및 대안에 대해 자세히 알아봅니다.

Mac용 Visual Studio에는 .NET Core, .NET Framework, Unity 및 Xamarin 애플리케이션을 지원하는 디버거가 있습니다.

Mac용 Visual Studio에서는 Mono 소프트 디버거를 사용합니다. 이 디버거는 Mono 런타임에 구현되어, Mac용 Visual Studio에서 모든 플랫폼의 관리 코드를 디버그할 수 있게 해줍니다.

디버거

Mac용 Visual Studio에서는 Mono 소프트 디버거를 사용하여 모든 Xamarin 애플리케이션의 관리(C# 또는 F#) 코드를 디버그합니다. Mono Soft 디버거는 Mono 런타임에 기본 제공되는 협조적 디버거란 점에서 기본 디버거와 다릅니다. 생성된 코드와 Mono 런타임이 IDE와 함께 작동하여 디버깅 경험을 제공합니다. Mono 런타임은 유선 프로토콜을 통해 디버깅 기능을 공개합니다. 자세한 내용은 Mono 설명서를 참조하세요.

LLDB 또는 GDB와 같은 하드 디버거는 디버깅된 프로그램의 지식이나 협력 없이 프로그램을 제어합니다. 네이티브 iOS 또는 Android 코드를 디버그해야 하는 경우 Xamarin 애플리케이션을 디버깅할 때 유용할 수 있습니다.

.NET Core 및 ASP.NET Core 애플리케이션의 경우 Mac용 Visual Studio에서 .NET Core 디버거를 사용합니다. 이 디버거도 협조적 디버거이며 .NET 런타임과 함께 작동합니다.

디버거 사용

애플리케이션 디버그를 시작하려면 구성이 디버그로 설정되어 있는지 확인해야 합니다. 디버그 구성은 중단점, 데이터 시각화 도우미 사용, 호출 스택 보기 등 디버깅을 지원하는 유용한 도구 집합을 제공합니다.

Debug configuration

중단점 설정

IDE에서 중단점을 설정하려면 편집기의 여백 영역에서 중단하려는 코드의 줄 번호 옆을 클릭합니다.

Setting breakpoint in margin

중단점 창으로 이동하여 코드에 설정된 모든 중단점을 볼 수 있습니다.

List of breakpoints

디버그 시작

디버깅을 시작하려면 대상 브라우저, 디바이스 또는 시뮬레이터/에뮬레이터를 선택합니다.

Debug configurationSelect target device

그런 다음, 재생 단추 또는 Cmd + return을 눌러 애플리케이션을 배포합니다. 중단점을 적중하면 코드가 노란색으로 강조 표시됩니다.

Highlight showing breakpoint has been hit

이 시점에서 개체 값을 검사하는 데 사용되는 도구 등의 디버깅 도구를 사용하여 코드에서 발생하는 상황에 대한 자세한 정보를 얻을 수 있습니다.

Debug visualizations

조건부 중단점

중단점이 발생해야 하는 상황을 결정하는 규칙을 설정할 수도 있습니다. 이를 조건부 중단점 추가라고 합니다. 조건부 중단점을 설정하려면 중단점 속성 창에 액세스합니다. 다음 두 가지 방법으로 액세스할 수 있습니다.

  • 새 조건부 중단점을 추가하려면 편집기 여백에서 중단점을 설정하려는 코드의 줄 번호 왼쪽을 마우스 오른쪽 단추로 클릭하고 새 중단점을 선택합니다.

Breakpoint context menu

  • 기존 중단점에 조건을 추가하려면 중단점을 마우스 오른쪽 단추로 클릭하고 중단점 속성을 선택하거나 중단점 창에서 아래 그림에 표시된 중단점 편집 단추를 선택합니다.

Edit existing Breakpoint in Breakpoints Window

그런 다음 중단점이 발생할 조건을 입력할 수 있습니다.

Edit Breakpoint conditions

단계별 코드 실행

중단점에 도달하면 디버그 도구를 사용하여 프로그램 실행을 제어할 수 있습니다. Mac용 Visual Studio에서 코드를 실행하고 단계별로 실행할 수 있는 단추 4개를 표시합니다. Mac용 Visual Studio에서는 다음과 같이 표시됩니다.

Buttons to step through code

네 단추는 다음과 같습니다.

  • 재생 - 다음 중단점까지 코드 실행을 시작합니다.
  • 프로시저 단위 실행 - 다음 코드 줄을 실행합니다. 다음 줄이 함수 호출인 경우 프로시저 단위 실행은 함수를 실행하고, 함수 의 다음 코드 줄에서 중지합니다.
  • 한 단계씩 코드 실행 - 다음 코드 줄을 실행합니다. 다음 줄이 함수 호출인 경우 한 단계씩 코드 실행은 함수의 첫 번째 줄에서 중지되며, 함수 디버깅을 줄 단위로 계속할 수 있도록 합니다. 다음 줄이 함수가 아닌 경우 프로시저 단위 실행과 동일하게 동작합니다.
  • 프로시저 나가기 - 현재 함수가 호출된 줄로 돌아갑니다.

다음에 실행되는 문 변경

디버거가 일시 중지된 동안 여백의 화살표는 다음에 실행될 코드 줄을 보여 줍니다. 화살표를 선택하고 다른 코드 줄로 끌어 실행될 문을 변경할 수 있습니다. 코드 줄을 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 다음 문 설정을 선택하여 같은 작업을 수행할 수 있습니다.

Drag and drop arrow to set next statement

주의

현재 실행 줄을 변경하면 애플리케이션에서 예기치 않은 동작이 발생할 수 있습니다. 일부 조건에서는 실행할 다음 문을 변경할 수 없을 수도 있습니다. 예를 들어 한 메서드에서 다른 메서드로 화살표 끌기가 작동하지 않습니다. 이와 같이 지원되지 않은 경우에 Mac용 Visual Studio에서는 현재 실행 줄을 변경할 수 없다고 알리는 대화 상자를 표시합니다.

Mono의 클래스 라이브러리 디버깅

Xamarin 제품은 Mono 클래스 라이브러리에 대한 소스 코드와 함께 제공되며, 이 소스 코드를 사용하여 디버거에서 한 단계씩 실행하면서 코드가 어떻게 동작하는지 검사할 수 있습니다.

이 기능은 디버그 중에 추가 메모리를 사용하므로 기본적으로 꺼져 있습니다.

이 기능을 사용하도록 설정하려면 Mac용 Visual Studio > 기본 설정 > 디버거로 이동하여 아래 그림과 같이 “한 단계씩 외부 코드 실행” 옵션이 선택되었는지 확인합니다.

Step into external code option

참고 항목