Visual Studio에서 .NET 및 ASP.NET Core 소스 코드를 디버그하기

Visual Studio에서 .NET 및 ASP.NET Core 소스 코드를 디버그하려면

  • 도구 -> 옵션 -> 디버깅 -> 일반에서 내 코드만 사용을 선택 취소합니다.

    내 코드만 사용

  • Source Link 지원 사용이 선택되어 있는지 확인하세요.

    소스 링크 지원 사용 설정

  • 도구 -> 옵션 -> 디버깅 -> 기호에서 Microsoft 기호 서버를 사용하도록 설정합니다.

    Microsoft 기호 서버

.NET 또는 ASP.NET Core 코드로 스텝 인하면 Visual Studio가 소스 코드를 표시합니다. 예를 들어:

  • OnGet의 Pages/Privacy.cshtml.cs에서 중단점을 설정하고 Privacy 링크를 선택합니다.

  • 소스 다운로드 후 디버깅 계속 옵션 중 하나를 선택합니다.

    소스 링크가 다운로드됩니다

앞의 지침은 기본적인 함수 내부로 단계별 실행에는 유효하지만 최적화된 .NET 코드는 종종 지역 변수 및 함수를 제거합니다. 최적화를 사용하지 않도록 설정하고 더 나은 소스 디버깅이 가능하도록

  • 도구 -> 옵션 -> 디버깅 -> 일반에서 모듈 로드 시 JIT 최적화 억제(관리 전용)를 사용하도록 설정합니다: 모듈 로드 시 JIT 최적화 억제
  • 환경 변수와 값 COMPlus_ReadyToRun=0을 Properties/launchSettings.json 파일에 추가합니다.
    {
      "iisSettings": {
        "windowsAuthentication": false,
        "anonymousAuthentication": true,
        "iisExpress": {
          "applicationUrl": "http://localhost:10892",
          "sslPort": 44315
        }
      },
      "profiles": {
        "WebApplication18": {
          "commandName": "Project",
          "dotnetRunMessages": true,
          "launchBrowser": true,
          "applicationUrl": "https://localhost:7045;http://localhost:5045",
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development",
            "COMPlus_ReadyToRun": "0"
          }
        },
        "IIS Express": {
          "commandName": "IISExpress",
          "launchBrowser": true,
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development",
            "COMPlus_ReadyToRun": "0"
          }
        }
      }
    }
    

이전 버전의 .NET을 사용하여 앱을 디버그한 적이 있는 경우 최신 상태가 아닌 오래된 PDB가 있을 수 있으므로 %TEMP%/SymbolCache 디렉터리를 삭제하세요.

SSH를 통해 Unix에서 .NET Core 디버깅