Delen via


Fouten opsporen in .NET-apps op ARM-computers met één bord

Foutopsporing van .NET-apps die worden uitgevoerd op OP ARM gebaseerde SBCs, zoals Raspberry Pi, biedt een unieke uitdaging. Desgewenst kunt u Visual Studio Code en de .NET SDK op het apparaat installeren en lokaal ontwikkelen. De prestaties van het apparaat zijn echter zodanig dat het lokaal coderen en foutopsporing niet ideaal is. Bovendien is de Visual Studio Code-extensie voor C# niet compatibel met 32-bits ARM-besturingssystemen. Daarom wordt functionaliteit zoals IntelliSense en foutopsporing in Visual Studio Code op ARM-apparaten alleen ondersteund in 64-bits systemen.

Daarom is het raadzaam om uw app te ontwikkelen op een ontwikkelcomputer en vervolgens de app op het apparaat te implementeren voor externe foutopsporing. Als u lokaal op het apparaat wilt ontwikkelen en fouten wilt opsporen, is het volgende vereist:

In de rest van dit artikel wordt beschreven hoe u fouten in .NET-apps op computers met één bord op afstand kunt opsporen vanaf een ontwikkelcomputer.

Belangrijk

Vanaf dit schrijven is het op afstand opsporen van fouten in .NET 7-apps in linux-arm omgevingen onbetrouwbaar en kan dit ertoe leiden dat het proces voortijdig wordt afgesloten. Dit probleem wordt onderzocht. .NET 6-apps die zijn gericht op linux-arm .NET 7-apps die linux-arm64 niet worden beïnvloed.

Fouten opsporen vanuit Visual Studio Code (platformoverschrijdend)

Voor foutopsporing van .NET op computers met één bord van Visual Studio Code zijn configuratiestappen op de SBC en in het launch.json-bestand van het project vereist .

SSH inschakelen op de SBC

SSH is vereist voor externe foutopsporing. Als u SSH op Raspberry Pi wilt inschakelen, raadpleegt u SSH inschakelen in de Raspberry Pi-documentatie. Zorg ervoor dat u SSH zonder wachtwoord hebt geconfigureerd.

Belangrijk

In dit voorbeeld moet u SSH zonder wachtwoord configureren op uw apparaat, omdat OpenSSH geen ondersteuning biedt voor het doorgeven van wachtwoorden op de opdrachtregel. Als u een wachtwoord moet gebruiken, kunt u overwegen om het hulpprogramma Plink voor ssh te vervangen.

Visual Studio Remote Debugger installeren op de SBC

Voer in een Bash-console op de SBC (in een lokale sessie of via SSH) de volgende opdracht uit. Met deze opdracht downloadt en installeert u het externe foutopsporingsprogramma van Visual Studio op het apparaat:

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

Launch.json instellen in Visual Studio Code

Voeg op de ontwikkelcomputer een startconfiguratie toe aan de launch.json van het project. Als het project geen launch.json bestand heeft, voegt u er een toe door over te schakelen naar het tabblad Uitvoeren, een launch.json-bestand te selecteren en .NET of .NET Core te selecteren in het dialoogvenster.

De nieuwe configuratie in launch.json moet er ongeveer als volgt uitzien:

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

Enkele zaken die opvallen:

  • program is het uitvoerbare bestand dat is gemaakt door dotnet publish.
  • cwd is de werkmap die moet worden gebruikt bij het starten van de app op het apparaat.
  • pipeProgram is het pad naar een SSH-client op de lokale computer.
  • pipeArgs zijn de parameters die moeten worden doorgegeven aan de SSH-client. Zorg ervoor dat u de wachtwoordparameter en de pi gebruiker in de indeling <user>@<hostname>opgeeft.

De app implementeren

Implementeer de app zoals beschreven in .NET-apps implementeren op COMPUTERS met één bord van ARM. Zorg ervoor dat het implementatiepad hetzelfde pad is dat is opgegeven in de cwd parameter in de launch.json-configuratie .

Het foutopsporingsprogramma starten

Selecteer in Visual Studio Code op het tabblad Uitvoeren en foutopsporing de configuratie die u hebt toegevoegd aan launch.json en selecteer Foutopsporing starten. De app wordt gestart op het apparaat. Het foutopsporingsprogramma kan worden gebruikt om onderbrekingspunten in te stellen, lokale bevolking te inspecteren en meer.

Fouten opsporen vanuit Visual Studio in Windows

Visual Studio kan fouten opsporen in .NET-apps op externe apparaten via SSH. Er is geen speciale configuratie vereist op het apparaat. Zie Remote debug .NET in Linux met behulp van SSH voor meer informatie over het gebruik van Visual Studio voor foutopsporing op afstand in .NET.

Zorg ervoor dat u het dotnet proces selecteert als u fouten opspoort in een frameworkafhankelijke implementatie. Anders krijgt het proces dezelfde naam als het uitvoerbare bestand van de app.