Udostępnij za pośrednictwem


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.

    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 narzędziu — opcje —>> debugowanie —> symbole włącz opcję Serwery symboli firmy Microsoft.

    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 pliku OnGet i Pages/Privacy.cshtml.cs wybierz Privacy link.

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

    Link źródłowy zostanie pobrany

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):Pomijanie optymalizacji JIT przy obciążeniu modułu
  • 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