Dela via


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

Felsökning av .NET-appar som körs på ARM-baserade SBCs som Raspberry Pi utgö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. Visual Studio Code-tillägget för C# är dessutom 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:

  • Ett 64-bitars operativsystem med en skrivbordsmiljö, till exempel Raspberry Pi OS (64-bitars).
  • Visual Studio Code med C#-tillägget.
    • Inaktivera maskinvaruaccelerationen.
  • .NET SDK 6.0 eller senare.

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

Viktigt!

När det här skrivs är fjärrfelsökning av .NET 7-appar i linux-arm miljöer otillförlitlig och kan leda till att processen avslutas i förtid. Det här problemet är under utredning. .NET 6-appar som riktar sig till linux-arm och .NET 7-appar som är mål linux-arm64 påverkas inte.

Felsöka från Visual Studio Code (plattformsoberoende)

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

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 någon launch.json fil lägger du till en genom att växla till fliken Kör, 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>.

Distribuera 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

På fliken Kör och felsök i Visual Studio Code väljer du den konfiguration som du lade till i launch.json och väljer Starta felsö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 i 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 fjärrsöka .NET finns i Fjärrfelsöka .NET på 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.