Compartilhar via


Introdução aos pontos de interrupção no depurador do Visual Studio

Pontos de interrupção são uma das técnicas de depuração mais importantes no kit de ferramentas do desenvolvedor. Você define pontos de interrupção onde quiser pausar a execução do depurador. Por exemplo, talvez você queira 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 nesse 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 for ou qualquer código dentro do loop 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ável 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 extrema esquerda ao lado de uma linha de código. Você também pode selecionar a linha e pressionar F9, selecionar Depurar>Alternar Ponto de Interrupção ou clicar com o botão direito do mouse e selecionar 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 dos idiomas (incluindo C#), o Visual Studio realça automaticamente o ponto de interrupção e as linhas de execução atuais. Para algumas linguagens, como C++, que não é realçado por padrão, você pode ativar o realce do ponto de interrupção e das linhas atuais selecionando Ferramentas (ou Depurar) >Opções>Depuração>Realçar toda a linha de origem para pontos de interrupção e instrução atual (somente C++).

Definir um ponto de interrupção

Definir um ponto de interrupção

Para depurar, pressione F5 ou selecione Depurar>Iniciar Depuração.

Quando você depura, a execução é pausada no ponto de interrupção, antes que o código nessa linha seja executado. O símbolo de 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.

A execução do ponto de interrupção parou

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.

A execução do ponto de interrupção parou

Quando o depurador para no ponto de interrupção, você pode examinar o estado atual do aplicativo, incluindo valores variáveis e a pilha de chamadas.

Por exemplo, na ilustração a seguir, você pode ver o valor de testInt em uma dica de dados e na janela Locais.

Captura de tela da exibição do estado do aplicativo

Aqui estão algumas instruções gerais para trabalhar com pontos de interrupção.

  • O ponto de interrupção é um controle de alternância. Você pode clicar nele, pressionar F9 ou usar Depurar>Alternar Ponto de Interrupção para excluí-lo ou reinseri-lo.

  • Para desabilitar um ponto de interrupção sem excluí-lo, focalize ou clique com o botão direito do mouse nele e selecione Desabilitar o ponto de interrupção. Pontos de interrupção desabilitados aparecem como pontos vazios na margem esquerda ou na janela Pontos de Interrupção. Para reabilitar um ponto de interrupção, passe o mouse sobre ele ou clique com o botão direito 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 dá suporte a diferentes tipos de pontos de interrupção para dar suporte a diferentes cenários de depuração, como pontos de interrupção condicionais que são ativados apenas com base nos critérios especificados. Para obter mais informações, confira Usar o tipo certo de ponto de interrupção.

Gerenciar pontos de interrupção na janela Pontos de Interrupção

Você pode usar a janela Pontos de Interrupção para ver e gerenciar todos os pontos de interrupção na solução. Esse local centralizado é especialmente útil em uma solução grande ou em cenários complexos de depuração em que pontos de interrupção são críticos.

Na janela Pontos de Interrupção, você pode pesquisar, classificar, filtrar, habilitar/desabilitar ou excluir 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 Breakpoints, selecione Depurar>Windows>Breakpoints, ou pressione Ctrl+Alt+B.

janela Janela Pontos de Interrupção

janela Janela Pontos de Interrupção

Para selecionar as colunas a serem exibidas 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.

  1. Para adicionar um rótulo a um ponto de interrupção, clique com o botão direito do mouse no ponto de interrupção no código-fonte ou na janela Breakpoints, e então selecione Editar rótulos. Adicione um novo rótulo ou escolha um existente e selecione OK.
  2. Classifique a lista de pontos de interrupção na janela Pontos de Interrupção selecionando 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 os 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 Pontos de Interrupção selecionando Novo > Grupo de Pontos de Interrupção e fornecendo um nome para o grupo. Para adicionar um ponto de interrupção a um grupo, clique com o botão direito do mouse no ponto de interrupção e escolha Adicionar ao Grupo de Pontos de Interrupção><nome do grupo>. Ou arraste e solte os pontos de interrupção no grupo desejado.

Captura de tela de grupos de pontos de interrupção.

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.

Importar e exportar pontos de interrupção

Para salvar ou compartilhar o estado e o local dos pontos de interrupção, você pode exportá-los ou importá-los.

Começando no Visual Studio 2022 versão 17.12 Versão Prévia 3, os grupos de pontos de interrupção também são incluídos com os pontos de interrupção importados e exportados.

  • 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 na janela Pontos de Interrupção e selecione Exportar ou Exportar selecionado. Selecione um local de exportação e 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 Pesquisar 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 arquivo, navegue até o local do arquivo XML e selecione Abrir.

Definir pontos de interrupção das janelas do depurador

Você também pode definir pontos de interrupção nas janelas Pilha de Chamadas e Desmontagem do depurador.

Definir um ponto de interrupção na janela Pilha de Chamadas

Para interromper a execução na instrução ou na linha que uma função de chamada retorna, defina um ponto de interrupção na janela Pilha de Chamadas.

Para definir um ponto de interrupção na janela Pilha de Chamadas:

  1. Para abrir a janela Pilha de Chamadas, você precisa estar em pausa durante a depuração. Selecione Depurar>Janelas>Pilha de Chamadas ou pressione Ctrl+Alt+C.

  2. Na janela 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ção ou 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 da pilha de chamadas 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 é interrompido na instrução.

Para obter mais informações sobre a pilha de chamadas, consulte Como usar a janela da pilha de chamadas.

Para rastrear visualmente os pontos de interrupção durante a execução do código, confira Mapear métodos na pilha de chamadas durante a depuração.

Definir um ponto de interrupção na janela Desmontagem

  1. Para abrir a janela Desmontagem, você precisa estar em pausa durante a depuração. Selecione Depurar>Janelas>Desmontagem ou pressione Ctrl+Alt+D.

  2. Na janela Desmontagem, clique na margem esquerda da instrução na qual você deseja interromper. Você também pode selecioná-lo e pressionar F9, ou clicar com o botão direito do mouse e selecionar Ponto de Interrupção>Inserir Ponto de Interrupção.