Depuração Remota de Aplicações .NET no WSL2 via Visual Studio

O desenvolvimento multiplataforma com .NET permite que desenvolvedores criem aplicações robustas em ambiente Windows, visando a execução em sistemas Linux. No entanto, diagnosticar problemas que ocorrem exclusivamente em ambientes baseados em Unix pode ser desafiador. Uma solução eficiente é utilizar o Windows Subsystem for Linux (WSL2) em conjunto com o Visual Studio para realizar depurações em tempo real.

Configuração do Ambiente WSL2

Antes de iniciar a depuração, certifique-se de que sua distribuição Linux no WSL2 está atualizada e que o SDK do .NET necessário está devidamente instalado. Para validar a instalação, execute o comando abaixo no terminal da sua distribuição:

dotnet --list-sdks

Com o ambiente validado, publique sua aplicação visando o runtime do Linux ou execute-a diretamente através do comando dotnet run dentro do diretório do projeto no WSL.

Cofniguração do Servidor SSH

O Visual Studio utiliza o protocolo SSH para se comunicar com o subsistema Linux e gerenciar o processo de depuração. Siga os passos abaixo para preparar o serviço de comunicação:

1. Certifique-se de que o servidor SSH está instalado e atualizado:

sudo apt-get update
sudo apt-get install openssh-server -y

2. Modifique as configurações do arquivo sshd_config para permitir a autenticação via senha, o que facilita o acesso inicial pelo Visual Studio:

sudo nano /etc/ssh/sshd_config

Procure pela linha PasswordAuthentication e altere seu valor para yes. Salve o arquivo e saia do editor.

3. Reinicie o serviço para aplicar as alterações:

sudo service ssh restart

Instalação do Debugger Remoto (.NET Core Debugger)

Para que o Visual Studio consiga inspecionar o código em execução no Linux, é necessário instalar o vsdbg. Este utilitário é o motor de depuração que faz a ponte entre o código gerenciado e o IDE.

Execute o script oficial da Microsoft para baixar e instalar a versão mais recente:

sudo apt-get install unzip -y
curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg

Anexando o Visual Studio ao Processo Linux

Com a aplicação rodando no WSL2 e o servidor SSH ativo, siga estes passos no Visual Studio:

  1. No menu superior, vá em Debug e selecione Attach to Process... (ou pressione Ctrl+Alt+P).
  2. No campo Connection Type, selecione SSH.
  3. Em Connection Target, insira o endereço IP ou localhost (dependendo da configuração do seu WSL) e conecte-se com as credenciais do seu usuário Linux.
  4. Após estabelecer a conexão, uma lista de processos ativos no Linux será exibida. Localize o processo da sua aplicação .NET (geralmente listado pelo nome do executável ou como dotnet).
  5. Clique em Attach. Na janela de seleção de tipo de código, escolha Managed (.NET Core for Unix).

Uma vez anexado, você poderá inserir breakpoints, inspecionar variáveis e analisar a pilha de chamadas diretamente no código-fonte dentro do Visual Studio, enquanto a aplicação executa no contexto real do kernel Linux fornecido pelo WSL2.

Considerações sobre Performance

Utilizar o WSL2 para depuração oferece uma fidelidade de ambiente superior em comparação com emuladores. Como o WSL2 utiliza um kernel Linux real, comportamentos específicos de sistema de arquivos e permissões serão idênticos aos encontrados em servidores de produção Linux, permitindo a captura de bugs que não seriam reproduzíveis nativamente no Windows.

Tags: WSL2 dotnet-core visual-studio debugging Linux

Publicado em 7-13 13:11