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:

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 przez dotnet publishprogram .
  • 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że pi 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 cwdw 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.