Déboguer du code source .NET et ASP.NET Core avec Visual Studio

Pour déboguer .NET et ASP.NET Core code source dans Visual Studio :

  • Dans Outils -> Options -> Débogage -> Général, décochez Activer Uniquement mon code.

    Enable Just My Code

  • Vérifiez que l’option Activer Source Link prise en charge est cochée.

    Enable Source Link support

  • Dans Outil -> Options -> Débogage -> Symboles, activez Serveurs de symboles Microsoft.

    Microsoft Symbol Server

Lorsque vous effectuez un pas à pas détaillé dans un code .NET ou ASP.NET Core, Visual Studio affiche le code source. Par exemple :

  • Définissez un point d’arrêt dans OnGet et Pages/Privacy.cshtml.cs sélectionnez le Privacy lien.

  • Sélectionnez l’une des options Télécharger la source et Continuer le débogage.

    Source Link Will Download

Les instructions précédentes fonctionnent pour un pas à pas de base dans des fonctions, mais le code .NET optimisé supprime souvent les variables et les fonctions locales. Pour désactiver les optimisations et permettre un meilleur débogage de source :

  • Dans Outils -> Options -> Débogage -> Général, activez Supprimer l’optimisation juste-à-temps (JAT) sur la charge de module (gérée uniquement) :Suppress JIT optimization on module load
  • Ajoutez la variable d’environnement et la valeur COMPlus_ReadyToRun=0 au fichierProperties/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"
          }
        }
      }
    }
    

Si vous avez déjà débogué une application avec la version précédente de .NET, supprimez le répertoire %TEMP%/SymbolCache, car il peut contenir d’anciens fichiers PDB obsolètes.

Débogage de .NET Core sur Unix via SSH

Ressources supplémentaires