Ladění zdrojového kódu .NET a ASP.NET Core v aplikaci Visual Studio

Ladit zdrojový kód .NET a ASP.NET Core v sadě Visual Studio:

  • V Tools -> Options -> Debugging -> General zrušte zaškrtnutí možnosti Enable Just My Code.

    Povolit pouze můj kód

  • Ověřte, že je zaškrtnutá možnost Povolit podporu Source Link.

    Povolení podpory odkazu na zdroj

  • V Nástroje -> Možnosti -> Ladění -> Symboly povolte možnost Servery symbolů Microsoftu.

    Microsoft Symbol Server

Když vstoupíte do libovolného kódu .NET nebo ASP.NET Core, Visual Studio zobrazí zdrojový kód. Příklad:

  • Nastavte bod přerušení v OnGet v Pages/Privacy.cshtml.cs a vyberte odkaz Privacy.

  • Vyberte možnost Stáhnout zdroj a pokračovat v ladění.

    Zdrojový odkaz se stáhne.

Předchozí pokyny fungují pro základní krokování do funkcí, ale optimalizovaný kód .NET často odstraňuje místní proměnné a funkce. Chcete-li zakázat optimalizace a povolit lepší ladění zdroje:

  • V nástrojích – Možnosti –>> Ladění –> Obecné, povolte potlačení optimalizace JIT při načítání modulu (jenom spravované):Potlačení optimalizace JIT při načítání modulu
  • Přidejte do souboru Properties/launchSettings.json proměnnou prostředí a hodnotu COMPlus_ReadyToRun=0:
    {
      "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"
          }
        }
      }
    }
    

Pokud jste dříve ladili aplikaci s předchozí verzí .NET, odstraňte %TEMP%/SymbolCache adresář, protože může obsahovat staré soubory PDB, které jsou zastaralé.

Ladění .NET Core v unixu přes SSH