Dela via


Felsöka .NET appar på ARM-datorer med enkelkort

Att felsöka .NET appar som körs på ARM-baserade SBCs som Raspberry Pi är en unik utmaning. Om du vill kan du installera Visual Studio Code och .NET SDK på enheten och utveckla lokalt. Enhetens prestanda är dock sådan att kodning och felsökning lokalt inte är idealiskt. Dessutom är Visual Studio Code-tillägget för C# inte kompatibelt med 32-bitars ARM-operativsystem. Därför stöds funktioner som IntelliSense och felsökning i Visual Studio Code på ARM-enheter endast i 64-bitarssystem.

Därför rekommenderar vi starkt att du utvecklar appen på en utvecklingsdator och sedan distribuerar appen till enheten för fjärrfelsökning. Om du vill utveckla och felsöka lokalt på enheten krävs följande:

Resten av den här artikeln beskriver hur du felsöker .NET appar på enkortsdatorer via fjärranslutning från en utvecklingsdator.

Felsöka i Visual Studio Code (plattformskompatibel)

Felsökning av .NET på enkortsdatorer från Visual Studio Code kräver konfigurationssteg på SBC och i projektets fil launch.json.

Aktivera SSH på SBC

SSH krävs för fjärrfelsökning. Om du vill aktivera SSH på Raspberry Pi läser du Aktivera SSH i Raspberry Pi-dokumentationen. Kontrollera att du har konfigurerat lösenordslös SSH.

Viktigt!

Det här exemplet kräver att du konfigurerar lösenordslös SSH på enheten, eftersom OpenSSH inte har stöd för att skicka lösenord på kommandoraden. Om du behöver använda ett lösenord kan du överväga att ersätta Plink-verktyget för ssh.

Installera Visual Studio Remote Debugger på SBC

Kör följande kommando i en Bash-konsol på SBC (antingen i en lokal session eller via SSH). Det här kommandot laddar ned och installerar Visual Studio Remote Debugger på enheten:

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

Konfigurera launch.json i Visual Studio Code

På utvecklingsdatorn lägger du till en startkonfiguration i projektets launch.json. Om projektet inte har en launch.json fil, lägg till en genom att växla till fliken Run, välja skapa en launch.json fil och välja .NET eller .NET Core i dialogrutan.

Den nya konfigurationen i launch.json bör se ut ungefär så här:

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

Observera följande:

  • program är den körbara filen som skapats av dotnet publish.
  • cwd är arbetskatalogen som ska användas när appen startas på enheten.
  • pipeProgram är sökvägen till en SSH-klient på den lokala datorn.
  • pipeArgs är de parametrar som ska skickas till SSH-klienten. Se till att ange lösenordsparametern samt pi användaren i formatet <user>@<hostname>.

Driftsätt appen

Distribuera appen enligt beskrivningen i Distribuera .NET appar till ARM-datorer med enkelkort. Kontrollera att distributionssökvägen är samma sökväg som anges i parametern cwd i launch.json konfigurationen.

Starta felsökningsprogrammet

I Visual Studio Code går du till fliken Run och Debug och väljer konfigurationen som du lade till i launch.json och väljer Startfelsökning. Appen startas på enheten. Felsökningsprogrammet kan användas för att ange brytpunkter, inspektera lokalbefolkningen med mera.

Felsöka från Visual Studio på Windows

Visual Studio kan felsöka .NET appar på fjärrenheter via SSH. Ingen specialiserad konfiguration krävs på enheten. Mer information om hur du använder Visual Studio för att felsöka .NET via fjärranslutning finns i Remote debug .NET i Linux med SSH.

Se till att välja processen dotnet om du felsöker en ramverksberoende distribution. Annars namnges processen på samma sätt som appens körbara fil.