Depurar aplicativos .NET em computadores de placa única ARM
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.
- Instale usando o script dotnet-install como em uma implantação dependente da estrutura. Certifique-se de adicionar uma
DOTNET_ROOT
variável de ambiente e adicionar o diretório .dotnet ao$PATH
.
- Instale usando o script dotnet-install como em uma implantação dependente da estrutura. Certifique-se de adicionar uma
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:
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:
"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 pordotnet 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 opi
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.