Partilhar via


Depurar o código-fonte .NET e ASP.NET Core com o Visual Studio

Para depurar o código-fonte .NET e ASP.NET Core no Visual Studio:

  • Em Ferramentas -> Opções -> Depuração -> Geral, desmarque Ativar Apenas Meu Código.

    Ativar Apenas Meu Código

  • Verifique se a opção Ativar suporte a Link de origem está marcada.

    Ativar suporte a Link de origem

  • Em Ferramenta -> Opções -> Depuração -> Símbolos, habilite os Servidores de Símbolos da Microsoft.

    Servidor de símbolos da Microsoft

Quando você entra em qualquer código .NET ou ASP.NET Core, o Visual Studio exibe o código-fonte. Por exemplo:

  • Defina um ponto de interrupção em OnGet no Pages/Privacy.cshtml.cs e selecione o link Privacy.

  • Selecione uma das opções Download Source e Continue Debugging .

    Link de origem será baixado

As instruções anteriores funcionam para a entrada básica em funções, mas o código .NET otimizado geralmente remove variáveis e funções locais. Para desativar otimizações e permitir um melhor depuramento da origem:

  • Em Ferramentas -> Opções -> Depuração -> Geral, ative Suprimir otimização JIT na carga do módulo (somente gerenciado): Suprimir otimização JIT na carga do módulo
  • Adicione a variável de ambiente e o valor COMPlus_ReadyToRun=0 ao Properties/launchSettings.json arquivo:
    {
      "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"
          }
        }
      }
    }
    

Se você tiver depurado um aplicativo antes com a versão anterior do .NET, exclua o %TEMP%/SymbolCache diretório, pois ele pode ter PDBs antigos desatualizados.

Depurando o .NET Core no Unix sobre SSH

Recursos adicionais