Leggere in inglese

Condividi tramite


Eseguire il debug di applicazioni .NET nei computer a scheda singola ARM

Scelta di un IDE

Il debug di applicazioni .NET in esecuzione su SBC basati su ARM come Raspberry Pi presenta una sfida unica. Se si vuole, è possibile installare Visual Studio Code e .NET SDK nel dispositivo e procedere allo sviluppo in locale. Tuttavia, le prestazioni del dispositivo sono tali che la codifica e il debug in locale non sono ideali. Inoltre, l'estensione di Visual Studio Code per C# non è compatibile con i sistemi operativi ARM a 32 bit. Di conseguenza, le funzionalità come IntelliSense e il debug in Visual Studio Code nei dispositivi ARM sono supportate solo nei sistemi a 64 bit.

Per tali motivi, è consigliabile sviluppare l'applicazione in un computer dedicato e successivamente distribuirla nel dispositivo per il debug remoto. Se si vuole sviluppare ed eseguire il debug in locale nel dispositivo, è necessario quanto segue:

Il resto di questo articolo descrive come eseguire il debug di app .NET in computer a scheda singola in remoto da un computer di sviluppo.

Importante

A partire da questo articolo, il debug remoto delle app .NET 7 negli ambienti linux-arm non è affidabile e può causare la chiusura prematura del processo. Questo problema è in fase di indagine. Le app .NET 6 destinate a linux-arm e le app .NET 7 destinate a linux-arm64 non ne sono interessate.

Eseguire il debug da Visual Studio Code (multipiattaforma)

Il debug di .NET in computer a scheda singola da Visual Studio Code richiede passaggi di configurazione per SBC e nel file di launch.jsondel progetto.

Abilitare SSH nel SBC

SSH è necessario per il debug remoto. Per abilitare SSH in Raspberry Pi, vedere Abilitare SSH nella documentazione di Raspberry Pi. Assicurarsi di aver configurato SSH senza password.

Importante

Questo esempio richiede di configurare SSH senza password nel dispositivo, perché OpenSSH non supporta il passaggio di password nella riga di comando. Se è necessario usare una password, è consigliabile sostituire lo strumento Plink per ssh.

Installare il Visual Studio Remote Debugger in SBC

All'interno di una console Bash in SBC (in una sessione locale o tramite SSH), eseguire il comando seguente. Questo comando scarica e installa il Visual Studio Remote Debugger nel dispositivo:

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

Configurare launch.json in Visual Studio Code

Nel computer di sviluppo aggiungere una configurazione di avvio al launch.json del progetto. Se il progetto non dispone di un file launch.json, aggiungerne uno passando alla scheda Esegui, selezionando prima Crea un file launch.json e successivamente .NET o .NET Core nella finestra di dialogo.

La nuova configurazione in launch.json dovrebbe essere simile a una delle seguenti:

JSON
"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"
        }
    },

Tenere presente quanto segue:

  • program è il file eseguibile creato da dotnet publish.
  • cwd è la directory di lavoro da usare quando si avvia l'app nel dispositivo.
  • pipeProgram è il percorso di un client SSH nel computer locale.
  • pipeArgs sono i parametri da passare al client SSH. Assicurarsi di specificare il parametro password, nonché l'utente pi nel formato <user>@<hostname>.

Distribuire l'app

Distribuire l'applicazione come descritto in Distribuire app .NET in computer ARM a scheda singola. Verificare che il percorso di distribuzione sia lo stesso specificato nel parametro cwd della configurazione launch.json.

Avviare il debugger

In Visual Studio Code, nella scheda Esegui ed effettua il debug selezionare la configurazione aggiunta a launch.json e selezionare Avvia debug. L'app viene avviata nel dispositivo. Il debugger può essere utilizzato per impostare punti di interruzione, controllare le variabili locali e altro ancora.

Eseguire il debug da Visual Studio in Windows

Visual Studio può eseguire il debug di app .NET in dispositivi remoti tramite SSH. Non è necessaria alcuna configurazione particolare nel dispositivo. Per informazioni dettagliate sull'uso di Visual Studio per il debug remoto di .NET, vedere Eseguire il debug remoto di .NET in Linux tramite SSH.

Assicurarsi di selezionare il processo dotnet se si esegue il debug di una distribuzione dipendente dal framework. In caso contrario, il processo verrà denominato come l'eseguibile dell'app.