Debugowanie kodu źródłowego platform .NET i ASP.NET Core za pomocą programu Visual Studio

Aby debugować kod źródłowy platformy .NET i ASP.NET Core w programie Visual Studio:

  • W Narzędzia -> Opcje -> Debugowanie -> Ogólne wyczyść pole wyboru Włącz funkcję Tylko mój kod.

    Włącz tylko mój kod

  • Sprawdź, czy zaznaczono opcję Włącz obsługę linku źródłowego.

    Włączanie obsługi linku źródłowego

  • W obszarze Narzędzia -> Opcje -> Debugowanie -> Symbole włącz opcję Microsoft Symbol Servers.

    Serwer symboli firmy Microsoft

Podczas przechodzenia do dowolnego kodu platformy .NET lub ASP.NET Core program Visual Studio wyświetla kod źródłowy. Na przykład:

  • Ustaw punkt przerwania w OnGet w Pages/Privacy.cshtml.cs i wybierz łącze Privacy.

  • Wybierz jedną z opcji Pobierz kod źródłowy i kontynuuj debugowanie.

    Kliknięcie linku źródłowego rozpocznie pobieranie

Powyższe instrukcje działają w celu podstawowego wchodzenia do funkcji, ale zoptymalizowany kod platformy .NET często usuwa zmienne lokalne i funkcje. Aby wyłączyć optymalizacje i umożliwić lepsze debugowanie kodu źródłowego:

  • W obszarze Narzędzia — opcje —>> Debugowanie —> ogólne, włącz opcję Pomiń optymalizację JIT podczas ładowania modułu (tylko dla kodu zarządzanego):Pomijanie optymalizacji JIT podczas ładowania modułu
  • Dodaj zmienną środowiskową i jej wartość COMPlus_ReadyToRun=0 do pliku 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"
          }
        }
      }
    }
    

Jeśli debugowano już aplikację przy użyciu poprzedniej wersji platformy .NET, usuń katalog %TEMP%/SymbolCache, ponieważ może zawierać stare pliki PDB, które są nieaktualne.

Debugowanie platformy .NET Core w systemie Unix za pośrednictwem protokołu SSH