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.
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 do Visual Studio com o depurador anexado. Por exemplo, se você estiver executando um aplicativo sem o depurador e ocorrer uma exceção, poderá vincular o depurador ao processo que executa o aplicativo e iniciar a depuração.
Dica
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 em seu computador local
Para reanexar rapidamente a um processo ao qual você anexou anteriormente, consulte Reanexar a um processo.
A partir do Visual Studio 2022 versão 17.10 Versão Prévia 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 a exibição do Visual Studio 2019 (seletor de versão superior esquerdo no artigo).
Para anexar a um processo em seu computador local:
No Visual Studio, selecione >Anexar ao Processo (ou pressione ++ P) para abrir a caixa de diálogo Anexar ao Processo.
Defina o tipo de conexão comoLocal.
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 de processos disponíveis , localize e selecione o processo ou os processos aos quais você deseja anexar.
- Para selecionar rapidamente um processo, digite seu nome ou primeira letra na caixa Processos de filtro .
- Se você não souber o nome do processo, navegue pela lista ou veja cenários comuns de depuração para alguns nomes de processo comuns.
- Para habilitar a seleção de uma janela no computador, utilize o botão Rastrear Janela, o que configura o processo.
Dica
Os processos podem iniciar e parar em segundo plano enquanto a caixa de diálogo Anexar ao Processo está 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.
Dica
No cenário em que você tem vários processos idênticos, use a coluna Linha de Comando ou os detalhes do processo w3wp da coluna Título para identificar o processo correto.
No Visual Studio, selecione >ao Processo (ou pressione ++ P) para abrir a caixa de diálogo Anexar ao Processo.
Verifique o tipo de conexão.
Na maioria dos cenários, você pode usar Default. 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.
Defina o destino de conexão com o nome do computador local.
Na lista de processos disponíveis , localize e selecione o processo ou os processos aos quais você deseja anexar.
Para selecionar rapidamente um processo, digite seu nome ou primeira letra na caixa Processos de filtro .
Se você não souber o nome do processo, navegue pela lista ou veja cenários comuns de depuração para alguns nomes de processo comuns.
Dica
Os processos podem iniciar e parar em segundo plano enquanto a caixa de diálogo Anexar ao Processo está 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 Anexar ao, certifique-se de que 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.
Se você estiver usando o tipo de conexão Padrão , poderá selecionar manualmente o tipo de código ao qual deseja anexar. Caso contrário, a opção Selecionar poderá estar desabilitada.
Para selecionar tipos de código manualmente:
- Clique em Selecionar.
- Na caixa de diálogo Selecionar Tipo de Código , selecione Depurar esses tipos de código. Se você tiver uma falha ao tentar anexar a um processo na lista, poderá usar a caixa de diálogo Selecionar Tipo de Código para ajudar a solucionar o problema.
- Selecione os tipos de código que você deseja depurar.
- Selecione OK.
Selecione Anexar.
Observação
Você pode estar conectado a vários aplicativos para depuração, mas apenas um aplicativo está em execução no depurador por vez. Você pode definir o aplicativo ativo na Barra de Localização de Depuração do Visual Studio ou na janela Processos.
Anexar a um processo em um 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 dos 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 Versão Prévia 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 a exibição do Visual Studio 2019 (seletor de versão superior esquerdo no artigo).
Para anexar a um processo em execução em um computador remoto:
No Visual Studio, selecione >ao Processo (ou pressione ++ P) para abrir a caixa de diálogo Anexar ao Processo.
Defina o tipo de conexão para um tipo de conexão remota, como Remoto (Windows).
Na maioria dos cenários para depuração remota no Windows, você pode usar Remoto (Windows). Alguns cenários, como depurar o Linux ou um aplicativo containerizado, 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 de conexão de destino é 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 do destino conexão e selecione o nome do computador na lista suspensa.
- Digite o nome do computador na caixa de destino conexão e pressione Enter.
- Selecione o botão Localizar ao lado da caixa de destino 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 em sua sub-rede local ou conectados diretamente ao seu 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 você não conseguir se conectar usando o nome do computador remoto, tente usar o IP e o endereço de 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 de 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 de processos disponíveis .
Dica
Os processos podem iniciar e parar em segundo plano enquanto a caixa de diálogo Anexar ao Processo está 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 de processos disponíveis , localize e selecione o processo ou os processos aos quais você 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 veja cenários comuns de depuração para alguns nomes de processo comuns.
Para localizar processos em execução em todas as contas de usuário, selecione a caixa de seleção Mostrar processos de todos os usuários .
Observação
Se você tentar anexar a um processo de propriedade de uma conta de usuário não confiável, uma confirmação da caixa de diálogo de aviso de segurança será exibida. 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 informações a seguir parecerem suspeitas ou você não tiver certeza, não anexe a esse 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.
No Visual Studio, selecione >ao Processo (ou pressione ++ P) para abrir a caixa de diálogo Anexar ao Processo.
Verifique o tipo de conexão.
Na maioria dos cenários, você pode usar Default. Alguns cenários, como a depuração de Linux ou um aplicativo em container, 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.
Na caixa Destino de conexão, selecione o computador remoto usando um dos seguintes métodos:
- Selecione a seta da lista suspensa ao lado do destino de conexão e selecione o nome do computador na lista suspensa.
- Digite o nome do computador na caixa de destino conexão e pressione Enter.
- Selecione o botão Localizar ao lado da caixa de destino 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 em sua sub-rede local ou conectados diretamente ao seu 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 selecione Selecionar.
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 você não conseguir se conectar usando o nome do computador remoto, tente usar o IP e o endereço de porta (por exemplo,
123.45.678.9:4022). 4024 é a porta padrão para o depurador remoto do Visual Studio 2019. Para outras atribuições de porta do depurador remoto, consulte atribuições de porta do depurador remoto.A configuração de 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 de processos disponíveis .
Dica
Os processos podem iniciar e parar em segundo plano enquanto a caixa de diálogo Anexar ao Processo está 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 de processos disponíveis , localize e selecione o processo ou os processos aos quais você deseja anexar.
Para selecionar rapidamente um processo, digite seu nome ou primeira letra na caixa Processos de filtro .
Se você não souber o nome do processo, navegue pela lista ou veja cenários comuns de depuração para alguns nomes de processo comuns.
Para localizar processos em execução em todas as contas de usuário, selecione a caixa de seleção Mostrar processos de todos os usuários .
Observação
Se você tentar anexar a um processo de propriedade de uma conta de usuário não confiável, uma confirmação da caixa de diálogo de aviso de segurança será exibida. 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 informações a seguir parecerem suspeitas ou você não tiver certeza, não anexe a esse processo.
No campo Anexar ao, certifique-se de que 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.
Se você estiver usando o tipo de conexão Padrão , poderá selecionar manualmente o tipo de código ao qual deseja anexar. Caso contrário, a opção Selecionar poderá estar desabilitada.
Para selecionar tipos de código manualmente:
- Clique em Selecionar.
- Na caixa de diálogo Selecionar Tipo de Código , selecione Depurar esses tipos de código. Se você tiver uma falha ao tentar anexar a um processo na lista, poderá usar a caixa de diálogo Selecionar Tipo de Código para ajudar a solucionar o problema.
- Selecione OK.
Selecione Anexar.
Observação
Você pode estar conectado a vários aplicativos para depuração, mas apenas um aplicativo está em execução no depurador por vez. Você pode definir o aplicativo ativo na Barra de Localização de Depuração do Visual Studio ou na janela Processos.
Em alguns casos, quando você depura em uma sessão de Área de Trabalho Remota (Serviços de Terminal), a lista de processos disponíveis não exibirá todos os processos disponíveis. Se você estiver executando o Visual Studio como um usuário que tenha uma conta de usuário limitada, a lista de processos disponíveis não mostrará os processos em execução 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 no 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 será 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 nos downloads do WDK e do WinDbg.
Anexar a um processo do .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 a 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 do .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), encontrará a opção Anexar Depurador no menu ... em Hospedagem no perfil de publicação. O Visual Studio tenta anexar o depurador remoto à instância do Serviço de Aplicativo do Azure (Windows) na qual o perfil está publicando.
Anexar a um processo do .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 Docker do .NET Core do Linux, consulte Anexar a um processo em execução em um contêiner do Docker do Linux. 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 você foi anexado anteriormente escolhendo Depurar>Reattach to Process (Shift+Alt+P). Quando você escolher este comando, o depurador imediatamente tentará reconectar aos processos que foram usados anteriormente, primeiro procurando corresponder à ID do processo anterior e, caso não consiga, 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 Reattach to Process está disponível a partir do Visual Studio 2017.
Cenários comuns de depuração
Para ajudar você a determinar se deve usar Anexar ao Processo e a qual processo anexar, a tabela a seguir mostra alguns cenários comuns de depuração, com links para mais instruções, quando disponível. (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 se conecte ao código escrito em C++, o código precisa emitir DebuggableAttribute. Você pode adicioná-lo ao código automaticamente vinculando-se à opção do vinculador /ASSEMBLYDEBUG .
Para depuração de script do lado do cliente, a depuração de script deve ser habilitada no navegador. Para depurar o script 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 de uma linha de comando).
Para depuração de script do lado do cliente, a depuração de script deve ser habilitada no navegador. Para depurar o script do lado do cliente no Chrome, escolha JavaScript (Chrome) ou JavaScript (Microsoft Edge – Chromium) 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 de uma linha de comando). Em versões anteriores do Visual Studio, o depurador de script para Chrome era o web kit.
| Scenario | Método de depuração | Nome do processo | Anotações e links |
|---|---|---|---|
| ASP.NET Core – Depuração remota no servidor do 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 do aplicativo. Para implantação de aplicativo, consulte Publicar no IIS. Para obter informações mais detalhadas, consulte Depuração remota ASP.NET Core em um computador IIS remoto |
| ASP.NET Core – Depurar na máquina local após iniciar o aplicativo sem o depurador | Usar Anexar ao Processo | appname.exe ou iisexpress.exe | Isso pode ser útil para fazer seu aplicativo carregar mais rapidamente, como (por exemplo) ao criar perfil. O processo de kestrel (servidor local) padrão para ASP.NET Core é appname.exe. |
| ASP.NET 4 ou 4.5 – Depuração remota em um Servidor IIS | Usar ferramentas remotas e anexar ao processo | w3wp.exe | Consulte depuração remota do ASP.NET em um computador IIS remoto |
| Script do lado do cliente – Depurar em um servidor IIS local para tipos de aplicativo com suporte | Usar Anexar ao Processo | chrome.exe ou msedge.exe | A depuração de script deve ser habilitada. Para o Chrome, você também deve executar o Chrome no modo de depuração (digite chrome.exe --remote-debugging-port=9222 de uma linha de comando) e selecionar JavaScript ou TypeScript no campo Anexar ao campo. |
| Aplicativo C#, Visual Basic ou C++ – Depurar na máquina local | Usar a depuração padrão (F5) ou Anexar ao Processo | {appname}.exe | Na maioria dos cenários, usar a depuração padrão e não Anexar ao Processo. |
| Aplicativo de desktop do Windows – Depuração remota | Ferramentas remotas | N/A | Veja como fazer depuração remota de um aplicativo C# ou Visual Basic ou depuração remota de um aplicativo C++ |
| .NET Core no Linux – Depuração | Usar Anexar ao Processo | dotnet.exe ou um nome de processo exclusivo | Para usar o 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. |
| Aplicação em contêiner – Depuração | Utilize 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 Conectar remotamente nas Ferramentas do Python |
| Outros tipos de aplicativo com suporte – Depurar em um processo de servidor | Se o servidor for remoto, use ferramentas remotas e anexe ao processo | chrome.exe, msedge.exeou outros processos | Se necessário, use o Resource Monitor para ajudar a identificar o processo. Consulte a depuração remota. |
| Aplicativo da Plataforma Universal do Windows (UWP), OneCore, HoloLens ou aplicativo IoT – Depuração remota | Depurar pacote de aplicativo instalado | N/A | Consulte Depurar um pacote de aplicativo instalado em vez de usar Anexar ao Processo |
| Aplicativo UWP, OneCore, HoloLens ou IoT – Depure um aplicativo que não foi iniciado por você no Visual Studio. | Depurar pacote de aplicativo instalado | N/A | Consulte Depurar um pacote de aplicativo instalado em vez de usar Anexar ao Processo |
Usar os recursos do depurador
Para usar todos os recursos do depurador do Visual Studio (como acertar pontos de interrupção) ao anexar a um processo, o aplicativo 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 correto (.pdb). 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 no computador remoto devem vir do mesmo build que no computador local.
Em alguns cenários de depuração local, você pode depurar no Visual Studio sem acesso à origem 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 problemas de 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 forem definidos corretamente (você poderá exibir o processo correto na lista de processos disponíveis ), mas o depurador não for anexado, tente selecionar o depurador mais apropriado na lista de tipos de código , o que pode ser necessário, por exemplo, se você estiver depurando um aplicativo Linux ou Python.
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 forem definidos corretamente (você pode visualizar o processo correto na lista processos disponíveis), mas o depurador não conseguir se anexar, tente selecionar o tipo de conexão mais apropriado na lista tipos de conexão, o que pode ser necessário, por exemplo, se você estiver depurando um aplicativo Linux ou Python. Se você estiver usando o tipo de conexão Padrão, você poderá, como alternativa, selecionar o tipo específico de código ao qual se conectar, conforme descrito mais adiante nesta seção.
Quando o depurador é anexado a um processo em execução, o processo pode conter um ou mais tipos de código. Os tipos de código a que o depurador pode se conectar são exibidos e selecionados na caixa de diálogo Selecionar Tipo de Código.
Às vezes, o depurador consegue se conectar com êxito a um tipo de código, mas não a outro. Normalmente, isso ocorre quando:
- Você tenta se conectar a um processo em execução em um 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 anexar a dois ou mais processos para depuração direta de banco de dados. A depuração de SQL suporta a anexação apenas a um único processo.
Se o depurador for capaz de conectar-se a alguns tipos de código, mas não a todos, você verá uma mensagem identificando quais tipos falharam ao tentar anexar.
Caso o depurador consiga se conectar com êxito a pelo menos um tipo de código, você poderá prosseguir com a depuração do processo. Você poderá depurar apenas os tipos de código que foram anexados com êxito. O código não anexado 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 você quiser informações mais específicas sobre por que o depurador não conseguiu anexar a um tipo de código, tente anexar novamente apenas a esse tipo de código.
Obter informações específicas sobre por que um tipo de código falhou ao anexar
Desvincular-se do processo. No menu Depurar , selecione Desanexar Tudo.
Conecte-se novamente ao processo, selecionando apenas o tipo de código que não foi anexado.
Na caixa de diálogo Anexar ao Processo , selecione o processo na lista de 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, a anexação falhará completamente e você receberá uma mensagem de erro específica.
Desanexar do processo. No menu Depurar , selecione Desanexar Tudo.
Conecte-se novamente ao processo, selecionando apenas o tipo de código que não foi anexado.
Na caixa de diálogo Anexar ao Processo , selecione o processo na lista de processos disponíveis .
Selecione Selecionar.
Na caixa de diálogo Selecionar Tipo de Código , selecione Depurar esses tipos de código e o tipo de código que não foi anexado. Desmarque os outros tipos de código.
Selecione OK.
Na caixa de diálogo Anexar ao Processo , selecione Anexar.
Desta vez, a anexação falhará completamente e você receberá uma mensagem de erro específica.