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.
O Visual Studio pode depurar uma solução que tem vários processos. Você pode iniciar e alternar entre processos, pausar, continuar, executar passo a passo o código fonte, parar a depuração e finalizar ou desvincular processos individuais.
Iniciar a depuração com múltiplos processos
Quando mais de um projeto em uma solução do Visual Studio pode ser executado de forma independente, 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 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 nas Propriedades da Solução:
Selecione a solução no Gerenciador de Soluções e 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 Inicialização.
Selecione Seleção atual, projeto de inicialização única 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 serem executadas 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 ser anexado a aplicativos em execução em processos fora do Visual Studio, inclusive em dispositivos remotos. Depois de conectar-se a um aplicativo, você pode 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 é anexado automaticamente a um processo filho iniciado por um processo depurado, mesmo que o projeto filho esteja na mesma solução. Para depurar um processo filho, anexe ao processo filho após o início ou configure o Editor do Registro do Windows para iniciar o processo filho em uma nova instância do depurador.
Usar 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 que é iniciado por outro processo. Exemplos incluem serviços e ações de configuração personalizadas. Você pode fazer com que o depurador inicie e se conecte 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 filho, 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. Ou clique com o botão direito do mouse na nova chave na árvore, selecione Renomear e, em seguida, insira o nome do aplicativo.
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 nº 1 para
debugger.Clique com o botão direito em depurador e selecione Modificar.
Na caixa de diálogo Editar Cadeia de Caracteres , digite
vsjitdebugger.exena caixa de dados Valor e selecione OK.
Depurar com vários processos
Ao depurar um aplicativo com vários processos, os comandos de depurador parar, avançar e continuar 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 Depurar) >Opções, expanda a seção Todas as Configurações>Depuração>Geral.
- Na caixa de diálogo Ferramentas (ou Depuração) >Opções, expanda a seção Depuração>Geral.
- Selecione ou desmarque a caixa de seleção Interromper todos os processos quando um processo interrompe.
Comandos Break, Step, Continue
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 interrompe está selecionada ou desmarcada.
| Command | Selecionadas | Desmarcada |
|---|---|---|
| Depurar>Parar 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 por cima ou sair | 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>Entrar no processo atual, percorrer o processo atual ou sair do processo atual | N/A | Etapas atuais do processo. Outros processos mantêm o estado existente (suspenso ou em execução). |
| Ponto de interrupção da janela de origem | Todos os processos falham. | Somente o processo da janela de origem é interrompido. |
| Janela de fonte Executar até 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 no cursor e, em seguida, é interrompido. Em seguida, todos os outros processos são interrompidos. |
O processo da janela de origem é executado no cursor. Outros processos mantêm o estado existente (suspenso ou em execução). |
| Janela de Processos>Interromper Processo | N/A | Interrupções de processo selecionadas. Outros processos mantêm o estado existente (suspenso ou em execução). |
| Janela de Processos>Continuar Processo | N/A | O processo selecionado é retomado. Outros processos mantêm o estado existente (suspenso ou em execução). |
Localizar os arquivos de origem e de símbolos (.pdb)
Para navegar pelo código-fonte de um processo, o depurador precisa de acesso aos arquivos de origem e arquivos de símbolo. Para obter mais informações, consulte Especificar símbolo (.pdb) e arquivos de origem.
Se você não conseguir acessar os arquivos de um processo, poderá navegar usando a janela Disassembly. Para obter mais informações, consulte Como usar a janela Desmontar.
Alternar entre processos
Você pode anexar a vários processos quando estiver depurando, mas apenas um processo está ativo no depurador a qualquer 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 no modo de interrupção.
Para configurar o processo atual na barra de ferramentas Localização de Depuração:
Para abrir a barra de ferramentas Local de Depuração, selecione Exibir>Barras de Ferramentas>Local de Depuração.
Durante a depuração, na barra de ferramentas Depuração, selecione o processo que você deseja definir como o processo atual no menu Processo.
Para definir o processo atual da janela Processos:
Para abrir a janela Processos, durante a depuração, selecione Depurar>Windows>Processos.
Na janela Processos , o processo atual é marcado por uma seta amarela. Clique duas vezes no processo que você deseja definir como o processo atual.
Alternar para um processo o define como o processo atual para fins de depuração. As janelas do depurador mostram o estado do processo atual e os comandos de etapa 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 desanexa de todos os processos.
Se o processo atual tiver sido iniciado no depurador, o processo será encerrado.
Se você anexou o depurador ao processo atual, o depurador se desvincula do processo e deixa o processo continuar em execução.
Se você começar a depurar um processo de uma solução do Visual Studio, anexe a outro processo que já está em execução e escolha Parar Depuração, a sessão de depuração será encerrada. O processo iniciado no Visual Studio termina, enquanto o processo que você anexou continua em execução.
Para controlar a maneira como parar a depuração afeta um processo individual, na janela Processos , clique com o botão direito do mouse em um processo e, em seguida, selecione ou desmarque a caixa de seleção Desanexar ao parar a depuração .
Observação
A opção de depurador Interromper todos os processos quando um processo quebra não afeta a parada, término ou desanexação de processos.
Interromper, encerrar e desanexar comandos
A tabela a seguir descreve os comportamentos dos comandos de parar, encerrar e desanexar do depurador com vários processos:
| Command | Descrição |
|---|---|
| Depurar>Parar Depurar | A menos que o comportamento seja alterado na janela Processos , os processos iniciados pelo depurador serão encerrados e os processos anexados serão desanexados. |
| Depurar>Encerrar Tudo | Todos os processos são encerrados. |
| Depurar>Desanexar Tudo | O depurador desvincula de todos os processos. |
| Janela de Processos>Desanexar Processo | O depurador desanexa do processo selecionado. Outros processos mantêm o estado existente (suspenso ou em execução). |
| Processos janela >Encerrar Processo | O processo selecionado foi encerrado. Outros processos mantêm o estado existente (suspenso ou em execução). |
| > Desanexar quando a depuração for interrompida | Se selecionado, Depurar>Parar Depuração desvincula-se do processo selecionado. Se não estiver selecionado, Depurar>Parar Depuração encerrará o processo selecionado. |