Introdução aos pontos de interrupção no depurador do Visual Studio
Os pontos de interrupção são uma das técnicas de depuração mais importantes na caixa de ferramentas do desenvolvedor. Você define pontos de interrupção sempre que deseja pausar a execução do depurador. Por exemplo, você pode querer ver o estado das variáveis de código ou examinar a pilha de chamadas em um determinado ponto de interrupção.
Definir pontos de interrupção no código-fonte
Você pode definir um ponto de interrupção em qualquer linha de código executável. Por exemplo, dê uma olhada neste código C# simples que cria um loop simples.
int testInt = 3;
for (int i = 0; i < 10; i++)
{
testInt += i;
}
Você pode definir um ponto de interrupção na linha de código com a atribuição de variável (int testInt = 3
), o loop de for
ou qualquer código dentro do loop de for
. Não é possível definir um ponto de interrupção em assinaturas de método, declarações para um namespace ou classe ou declarações de variáveis se não houver nenhuma atribuição e nenhum getter/setter.
Para definir um ponto de interrupção no código-fonte:
- Clique na margem esquerda ao lado de uma linha de código. Você também pode selecionar a linha e pressionar F9, selecione Depurar>Alternar ponto de interrupçãoou clique com o botão direito do mouse e selecione Ponto de interrupção>Inserir ponto de interrupção. O ponto de interrupção aparece como um ponto vermelho na margem esquerda.
Para a maioria das linguagens (incluindo C#), o Visual Studio destaca automaticamente o ponto de interrupção e as linhas de execução atuais. Para algumas linguagens, como C++, que não é realçada por padrão, pode-se ativar o realce dos pontos de interrupção e das linhas atuais selecionando Ferramentas (ou Depurar) >Opções>Depuração>Realçar linha de origem inteira para pontos de interrupção e instrução atual (somente C++).
Para depurar, pressione F5 ou selecione Depurar>Iniciar a Depuração.
Ao fazer debug, a execução pausa no ponto de interrupção, antes que o código nessa linha seja executado. O símbolo do ponto de interrupção mostra uma seta amarela.
No ponto de interrupção no exemplo a seguir, o valor de testInt
ainda é 3. Portanto, o valor não foi alterado desde que a variável foi inicializada (definida como um valor de 3) porque a instrução em amarelo ainda não foi executada.
No ponto de interrupção no exemplo a seguir, o valor de testInt
ainda é 1. Portanto, o valor não foi alterado desde que a variável foi inicializada (definida como um valor de 1) porque a instrução em amarelo ainda não foi executada.
Quando o depurador para no ponto de interrupção, pode-se examinar o estado atual da aplicação, incluindo valores de variáveis e a pilha de chamadas .
Por exemplo, na ilustração a seguir, pode ver o valor de testInt
numa dica de dados e na janela Locals.
Aqui estão algumas instruções gerais para trabalhar com pontos de interrupção.
O ponto de interrupção é um interruptor. Você pode clicar nele, pressionar F9ou usar Debug>Alternar ponto de interrupção para excluí-lo ou reinseri-lo.
Para desativar um ponto de interrupção sem excluí-lo, passe o mouse sobre ele ou clique com o botão direito do mouse e selecione Desativar ponto de interrupção. Os breakpoints desativados aparecem como pontos vazios na margem esquerda ou na janela Breakpoints. Para reativar um ponto de interrupção, passe o mouse sobre ele ou clique com o botão direito do mouse e selecione Habilitar ponto de interrupção.
Defina condições e ações, adicione e edite rótulos ou exporte um ponto de interrupção clicando com o botão direito do mouse nele e selecionando o comando apropriado, ou passando o mouse sobre ele e selecionando o ícone Configurações
.
Tipos de pontos de interrupção
O Visual Studio oferece suporte a diferentes tipos de pontos de interrupção para oferecer suporte a diferentes cenários de depuração, como pontos de interrupção condicionais que só são ativados com base em critérios especificados. Para obter mais informações, consulte Utilize o tipo certo de ponto de interrupção.
Gerenciar pontos de interrupção na janela Pontos de interrupção
Você pode usar a janela Breakpoints para verificar e gerir todos os pontos de interrupção na sua solução. Esse local centralizado é especialmente útil em uma solução grande ou em cenários complexos de depuração em que os pontos de interrupção são críticos.
Na janela de pontos de interrupção , pode pesquisar, ordenar, filtrar, ativar/desativar ou eliminar pontos de interrupção. Você também pode definir condições e ações ou adicionar uma nova função ou ponto de interrupção de dados.
Para abrir a janela Pontos de interrupção, selecione Depurar>Windows>Pontos de interrupção, ou pressione Ctrl+Alt+B.
Para mostrar as colunas na janela Pontos de interrupção, selecione Mostrar colunas. Selecione um cabeçalho de coluna para classificar a lista de pontos de interrupção por essa coluna.
Rótulos de ponto de interrupção
Você pode usar rótulos para classificar e filtrar a lista de pontos de interrupção na janela Pontos de interrupção.
- Para adicionar um rótulo a um ponto de interrupção, clique com o botão direito no ponto de interrupção no código-fonte ou na janela Pontos de interrupção
e, em seguida, selecione Editar rótulos . Adicione um novo rótulo ou escolha um existente e, em seguida, selecione OK. - Classifique a lista de pontos de interrupção na janela
Pontos de interrupção selecionando a Rótulos, Condições ou outros cabeçalhos de coluna. Você pode selecionar as colunas a serem exibidas selecionando Mostrar Colunas na barra de ferramentas.
Grupos de pontos de interrupção
Para cenários de depuração complexos, convém criar grupos de pontos de interrupção para organizar seus pontos de interrupção. Isso permite que você habilite e desabilite rapidamente agrupamentos lógicos de pontos de interrupção, com base no cenário atual que você está tentando depurar.
Você pode criar pontos de interrupção na janela
Para definir um grupo de pontos de interrupção padrão, clique com o botão direito do mouse em um grupo e selecione Definir como grupo de pontos de interrupção padrão. Quando você define um grupo de pontos de interrupção padrão, os pontos de interrupção recém-criados são adicionados automaticamente ao grupo.
Pontos de interrupção de exportação e importação
Para guardar ou partilhar o estado e a localização dos seus pontos de interrupção, pode exportá-los ou importá-los.
A partir do Visual Studio 2022 versão 17.12 Preview 3, os grupos de pontos de interrupção também são incluídos com os pontos de interrupção exportados e importados.
- Para exportar um único ponto de interrupção para um arquivo XML, clique com o botão direito do mouse no ponto de interrupção no código-fonte ou janela Pontos de interrupção e selecione Exportar ou Exportar selecionado. Selecione um local de exportação e, em seguida, selecione Salvar. O local padrão é a pasta da solução.
- Para exportar vários pontos de interrupção, na janela pontos de interrupção, selecione as caixas ao lado dos pontos de interrupção ou insira critérios de pesquisa no campo pesquisa. Selecione o ícone Exportar todos os pontos de interrupção correspondentes aos critérios de pesquisa atuais e salve o arquivo.
- Para exportar todos os pontos de interrupção, desmarque todas as caixas e deixe o campo Pesquisa em branco. Selecione o ícone Exportar todos os pontos de interrupção correspondentes aos critérios de pesquisa atuais e salve o arquivo.
- Para importar pontos de interrupção, na janela pontos de interrupção, selecione o ícone Importar pontos de interrupção de um ficheiro, navegue até ao local do ficheiro XML e selecione Abrir.
Definir pontos de interrupção nas janelas do depurador
Você também pode definir pontos de interrupção nas janelas de depuração Pilha de Chamadas e Desmontagem.
Definir um ponto de interrupção na janela de pilha de chamadas
Para interromper a instrução ou a linha para a qual uma função de chamada retorna, você pode definir um ponto de interrupção na janela da pilha de chamadas
Para definir um ponto de interrupção na janela Pilha de chamadas:
Para abrir a janela da pilha de chamadas, deve estar em pausa durante a depuração. Selecione Depurar>Windows>Pilha de Chamadasou pressione Ctrl+Alt+C.
Na janela da pilha de chamadas, clique com o botão direito do mouse na função de chamada e selecione Ponto de interrupção>Inserir ponto de interrupçãoou pressione F9.
Um símbolo de ponto de interrupção aparece ao lado do nome da chamada de função na margem esquerda da pilha de chamadas.
O ponto de interrupção do call stack aparece na janela pontos de interrupção como um endereço, com um local de memória que corresponde à próxima instrução executável na função.
O depurador pára na instrução.
Para obter mais informações sobre a pilha de chamadas, consulte Como usar a janela Pilha de chamadas.
Para rastrear visualmente os pontos de interrupção durante a execução do código, consulte Mapear métodos na pilha de chamadas durante a depuração.
Definir um ponto de interrupção na janela Desmontagem
Para abrir a janela de Desmontagem , deve estar pausado durante a depuração. Selecione Depurar>Windows>Desmontagem, ou pressione Ctrl+Alt+D.
Na janela Desmontagem, clique na margem esquerda da instrução onde deseja definir um ponto de interrupção. Você também pode selecioná-lo e pressionar F9ou clicar com o botão direito do mouse e selecionar Ponto de interrupção>Inserir ponto de interrupção.