원격 디버깅 개념

완료됨

Visual Studio는 강력한 원격 디버깅 도구 및 기능을 제공하여 개발 환경 외부의 다른 컴퓨터에서 실행되는 애플리케이션 문제를 해결합니다. 대부분의 개발자는 로컬에서 개발하면서 Visual Studio 디버깅 도구를 사용하는 데 익숙하지만 다른 환경에서 실행되는 앱에 유사한 환경을 사용할 수 있다는 사실을 깨닫지 못할 수 있습니다. 몇 가지 일반적인 원격 디버깅 시나리오는 다음과 같습니다.

  • App Service 인스턴스 또는 가상 머신과 같은 여러 Azure 서비스 중 하나에서 호스트되는 앱에 연결하고 디버그합니다.
  • IIS의 온-프레미스 서버에서 호스트되는 앱을 디버그합니다.
  • 문제 해결을 지원하기 위해 다른 개발 머신에서 실행되는 앱을 디버그합니다.
  • 웹 브라우저와 같은 클라이언트 쪽 프로세스에 연결하여 로컬 앱 컨텍스트 외부에서 실행되는 코드를 디버그합니다.
  • 개발 환경과 별도로 컨테이너화된 환경에서 실행되는 애플리케이션을 디버그합니다.

이후의 연습에서는 이 목록의 첫 번째 시나리오에 중점을 두고 Visual Studio를 사용해 Azure App Service에서 실행되는 앱을 디버그합니다. App Service은 가장 널리 사용되는 Azure 서비스 중 하나이며 .NET 애플리케이션을 호스트하는 강력한 옵션입니다.

원격 디버깅 도구 이해

원격 디버깅에는 다양한 Visual Studio 도구 및 기능이 포함됩니다. 다른 서버 또는 가상 머신에 배포된 애플리케이션을 원격 디버그하는 경우 Visual Studio 원격 도구를 설치해야 할 수 있습니다.

다음 연습에서는 Azure App Service에서 호스트되는 앱을 디버그하므로 도구를 설치할 필요가 없습니다. 이 시나리오에서는 이러한 유형의 많은 구성이 자동으로 처리됩니다. Visual Studio의 프로세스에 연결 기능을 사용하여 App Service 프로세스에 직접 연결할 수 있습니다. 올바른 디버깅 기호와 소스 코드가 로드되었다고 가정하면 컴퓨터에서 로컬로 실행되는 것처럼 애플리케이션을 디버그할 수 있습니다.

기호 파일 개요

Visual Studio에서 다른 머신 또는 환경에서 실행되는 애플리케이션을 디버그하려면 소스 코드에 대한 기호 파일이 필요합니다. 기호 파일은 빌드 프로세스의 일부로 bin 디렉터리에 만들어지고 .pdb 확장명으로 끝납니다. 간단히 말하면 기호 파일은 컴파일된 코드와 소스 코드 간의 지침형 브리지를 제공합니다. Visual Studio 디버거는 기호 파일을 사용하여 컴파일된 버전이 실행되는 동안 소스 코드 줄을 한 줄씩 단계별로 실행합니다. 로컬로 실행 및 디버깅하는 경우 Visual Studio는 .pdb 파일에 대한 기본 검색 위치 때문에 생성된 기호 파일을 자동으로 찾을 수 있습니다.

빌드 및 기호 프로세스에 대한 다이어그램

애플리케이션이 컴파일되어 Azure에 배포되면 Visual Studio가 필요한 기호 파일에 자동으로 액세스할 수 없으므로 디버깅 중에 로컬 복사본을 제공해야 합니다. 로컬 소스 코드 및 기호 파일은 지침이 올바르게 정렬되도록 배포된 코드와 정확히 일치해야 합니다.