Partager via


Déboguer des applications .NET sur des ordinateurs à carte unique ARM

Le débogage d’applications .NET s’exécutant sur des SBC basés sur ARM comme Raspberry Pi présente un défi unique. Si vous le souhaitez, vous pouvez installer Visual Studio Code et le SDK .NET sur l’appareil et développer localement. Toutefois, les performances de l’appareil sont telles que le codage et le débogage localement ne sont pas idéaux. En outre, l’extension Visual Studio Code pour C# n’est pas compatible avec les systèmes d’exploitation ARM 32 bits. Par conséquent, les fonctionnalités telles qu’IntelliSense et le débogage dans Visual Studio Code sur les appareils ARM ne sont prises en charge que dans les systèmes 64 bits.

Pour ces raisons, il est fortement recommandé de développer votre application sur un ordinateur de développement, puis de déployer l’application sur l’appareil pour le débogage à distance. Si vous souhaitez développer et déboguer localement sur l’appareil, vous devez procéder comme suit :

Le reste de cet article explique comment déboguer des applications .NET sur des ordinateurs à carte unique à distance à partir d’un ordinateur de développement.

Déboguer à partir de Visual Studio Code (multiplateforme)

Le débogage .NET sur des ordinateurs à carte unique à partir de Visual Studio Code nécessite des étapes de configuration sur le SBC et dans le fichier launch.json du projet.

Activer SSH sur le SBC

SSH est requis pour le débogage à distance. Pour activer SSH sur Raspberry Pi, reportez-vous à Activer SSH dans la documentation Raspberry Pi. Vérifiez que vous avez configuré SSH sans mot de passe.

Important

Cet exemple vous oblige à configurer SSH sans mot de passe sur votre appareil, car OpenSSH ne prend pas en charge le passage de mots de passe sur la ligne de commande. Si vous devez utiliser un mot de passe, envisagez de remplacer l’outil Plink pour ssh.

Installer le débogueur distant Visual Studio sur le SBC

Dans une console Bash sur le SBC (dans une session locale ou via SSH), exécutez la commande suivante. Cette commande télécharge et installe le débogueur distant Visual Studio sur l’appareil :

curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg

Configurer launch.json dans Visual Studio Code

Sur l’ordinateur de développement, ajoutez une configuration de lancement au launch.jsondu projet. Si le projet n'a pas de fichier launch.json, ajoutez-en un en basculant vers l'onglet Run, en sélectionnant créer un fichier launch.json et en sélectionnant .NET ou .NET Core dans la boîte de dialogue.

La nouvelle configuration dans launch.json doit ressembler à l’une des options suivantes :

"configurations": [
    {
        "name": ".NET Remote Launch - Self-contained",
        "type": "coreclr",
        "request": "launch",
        "program": "~/sample/sample",
        "args": [],
        "cwd": "~/sample",
        "stopAtEntry": false,
        "console": "internalConsole",
        "pipeTransport": {
            "pipeCwd": "${workspaceRoot}",
            "pipeProgram": "ssh",
            "pipeArgs": [
                "pi@raspberrypi"
            ],
            "debuggerPath": "~/vsdbg/vsdbg"
        }
    },

Notez les points suivants :

  • program est le fichier exécutable créé par dotnet publish.
  • cwd est le répertoire de travail à utiliser lors du lancement de l’application sur l’appareil.
  • pipeProgram est le chemin d’accès à un client SSH sur l’ordinateur local.
  • pipeArgs sont les paramètres à passer au client SSH. Veillez à spécifier le paramètre de mot de passe, ainsi que l’utilisateur pi au format <user>@<hostname>.

Déployer l’application

Déployez l’application comme décrit dans Déployer des applications .NET sur des ordinateurs à carte unique ARM. Vérifiez que le chemin d’accès au déploiement est le même chemin spécifié dans le cwd paramètre dans la configuration launch.json .

Lancer le débogueur

Dans Visual Studio Code, sous l’onglet Run and Debug , sélectionnez la configuration que vous avez ajoutée à launch.json et sélectionnez Start Debugging. L’application démarre sur l’appareil. Le débogueur peut être utilisé pour définir des points d’arrêt, inspecter les variables locales, etc.

Déboguer à partir de Visual Studio sur Windows

Visual Studio pouvez déboguer des applications .NET sur des appareils distants via SSH. Aucune configuration spécialisée n’est requise sur l’appareil. Pour plus d’informations sur l’utilisation de Visual Studio pour déboguer .NET à distance, consultez Déboguer .NET sur Linux à l’aide de SSH.

Veillez à sélectionner le dotnet processus si vous déboguez un déploiement dépendant du framework. Dans le cas contraire, le processus sera nommé de la même façon que l’exécutable de l’application.