Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A partir do Visual Studio 2017, você pode anexar aos processos do .NET Core e do .NET 5+ em execução em uma implantação local ou remota do Linux por SSH (Secure Shell). Este artigo descreve como configurar a depuração e como depurar. Para cenários de depuração usando contêineres do Docker, consulte Conectar a um processo em execução em um contêiner do Docker e nos artigos das ferramentas de contêiner em vez disso. Para depurar o Linux no WSL 2 a partir do Visual Studio (sem anexar ao processo), consulte Depurar aplicativos .NET Core no WSL 2 com o Visual Studio.
Observação
Para depurar o Linux em execução no AKS (Serviço de Kubernetes do Azure), Bridge to Kubernetes é recomendado em vez de anexar ao processo.
Pré-requisitos
No servidor Linux, você precisa instalar o servidor SSH, descompactar e instalar com curl ou wget. Por exemplo, no Ubuntu, você pode fazer isso executando:
sudo apt-get install openssh-server unzip curlO SFTP deve estar habilitado, bem como o SSH. A maioria das distribuições SSH instala e habilita o SFTP por padrão, mas nem sempre é o caso.
No servidor Linux, instale o runtime do .NET no Linux e localize a página correspondente à distribuição do Linux (como o Ubuntu). O SDK do .NET não é necessário.
Para garantir que os serviços de depuração do .NET necessários estejam disponíveis para depuração, evite publicar o aplicativo como um executável de arquivo único.
Para obter instruções abrangentes do ASP.NET Core, consulte Host ASP.NET Core no Linux com Nginx e Host ASP.NET Core no Linux com Apache.
Prepare seu aplicativo para depuração
Considere usar uma configuração de Depuração ao compilar o aplicativo. É mais difícil depurar código compilado no varejo (uma configuração de versão) do que o código compilado por depuração. Se você precisar usar uma configuração de versão, primeiro desabilite o recurso Just My Code. Abra o painel Ferramentas>Opções e expanda a seção Todas as Configurações>Depuração>Geral. Desmarque a caixa de seleção Habilitar Apenas Meu Código .
Considere usar uma configuração de Depuração ao compilar o aplicativo. É mais difícil depurar código compilado no varejo (uma configuração de versão) do que o código compilado por depuração. Se você precisar usar uma configuração de versão, primeiro desabilite o recurso Just My Code. Abra a caixa de diálogo Ferramentas>Opções e expanda a seção Depuração>Geral. Desmarque a caixa de seleção Habilitar Apenas Meu Código .
Verifique se o projeto está configurado para produzir PDBs portáteis (que é a configuração padrão) e verifique se os PDBs estão no mesmo local que a DLL. Para configurar isso no Visual Studio, clique com o botão direito do mouse no projeto e escolha Propriedades>Geral>símbolos de Depuração.
Verifique se o projeto está configurado para produzir PDBs portáteis (que é a configuração padrão) e verifique se os PDBs estão no mesmo local que a DLL. Para configurar isso no Visual Studio, clique com o botão direito do mouse no projeto e escolha Propriedades>Build>Avançado>Informações de Depuração.
Compilar e implantar o aplicativo
Você pode usar vários métodos para implantar o aplicativo antes de iniciar a depuração. Por exemplo, você pode:
Copie as fontes para o computador de destino e compile com
dotnet buildna máquina Linux.Crie o aplicativo no Windows e, em seguida, transfira os artefatos de build para o computador Linux. (Os artefatos de build consistem no próprio aplicativo, os PDBs portáteis, quaisquer bibliotecas de runtime das quais ele possa depender e o arquivo.deps.json .)
Quando o aplicativo for implantado, inicie o aplicativo.
Anexar o depurador
Quando o aplicativo estiver em execução na máquina Linux, você estará pronto para conectar o depurador.
No Visual Studio, escolha Depurar>Anexar ao Processo....
Na lista Tipo de Conexão , selecione SSH.
Altere o Destino de Conexão para o endereço IP ou o nome do host do computador de destino.
Se você não tiver fornecido credenciais, será solicitado que você insira uma senha e/ou um arquivo de chave privada. Para obter mais informações sobre como usar um arquivo de chave privada, consulte Configurar uma conexão remota.
Não há requisitos de porta para configurar, exceto a porta na qual o servidor SSH está em execução.
Encontre o processo que você deseja depurar.
Seu código é executado em um nome de processo exclusivo ou em um processo chamado dotnet. Para localizar o processo no qual você está interessado, verifique a coluna Título , que mostra os argumentos de linha de comando para o processo.
No exemplo a seguir, você verá uma lista de processos de um computador Linux remoto por meio de um transporte SSH exibido na caixa de diálogo Anexar ao Processo .
Escolha e Anexar.
Na caixa de diálogo exibida, selecione o tipo de código que você deseja depurar. Escolha Gerenciado (.NET Core para Unix).
Use os recursos de depuração do Visual Studio para depurar o aplicativo.
No exemplo a seguir, você verá o depurador do Visual Studio parado em um ponto de interrupção no código em execução em um computador Linux remoto.