Udostępnij za pośrednictwem


Debugowanie aplikacji .NET na komputerach jednopłytkowych ARM

Debugowanie aplikacji .NET działających na komputerach jednopłytkowych opartych na architekturze ARM, takich jak Raspberry Pi, stanowi unikatowe wyzwanie. W razie potrzeby możesz zainstalować Visual Studio Code i zestaw SDK .NET na urządzeniu i opracowywać lokalnie. Jednak wydajność urządzenia jest taka, że kodowanie i debugowanie lokalnie nie jest idealne. Ponadto rozszerzenie 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 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 .NET na komputerach jednopokładzieniowych z komputera programistycznego.

Debugowanie z Visual Studio Code (międzyplatformowe)

Debugowanie .NET na komputerach jednopłytkowych z Visual Studio Code wymaga kroków konfiguracji na SBC oraz w pliku projektu launch.json.

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 logowanie SSH bez hasła.

Ważna

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 debugera zdalnego Visual Studio na serwerze 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 Visual Studio Remote Debugger na urządzeniu:

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

Skonfiguruj launch.json w Visual Studio Code

Na komputerze dewelopera dodaj konfigurację uruchamiania do projektu launch.json. Jeśli projekt nie ma pliku launch.json, dodaj go, przechodząc na kartę Uruchom, wybierając opcję utwórz plik launch.json i wybierając .NET lub .NET Core w oknie dialogowym.

Nowa konfiguracja w launch.json powinna wyglądać podobnie do jednej z następujących opcji:

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

Zwróć uwagę na następujące kwestie:

  • 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óż aplikacje zgodnie z opisem w Deploy .NET apps to ARM single-board computers. Upewnij się, że ścieżka wdrożenia jest tą samą ścieżką określoną w parametrze cwd w konfiguracji launch.json .

Uruchamianie debugera

W Visual Studio Code na karcie Run and Debug wybierz konfigurację dodaną do launch.json i wybierz pozycję Start 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 Visual Studio w Windows

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 .NET przy użyciu Visual Studio, zobacz Zdalne debugowanie .NET w systemie Linux przy użyciu protokołu SSH.

Pamiętaj, aby wybrać dotnet proces, jeśli debugujesz wdrożenie zależne od frameworku. W przeciwnym razie proces będzie miał taką samą nazwę jak plik wykonywalny aplikacji.