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

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

  • W obszarze Narzędzia — opcje —>> Debugowanie —> ogólne, usuń zaznaczenie pozycji Włącz tylko mój kod.

    Enable Just My Code

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

    Enable Source Link support

  • W narzędziu — opcje —>> debugowanie —> symbole włącz opcję Serwery symboli firmy Microsoft.

    Microsoft Symbol Server

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

  • Ustaw punkt przerwania w pliku OnGet i Pages/Privacy.cshtml.cs wybierz Privacy link.

  • Wybierz jedną z opcji Pobierz źródło i Kontynuuj debugowanie .

    Source Link Will Download

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

  • W obszarze Narzędzia — opcje —>> Debugowanie —> ogólne, włącz opcję Pomiń optymalizację JIT przy obciążeniu modułu (tylko zarządzane):Suppress JIT optimization on module load
  • Dodaj zmienną środowiskową i wartość COMPlus_ReadyToRun=0 do Properties/launchSettings.json pliku:
    {
      "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 aplikacja została wcześniej debugowana przy użyciu poprzedniej wersji platformy .NET, usuń %TEMP%/SymbolCache katalog, ponieważ może mieć stare pliki PDB, które są nieaktualne.

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

Dodatkowe zasoby