Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode anexar o depurador do Visual Studio a um processo em execução em um computador local ou remoto. Depois que o processo estiver em execução, selecione Depurar>Anexar ao Processo ou pressione Ctrl+Alt+p no Visual Studio e use a caixa de diálogo Anexar ao Processo para anexar o depurador ao processo.
Você pode usar Anexar ao Processo para depurar aplicativos em execução em computadores locais ou remotos, depurar vários processos simultaneamente, depurar aplicativos que não foram criados no Visual Studio ou depurar qualquer aplicativo que você não iniciou no Visual Studio com o depurador anexado. Por exemplo, se estiveres a executar uma aplicação sem o depurador e ocorrer uma exceção, podes então ligar o depurador ao processo que executa a aplicação e começar a depurar.
Sugestão
Não tem certeza se deve usar Anexar ao processo para seu cenário de depuração? Consulte Cenários comuns de depuração.
Anexar a um processo em execução na sua máquina local
Para reanexar rapidamente a um processo anexado anteriormente, consulte Reanexar a um processo.
A partir do Visual Studio 2022 versão 17.10 Preview 2, a caixa de diálogo Anexar ao Processo foi alterada. Se você precisar de instruções que correspondam à caixa de diálogo mais antiga, alterne para o modo de exibição Visual Studio 2019 (seletor de versão no canto superior esquerdo no artigo).
Para ligar-se a um processo no computador local:
No Visual Studio, selecione Depurar>Anexar ao Processo (ou pressione Ctrl+Alt+P) para abrir a caixa de diálogo Anexar ao Processo .
Defina o tipo de conexão como Local.
Na maioria dos cenários de depuração local, você pode usar Local. Alguns cenários podem exigir um tipo de conexão diferente. Para obter mais informações, consulte outras seções neste artigo ou Cenários comuns de depuração.
Na lista Processos disponíveis , localize e selecione o processo ou processos aos quais deseja anexar.
- Para selecionar rapidamente um processo, digite seu nome ou primeira letra na caixa Filtrar processos .
- Se você não souber o nome do processo, navegue pela lista ou consulte Cenários de depuração comuns para alguns nomes de processos comuns.
- Use o botão Rastrear janela para ativar a seleção de uma janela no seu computador, que define o processo.
Sugestão
Os processos podem iniciar e parar em segundo plano enquanto a caixa de diálogo Anexar ao Processo estiver aberta, portanto, a lista de processos em execução pode nem sempre ser atual. Você pode selecionar Atualizar a qualquer momento para ver a lista atual.
No campo Tipo de código , verifique se o tipo de código que você planeja depurar está listado.
A configuração Automática padrão funciona para a maioria dos tipos de aplicativo, mas você pode selecionar um tipo de código específico para especificar manualmente o tipo de depurador.
Selecione Anexar.
Sugestão
No cenário em que se tem múltiplos processos idênticos, utiliza a coluna Linha de Comando ou os detalhes do processo w3wp da coluna Título para identificar o processo correto.
Observação
Você pode estar associado a vários aplicativos para depuração, mas apenas um aplicativo está ativo no depurador de cada vez. Você pode definir o aplicativo ativo na barra de ferramentas de Local de Depuração do Visual Studio ou na janela Processos.
Anexar a um processo num computador remoto
Você também pode selecionar um computador remoto na caixa de diálogo Anexar ao processo , exibir uma lista de processos disponíveis em execução nesse computador e anexar a um ou mais processos para depuração. O depurador remoto (msvsmon.exe) deve estar em execução no computador remoto. Para obter mais informações, consulte Depuração remota.
A partir do Visual Studio 2022 versão 17.10 Preview 2, a caixa de diálogo Anexar ao Processo foi alterada. Se você precisar de instruções que correspondam à caixa de diálogo mais antiga, alterne para o modo de exibição Visual Studio 2019 (seletor de versão no canto superior esquerdo no artigo).
Para anexar a um processo em execução num computador remoto:
No Visual Studio, selecione Depurar>Anexar ao Processo (ou pressione Ctrl+Alt+P) para abrir a caixa de diálogo Anexar ao Processo .
Defina o Tipo de conexão como um tipo de conexão remota, como Remoto (Windows).
Na maioria dos cenários de depuração remota no Windows, você pode usar Remote (Windows). Alguns cenários, como a depuração do Linux ou de um aplicativo em contêiner, exigem um tipo de conexão diferente. Para obter mais informações, consulte outras seções neste artigo ou Cenários comuns de depuração.
A opção Destino da conexão é exibida.
Na caixa Destino da conexão , selecione o computador remoto, usando um dos seguintes métodos:
- Selecione a seta da lista suspensa ao lado de Destino da conexão e escolha o nome do computador da lista suspensa.
- Digite o nome do computador na caixa Destino da conexão e pressione Enter.
- Selecione o botão Localizar ao lado da caixa Destino da conexão para abrir a caixa de diálogo Conexões remotas . A caixa de diálogo Conexões remotas lista todos os dispositivos que estão na sub-rede local ou diretamente conectados ao computador. Talvez seja necessário abrir a porta UDP de saída 3702 no servidor para descobrir dispositivos remotos. Selecione o computador ou dispositivo desejado e feche a caixa de diálogo.
Verifique se o Visual Studio adiciona a porta necessária ao nome do computador, que aparece no formato: <nome do computador remoto>:port
Observação
Se não conseguir ligar utilizando o nome do computador remoto, tente utilizar o IP e o endereço da porta (por exemplo,
123.45.678.9:4026). 4026 é a porta padrão para o depurador remoto do Visual Studio 2022. Para outras atribuições de porta do depurador remoto, consulte Atribuições de porta do depurador remoto.A configuração Tipo de conexão persiste entre as sessões de depuração. A configuração de destino de conexão persiste entre as sessões de depuração somente se uma conexão de depuração bem-sucedida ocorreu com esse destino.
Clique em Atualizar para preencher a lista Processos disponíveis .
Sugestão
Os processos podem iniciar e parar em segundo plano enquanto a caixa de diálogo Anexar ao Processo estiver aberta, portanto, a lista de processos em execução pode nem sempre ser atual. Você pode selecionar Atualizar a qualquer momento para ver a lista atual.
Na lista Processos disponíveis , localize e selecione o processo ou processos aos quais deseja anexar.
Para selecionar rapidamente um processo, digite seu nome ou primeira letra na caixa de pesquisa de processos.
Se você não souber o nome do processo, navegue pela lista ou consulte Cenários de depuração comuns para alguns nomes de processos comuns.
Para localizar processos em execução em todas as contas de usuário, marque a caixa de seleção Mostrar processos de todos os usuários .
Observação
Se tentar ligar-se a um processo pertencente a uma conta de utilizador não confiável, aparecerá uma caixa de diálogo de confirmação de aviso de segurança. Para obter mais informações, consulte Aviso de segurança: anexar a um processo de propriedade de um usuário não confiável pode ser perigoso. Se as seguintes informações parecerem suspeitas ou se não tiver a certeza, não anexe a este processo.
No campo Tipo de código , verifique se o tipo de código que você planeja depurar está listado.
A configuração Automática padrão funciona para a maioria dos tipos de aplicativo, mas você pode selecionar um tipo de código específico para especificar manualmente o tipo de depurador.
Selecione Anexar.
Observação
Você pode estar associado a vários aplicativos para depuração, mas apenas um aplicativo está ativo no depurador de cada vez. Você pode definir o aplicativo ativo na barra de ferramentas de Local de Depuração do Visual Studio ou na janela Processos.
Em alguns casos, quando se depura numa sessão de Ambiente de Trabalho Remoto (Serviços de Terminal), a lista Processos disponíveis não exibirá todos os processos disponíveis. Se você estiver executando o Visual Studio como um usuário que tem uma conta de usuário limitada, a lista Processos disponíveis não mostrará os processos que estão sendo executados na Sessão 0. A sessão 0 é usada para serviços e outros processos de servidor, incluindo w3wp.exe. Você pode resolver o problema executando o Visual Studio em uma conta de administrador ou executando o Visual Studio a partir do console do servidor em vez de uma sessão de Área de Trabalho Remota.
Se nenhuma dessas soluções alternativas for possível, uma terceira opção é anexar ao processo executando vsjitdebugger.exe -p <ProcessId> a partir da linha de comando do Windows. Você pode determinar a ID do processo usando tlist.exe. Para obter tlist.exe, baixe e instale as Ferramentas de Depuração para Windows, disponíveis em Downloads WDK e WinDbg.
Anexar a um processo .NET Core em execução no Serviço de Aplicativo do Azure (Windows)
Se você estiver publicando no Serviço de Aplicativo do Azure (Windows), consulte Depuração remota ASP.NET Core no Azure ou Depurando o Serviço de Aplicativo do Azure para obter instruções.
Anexar a um processo .NET Core em execução no Linux usando SSH
Para obter mais informações, consulte Depuração remota do .NET Core em execução no Linux usando SSH.
Anexar a um processo em execução em um contêiner do Docker
A partir do Visual Studio 2019, você pode anexar o depurador do Visual Studio a um processo em execução em um contêiner do Docker. Para um contêiner do Linux .NET Core Docker, consulte Anexar a um processo em execução em um contêiner do Linux Docker. Para um contêiner do Windows Docker, consulte Anexar a um processo em execução em um contêiner do Windows Docker.
Reanexar a um processo
Você pode reanexar rapidamente aos processos aos quais estava anexado anteriormente escolhendo Depurar>Reanexar ao Processo (Shift+Alt+P). Quando escolhes este comando, o depurador tentará imediatamente ligar-se aos últimos processos aos quais te ligaste, começando por tentar corresponder ao ID do processo anterior e, se isso falhar, por corresponder ao nome do processo anterior. Se nenhuma correspondência for encontrada, ou se vários processos tiverem o mesmo nome, a caixa de diálogo Anexar ao processo será aberta para que você possa selecionar o processo correto.
Observação
O comando Reanexar ao processo está disponível a partir do Visual Studio 2017.
Cenários comuns de depuração
Para ajudá-lo a determinar se deve usar Anexar ao Processo e a qual processo anexar, a tabela a seguir mostra alguns cenários de depuração comuns, com links para mais instruções, quando disponíveis. (A lista não é exaustiva.)
Para selecionar rapidamente um processo em execução ao qual anexar, no Visual Studio, digite Ctrl+Alt+P e digite a primeira letra do nome do processo.
Para que o depurador anexe ao código escrito em C++, o código precisa emitir DebuggableAttribute. Você pode adicionar isso ao seu código automaticamente vinculando com a opção de vinculador /ASSEMBLYDEBUG .
Para depuração de script do lado do cliente, a depuração de script deve ser ativada no navegador. Para depurar scripts do lado do cliente no Chrome, escolha JavaScript ou TypeScript como o tipo de código e, dependendo do tipo de aplicativo, talvez seja necessário fechar todas as instâncias do Chrome e iniciar o navegador no modo de depuração (digite chrome.exe --remote-debugging-port=9222 em uma linha de comando).
| Scenario | Método de depuração | Nome do processo | Notas e ligações |
|---|---|---|---|
| ASP.NET Core - Depuração remota no servidor IIS (Serviços de Informações da Internet) | Usar ferramentas remotas e Anexar ao Processo | w3wp.exe ou dotnet.exe | A partir do .NET Core 3, o processo w3wp.exe é usado para o modelo de hospedagem padrão dentro da aplicação. Para implantação de aplicativos, consulte Publicar no IIS. Para obter informações mais detalhadas, veja Depuração remota do ASP.NET Core num computador remoto com IIS |
| ASP.NET Core - Depurar na máquina local depois de iniciar a aplicação sem o depurador | Usar Anexar ao Processo | appname.exe ou iisexpress.exe | Isso pode ser útil para fazer com que seu aplicativo carregue mais rapidamente, como (por exemplo) ao criar o perfil. O processo padrão do servidor local (kestrel) para ASP.NET Core é appname.exe. |
| ASP.NET 4 ou 4.5 - Depuração remota num servidor IIS | Usar ferramentas remotas e Anexar ao Processo | w3wp.exe | Consulte Depuração remota ASP.NET em um computador IIS remoto |
| Script cliente - Depurar num servidor IIS local, para tipos de aplicações suportadas | Usar Anexar ao Processo | chrome.exe ou msedge.exe | A depuração de scripts deve ser ativada. Para o Chrome, também tem de executar o Chrome no modo de depuração (escrever chrome.exe --remote-debugging-port=9222 a partir de uma linha de comandos) e selecionar JavaScript ou TypeScript no campo Anexar a . |
| Aplicativo C#, Visual Basic ou C++ - Depurar na máquina local | Utilize depuração padrão (F5) ou Ligar ao Processo | {appname}.exe | Na maioria dos cenários, use a depuração padrão e não Anexar ao processo. |
| Aplicação de ambiente de trabalho do Windows - Depuração remota | Ferramentas remotas | N/A | Consulte Depurar remotamente um aplicativo C# ou Visual Basic ou Depurar remotamente um aplicativo C++ |
| .NET Core no Linux - Depuração | Usar Anexar ao Processo | dotnet.exe ou um nome de processo exclusivo | Para usar SSH, consulte Depuração remota do .NET Core em execução no Linux usando SSH. Para aplicativos em contêineres, consulte Anexar a um processo em execução em um contêiner do Docker. |
| Aplicativo em contêiner - Depurar | Usar Anexar ao Processo | dotnet.exe ou um nome de processo exclusivo | Consulte Anexar a um processo em execução em um contêiner do Docker |
| Python no Linux - Depuração remota | Usar Anexar ao Processo | debugpy | Consulte Anexar remotamente a partir de ferramentas Python |
| Outros tipos de aplicações suportadas - Depurar num processo de servidor | Se o servidor for remoto, use ferramentas remotas e Anexar ao processo | chrome.exe, msedge.exeou outros processos | Se necessário, use o Monitor de Recursos para ajudar a identificar o processo. Consulte Depuração remota. |
| Aplicação da Plataforma Universal do Windows (UWP), OneCore, HoloLens ou aplicação IoT - Depuração remota | Depurar pacote de aplicativo instalado | N/A | Consulte Depurar um pacote de aplicação instalado em vez de usar Anexar ao Processo |
| Aplicativo UWP, OneCore, HoloLens ou IoT - Depure um aplicativo que você não iniciou no Visual Studio | Depurar pacote de aplicativo instalado | N/A | Consulte Depurar um pacote de aplicação instalado em vez de usar Anexar ao Processo |
Usar recursos do depurador
Para usar todas as funcionalidades do depurador do Visual Studio (como atingir pontos de paragem) ao ligar a um processo, a aplicação deve corresponder exatamente ao código-fonte e aos símbolos locais. Ou seja, o depurador deve ser capaz de carregar os arquivos de símbolo (.pdb) corretos. Por padrão, isso requer uma compilação de depuração.
Para cenários de depuração remota, você deve ter o código-fonte (ou uma cópia do código-fonte) já aberto no Visual Studio. Os binários de aplicativo compilados na máquina remota devem vir da mesma compilação que na máquina local.
Em alguns cenários de depuração local, você pode depurar no Visual Studio sem acesso à fonte se os arquivos de símbolo corretos estiverem presentes com o aplicativo. Por padrão, isso requer uma compilação de depuração. Para obter mais informações, consulte Especificar arquivos de símbolo e de origem.
Solucionar erros de anexação
Em alguns cenários, o depurador pode precisar de ajuda para identificar corretamente o tipo de código a ser depurado. Se os valores de conexão estiverem definidos corretamente (você pode visualizar o processo correto na lista Processos disponíveis ), mas o depurador não conseguir anexar, tente selecionar o depurador mais apropriado na lista Tipo de código , o que pode ser necessário, por exemplo, se você estiver depurando um aplicativo Linux ou Python.
Às vezes, o depurador pode conectar-se com sucesso a um tipo de código, mas não a outro tipo de código. Normalmente, isso ocorre quando:
- Você tenta ligar-se a um processo que está a ser executado num computador remoto. O computador remoto pode ter componentes de depuração remota instalados para alguns tipos de código, mas não para outros.
- Você tenta ligar-se a dois ou mais processos para a depuração direta da base de dados. A depuração SQL suporta a ligação apenas a um único processo.
Se o depurador conseguir ligar-se a alguns, mas não a todos, os tipos de código, verá uma mensagem que identifica quais tipos falharam em ligar-se.
Se o depurador conseguir conectar-se a pelo menos um tipo de código, poderá prosseguir para depurar esse processo. Você poderá depurar apenas os tipos de código que foram anexados com êxito. O código desanexado no processo ainda será executado, mas você não poderá definir pontos de interrupção, exibir dados ou executar outras operações de depuração nesse código.
Se tu quiseres informações mais específicas sobre por que o depurador não conseguiu ligar a um tipo de código, tenta ligar novamente somente a esse tipo de código.
Obter informações específicas sobre por que um tipo de código falhou ao anexar
Desvincule-se do processo. No menu Depurar , selecione Desanexar tudo.
Reanexe ao processo, selecionando apenas o tipo de código que não conseguiu anexar.
Na caixa de diálogo Anexar ao Processo , selecione o processo na lista Processos disponíveis .
Na opção Tipo de código , selecione o tipo de código que não foi anexado. Desmarque os outros tipos de código.
Na caixa de diálogo Anexar ao Processo , selecione Anexar.
Desta vez, o anexo falhará completamente e você receberá uma mensagem de erro específica.