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.
Visual Studio pode depurar uma solução que tem vários processos. Você pode iniciar e alternar entre processos, interromper, continuar e percorrer a origem, parar a depuração e terminar ou desanexar de processos individuais.
Comece a depuração com vários processos
Quando mais de um projeto em uma solução do Visual Studio pode ser executado independentemente, você pode selecionar qual projeto o depurador inicia. O projeto de inicialização atual aparece em negrito no Gerenciador de Soluções.
Para alterar o projeto de inicialização, no Gerenciador de Soluções, clique com o botão direito do mouse em um projeto diferente e selecione Definir como Projeto de Inicialização.
Para começar a depurar um projeto a partir do Gerenciador de Soluções sem torná-lo o projeto de inicialização, clique com o botão direito do mouse no projeto e selecione Depurar>Iniciar nova instância ou Entrar em nova instância.
Para definir o projeto de inicialização ou vários projetos a partir das Propriedades da solução:
Selecione a solução no Gerenciador de Soluções e, em seguida, selecione o ícone Propriedades na barra de ferramentas ou clique com o botão direito do mouse na solução e selecione Propriedades.
Na página Propriedades, selecione Propriedades Comuns>Projeto de arranque.
Selecione Seleção atual, Projeto de inicialização único e um arquivo de projeto ou Vários projetos de inicialização.
Se você selecionar Vários projetos de inicialização, poderá alterar a ordem de inicialização e a ação a ser tomada para cada projeto: Iniciar, Iniciar sem depuração ou Nenhum.
Selecione Aplicar ou OK para aplicar e fechar a caixa de diálogo.
Anexar a um processo
O depurador também pode se conectar a aplicativos em execução em processos fora do Visual Studio, inclusive em dispositivos remotos. Depois de anexares a uma aplicação, podes usar o depurador do Visual Studio. Os recursos de depuração podem ser limitados. Depende se o aplicativo foi criado com informações de depuração, se você tem acesso ao código-fonte do aplicativo e se o compilador JIT está rastreando informações de depuração.
Para obter mais informações, consulte Anexar a processos em execução.
Para anexar a um processo em execução:
Com o aplicativo em execução, selecione Depurar>anexar ao processo.
Na caixa de diálogo Anexar ao Processo , selecione o processo na lista Processos Disponíveis e selecione Anexar.
Observação
O depurador não se liga automaticamente a um processo secundário que é iniciado por um processo depurado, mesmo que o projeto secundário esteja nessa mesma solução. Para depurar um processo filho, anexe ao processo filho depois de ser iniciado ou configure o Editor de Registo do Windows para iniciar o processo filho numa nova instância de depuração.
Use o Editor do Registro para iniciar automaticamente um processo no depurador
Às vezes, talvez seja necessário depurar o código de inicialização de um aplicativo iniciado por outro processo. Os exemplos incluem serviços e ações de configuração personalizadas. Você pode fazer com que o depurador inicie e se ligue automaticamente ao aplicativo.
Inicie o Editor do Registro do Windows executando regedit.exe.
No Editor do Registro, navegue até HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options.
Selecione a pasta do aplicativo que você deseja iniciar no depurador.
Se o aplicativo não estiver listado como uma pasta filha, clique com o botão direito do mouse em Opções de Execução de Arquivo de Imagem, selecione Nova>Chave e digite o nome do aplicativo. Em alternativa, clique com o botão direito do rato na nova chave na árvore, selecione Mudar o nome e, em seguida, introduza o nome da aplicação.
Clique com o botão direito do mouse na nova chave na árvore e selecione Novo>valor da cadeia de caracteres.
Altere o nome do novo valor de Novo Valor #1 para
debugger.Clique com o botão direito do mouse no depurador e selecione Modificar.
Na caixa de diálogo Editar Cadeia de Caracteres, digite
vsjitdebugger.exea caixa Dados do valor e selecione OK.
Depurar com vários processos
Ao depurar uma aplicação com vários processos, os comandos de interrupção, passagem e continuação do depurador afetam todos os processos por padrão. Por exemplo, quando um processo é suspenso em um ponto de interrupção, a execução de todos os outros processos também é suspensa. Você pode alterar esse comportamento padrão, para obter mais controle sobre os destinos dos comandos de execução.
Para alterar se todos os processos são suspensos quando um processo é interrompido:
- No painel Ferramentas (ou Depuração>) Opções, expanda a seção Todas as Definições>Depuração>Geral.
- Na caixa de diálogo Ferramentas (ou Depuração) >Opções, expanda a seção Depuração>Geral.
- Marque ou desmarque a caixa de seleção Interromper todos os processos quando um processo falhar.
Comandos Interromper, Avançar, Continuar
A tabela a seguir descreve os comportamentos dos comandos de depuração quando a caixa de seleção Interromper todos os processos quando um processo é interrompido está marcada ou desmarcada:
| Comando | Selecionados | Desmarcado |
|---|---|---|
| Depurar>Interromper tudo | Todos os processos falham. | Todos os processos falham. |
| Depurar>Continuar | Todos os processos são retomados. | Todos os processos suspensos são retomados. |
| Depurar>Entrar, Passar ouSair | Todos os processos são executados durante as etapas atuais do processo. Em seguida, todos os processos são interrompidos. |
Etapas atuais do processo. Os processos suspensos são retomados. Os processos em execução continuam. |
| Depurar>Entre no processo atual, passe sobre o processo atual ou saia do processo atual | N/A | Etapas atuais do processo. Outros processos mantêm o seu estado existente (suspenso ou em execução). |
| Ponto de interrupção da janela de origem | Todos os processos falham. | Apenas o processo da janela de origem é interrompido. |
| Janela de origem Executar para o cursor A janela de origem deve estar no processo atual. |
Todos os processos são executados enquanto o processo da janela de origem é executado até o cursor e então interrompe. Em seguida, todos os outros processos são interrompidos. |
O processo da janela de origem é executado até o cursor. Outros processos mantêm o seu estado existente (suspenso ou em execução). |
| Janela de Processos>Quebrar Processo | N/A | Rupturas de processo selecionadas. Outros processos mantêm o seu estado existente (suspenso ou em execução). |
| Processos>Janela Continuar Processo | N/A | Retomada dos processos selecionados. Outros processos mantêm o seu estado existente (suspenso ou em execução). |
Localizar os arquivos de origem e símbolo (.pdb)
Para navegar no código-fonte de um processo, o depurador precisa ter acesso aos seus arquivos de origem e arquivos de símbolo. Para obter mais informações, consulte Especificar símbolo (.pdb) e arquivos de origem.
Se não conseguir aceder aos ficheiros de um processo, pode navegar utilizando a janela Desmontagem . Para obter mais informações, consulte Como usar a janela Desmontagem.
Alternar entre processos
Você pode conectar-se a vários processos quando estiver depurando, mas apenas um processo está ativo no depurador num determinado momento. Você pode definir o processo ativo ou atual na barra de ferramentas Local de Depuração ou na janela Processos . Para alternar entre processos, ambos os processos devem estar em modo de interrupção.
Para definir o processo atual a partir da barra de ferramentas de Local de Depuração:
Para abrir a barra de ferramentas Local de Depuração, selecione Ver>Barras de Ferramentas>Local de Depuração.
Durante a depuração, na barra de ferramentas Local de Depuração, selecione o processo que deseja definir como o processo atual no menu suspenso Processo.
Para definir o processo atual na janela Processos:
Para abrir a janela Processos, durante a depuração, selecione Depurar>Processos do Windows>.
Na janela Processos , o processo atual é marcado por uma seta amarela. Clique duas vezes no processo que você deseja definir como o processo atual.
Trocar para um processo define-o como o processo atual para fins de depuração. As janelas do depurador mostram o estado do processo atual e os comandos de revisão afetam apenas o processo atual.
Pare a depuração com vários processos
Por padrão, quando você seleciona Depurar>Parar Depuração, o depurador termina ou se desanexa de todos os processos.
Se o processo atual tiver sido iniciado no depurador, o processo é encerrado.
Caso tenha anexado o depurador ao processo atual, o depurador desanexa-se do processo e este continua em execução.
Se você começar a depurar um processo de uma solução do Visual Studio, anexe a outro processo que já esteja em execução e escolha Parar Depuração, a sessão de depuração será encerrada. O processo que foi iniciado no Visual Studio termina, enquanto o processo anexado continua em execução.
Para controlar a maneira como Parar Depuração afeta um processo individual, na janela Processos , clique com o botão direito do mouse em um processo e marque ou desmarque a caixa de seleção Desanexar quando a depuração for interrompida .
Observação
A opção Interromper todos os processos quando um processo quebra o depurador não afeta a parada, o encerramento ou a desvinculação dos processos.
Comandos Parar, encerrar e desanexar
A tabela a seguir descreve os comportamentos dos comandos do depurador stop, terminate e detach com vários processos:
| Comando | Descrição |
|---|---|
| Depurar>Parar a depuração | A menos que o comportamento seja alterado na janela Processos , os processos iniciados pelo depurador são encerrados e os processos anexados são desanexados. |
| Depurar>Encerrar tudo | Todos os processos são encerrados. |
| Depurar>Desanexar tudo | O depurador se desconecta de todos os processos. |
| Janela de Processos>Separar Processo | O depurador desliga-se do processo selecionado. Outros processos mantêm o seu estado existente (suspenso ou em execução). |
| Janela de Processos>Terminar Processo | O processo selecionado foi encerrado. Outros processos mantêm o seu estado existente (suspenso ou em execução). |
| Janela de Processos>Desligar quando a depuração for interrompida | Se selecionado, Debug>Stop Debugging será desanexado do processo selecionado. Se não estiver selecionado, Debug>Stop Debugging termina o processo selecionado. |