Debugowanie aplikacji platformy .NET na komputerach jednowarstwowych usługi ARM
Debugowanie aplikacji platformy .NET działających na komputerach SBCs opartych na usłudze ARM, takich jak Raspberry Pi, stanowi unikatowe wyzwanie. W razie potrzeby możesz zainstalować program Visual Studio Code i zestaw .NET SDK na urządzeniu i opracowywać lokalnie. Jednak wydajność urządzenia jest taka, że kodowanie i debugowanie lokalnie nie jest idealne. Ponadto rozszerzenie programu Visual Studio Code dla języka C# nie jest zgodne z 32-bitowymi systemami operacyjnymi ARM. W związku z tym funkcje takie jak IntelliSense i debugowanie w programie Visual Studio Code na urządzeniach ARM są obsługiwane tylko w systemach 64-bitowych.
Z tych powodów zdecydowanie zaleca się opracowanie aplikacji na komputerze dewelopera, a następnie wdrożenie aplikacji na urządzeniu w celu zdalnego debugowania. Jeśli chcesz opracowywać i debugować lokalnie na urządzeniu, wymagane są następujące elementy:
- 64-bitowy system operacyjny ze środowiskiem pulpitu, takim jak system operacyjny Raspberry Pi (64-bitowy).
- Program Visual Studio Code z rozszerzeniem języka C#.
- Wyłącz przyspieszanie sprzętowe.
- Zestaw .NET SDK 6.0 lub nowszy.
- Zainstaluj przy użyciu skryptu dotnet-install w ramach wdrożenia zależnego od platformy. Pamiętaj, aby dodać zmienną środowiskową
DOTNET_ROOT
i dodać katalog .dotnet do$PATH
folderu .
- Zainstaluj przy użyciu skryptu dotnet-install w ramach wdrożenia zależnego od platformy. Pamiętaj, aby dodać zmienną środowiskową
W pozostałej części tego artykułu opisano sposób zdalnego debugowania aplikacji platformy .NET na komputerach jednowarstwowych z komputera programistycznego.
Ważne
Od tego czasu zdalne debugowanie aplikacji .NET 7 w linux-arm
środowiskach jest zawodne i może spowodować przedwczesne zakończenie procesu. Ten problem jest badany. Nie ma to wpływu na aplikacje platformy .NET 6 przeznaczone dla linux-arm
platformy linux-arm64
.NET i .NET 7.
Debugowanie z poziomu programu Visual Studio Code (międzyplatformowe)
Debugowanie platformy .NET na komputerach jednowarstwowych z programu Visual Studio Code wymaga kroków konfiguracji na SBC i w pliku launch.json projektu.
Włączanie protokołu SSH na SBC
Protokół SSH jest wymagany do zdalnego debugowania. Aby włączyć protokół SSH na urządzeniu Raspberry Pi, zapoznaj się z artykułem Włączanie protokołu SSH w dokumentacji urządzenia Raspberry Pi. Upewnij się, że skonfigurowano bez hasła protokół SSH.
Ważne
Ten przykład wymaga skonfigurowania bez hasła protokołu SSH na urządzeniu, ponieważ protokół OpenSSH nie obsługuje przekazywania haseł w wierszu polecenia. Jeśli musisz użyć hasła, rozważ zastąpienie narzędzia Plink dla protokołu SSH.
Instalowanie zdalny debuger programu Visual Studio na SBC
W konsoli powłoki Bash na SBC (w sesji lokalnej lub za pośrednictwem protokołu SSH) uruchom następujące polecenie. To polecenie pobiera i instaluje zdalny debuger programu Visual Studio na urządzeniu:
curl -sSL https://aka.ms/getvsdbgsh | /bin/sh /dev/stdin -v latest -l ~/vsdbg
Konfigurowanie launch.json w programie Visual Studio Code
Na komputerze dewelopera dodaj konfigurację uruchamiania do launch.json projektu. Jeśli projekt nie ma pliku launch.json, dodaj go, przełączając się na kartę Uruchamianie, wybierając pozycję Utwórz plik launch.json i wybierając pozycję .NET lub .NET Core w oknie dialogowym.
Nowa konfiguracja w launch.json powinna wyglądać podobnie do jednej z następujących:
"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"
}
},
Zapamiętaj poniższe:
program
to plik wykonywalny utworzony przezdotnet publish
program .cwd
to katalog roboczy, który ma być używany podczas uruchamiania aplikacji na urządzeniu.pipeProgram
to ścieżka do klienta SSH na komputerze lokalnym.pipeArgs
to parametry, które mają być przekazywane do klienta SSH. Pamiętaj, aby określić parametr hasła, a takżepi
użytkownika w formacie<user>@<hostname>
.
Wdrażanie aplikacji
Wdróż aplikację zgodnie z opisem w temacie Wdrażanie aplikacji platformy .NET na komputerach jednowarstwowych usługi ARM. Upewnij się, że ścieżka wdrożenia jest tą samą ścieżką określoną w parametrze cwd
w konfiguracji launch.json .
Uruchom debuger
W programie Visual Studio Code na karcie Uruchamianie i debugowanie wybierz konfigurację dodaną do launch.json i wybierz pozycję Rozpocznij debugowanie. Aplikacja zostanie uruchomiona na urządzeniu. Debuger może służyć do ustawiania punktów przerwania, inspekcji ustawień lokalnych i innych.
Debugowanie z programu Visual Studio w systemie Windows
Program Visual Studio może debugować aplikacje .NET na urządzeniach zdalnych za pośrednictwem protokołu SSH. Na urządzeniu nie jest wymagana żadna specjalna konfiguracja. Aby uzyskać szczegółowe informacje na temat zdalnego debugowania platformy .NET przy użyciu programu Visual Studio, zobacz Remote debug .NET on Linux using SSH (Zdalne debugowanie platformy .NET w systemie Linux przy użyciu protokołu SSH).
Pamiętaj, aby wybrać dotnet
proces, jeśli debugujesz wdrożenie zależne od platformy. W przeciwnym razie proces będzie miał taką samą nazwę jak plik wykonywalny aplikacji.