Ler em inglês

Partilhar via


Depurar aplicativos .NET em computadores de placa única ARM

Escolha um IDE

Depurar aplicativos .NET executados em SBCs baseados em ARM como o Raspberry Pi apresenta um desafio único. Se desejar, você pode instalar o Visual Studio Code e o SDK do .NET no dispositivo e desenvolver localmente. No entanto, o desempenho do dispositivo é tal que codificar e depurar localmente não é ideal. Além disso, a extensão Visual Studio Code para C# não é compatível com sistemas operacionais ARM de 32 bits. Consequentemente, funcionalidades como IntelliSense e depuração no Visual Studio Code em dispositivos ARM só são suportadas em sistemas de 64 bits.

Por esses motivos, é altamente recomendável que você desenvolva seu aplicativo em um computador de desenvolvimento e, em seguida, implante o aplicativo no dispositivo para depuração remota. Se você deseja desenvolver e depurar localmente no dispositivo, o seguinte é necessário:

  • Um sistema operacional de 64 bits com um ambiente de desktop, como o Raspberry Pi OS (64 bits).
  • Visual Studio Code com a extensão C#.
    • Desative a aceleração de hardware.
  • .NET SDK 6.0 ou posterior.

O restante deste artigo descreve como depurar aplicativos .NET em computadores de placa única remotamente a partir de um computador de desenvolvimento.

Importante

No momento em que este artigo foi escrito, a depuração remota de aplicativos .NET 7 em linux-arm ambientes não é confiável e pode fazer com que o processo saia prematuramente. Esta questão está a ser investigada. Os aplicativos .NET 6 destinados linux-arm e os aplicativos .NET 7 destinados linux-arm64 não são afetados.

Depurar do Visual Studio Code (plataforma cruzada)

A depuração do .NET em computadores de placa única do Visual Studio Code requer etapas de configuração no SBC e no arquivo launch.json do projeto.

Ativar SSH no SBC

SSH é necessário para depuração remota. Para habilitar o SSH no Raspberry Pi, consulte Ativar SSH na documentação do Raspberry Pi. Certifique-se de ter configurado SSH sem senha.

Importante

Este exemplo requer que você configure o SSH sem senha em seu dispositivo, pois o OpenSSH não suporta a passagem de senhas na linha de comando. Se você precisar usar uma senha, considere substituir a ferramenta Plink por ssh.

Instalar o depurador remoto do Visual Studio no SBC

Dentro de um console Bash no SBC (em uma sessão local ou via SSH), execute o seguinte comando. Este comando baixa e instala o Depurador Remoto do Visual Studio no dispositivo:

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

Configurar launch.json no Visual Studio Code

No computador de desenvolvimento, adicione uma configuração de inicialização ao launch.json do projeto. Se o projeto não tiver um arquivo launch.json , adicione um alternando para a guia Executar , selecionando criar um arquivo launch.json e selecionando .NET ou .NET Core na caixa de diálogo.

A nova configuração no launch.json deve ser semelhante a uma das seguintes:

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

Veja o seguinte:

  • program é o arquivo executável criado por dotnet publish.
  • cwd é o diretório de trabalho a ser usado ao iniciar o aplicativo no dispositivo.
  • pipeProgram é o caminho para um cliente SSH na máquina local.
  • pipeArgs são os parâmetros a serem passados para o cliente SSH. Certifique-se de especificar o parâmetro password, bem como o pi usuário no formato <user>@<hostname>.

Implementar a aplicação

Implante o aplicativo conforme descrito em Implantar aplicativos .NET em computadores de placa única ARM. Verifique se o caminho de implantação é o mesmo especificado no cwd parâmetro na configuração launch.json.

Iniciar o depurador

No Visual Studio Code, na guia Executar e Depurar , selecione a configuração que você adicionou ao launch.json e selecione Iniciar Depuração. O aplicativo é iniciado no dispositivo. O depurador pode ser usado para definir pontos de interrupção, inspecionar locais e muito mais.

Depurar do Visual Studio no Windows

O Visual Studio pode depurar aplicativos .NET em dispositivos remotos via SSH. Nenhuma configuração especializada é necessária no dispositivo. Para obter detalhes sobre como usar o Visual Studio para depurar o .NET remotamente, consulte Depuração remota do .NET no Linux usando SSH.

Certifique-se de selecionar o dotnet processo se estiver depurando uma implantação dependente da estrutura. Caso contrário, o processo será nomeado da mesma forma que o executável do aplicativo.