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.
- .NET SDK 6.0 eller senare.
- Installera med hjälp av dotnet-install-skriptet som i en ramverksberoende distribution. Se till att lägga till en
DOTNET_ROOT
miljövariabel och lägg till .dotnet-katalogen i$PATH
.
- Installera med hjälp av dotnet-install-skriptet som i en ramverksberoende distribution. Se till att lägga till en
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 avdotnet 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 samtpi
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.