Analisar as opções de configuração do ponto de interrupção
- 6 minutos
Os depuradores são usados para ajudá-lo a analisar seu código e podem ser usados para controlar a execução do runtime do programa. Quando você inicia o depurador do Visual Studio Code, ele começa imediatamente a executar seu código. Como seu código é executado em microssegundos, a depuração de código efetiva depende da sua capacidade de pausar o programa em qualquer instrução dentro do seu código. Pontos de interrupção são usados para especificar onde a execução de código é pausada.
Definir Pontos de Interrupção
O Visual Studio Code fornece várias maneiras de configurar pontos de interrupção em seu código. Por exemplo:
- Editor de Código: você pode definir um ponto de interrupção no Editor do Visual Studio Code clicando na coluna à esquerda de um número de linha.
- Menu Executar: Você pode ativar/desativar um ponto de interrupção no menu Executar. A linha de código atual no Editor especifica o ponto em que a ação Ativar/Desativar Ponto de Interrupção é aplicada.
Quando um ponto de interrupção é definido, um círculo vermelho é exibido à esquerda do número de linha no Editor. Quando você executa seu código no depurador, a execução é pausada no ponto de interrupção.
Remover, desabilitar e habilitar pontos de interrupção
Depois de definir pontos de interrupção em seu aplicativo e usá-los para isolar um problema, talvez você queira remover ou desabilitar os pontos de interrupção.
Para remover um ponto de interrupção, repita a ação usada para definir um ponto de interrupção. Por exemplo, clique no círculo vermelho à esquerda do número de linha ou use a opção para alternar ponto de interrupção no menu Executar.
E se você quiser manter um ponto de interrupção definido, mas não quiser que ele seja ativado durante a próxima sessão de depuração? O Visual Studio Code permite que você "desabilite" um ponto de interrupção em vez de removê-lo completamente. Para desabilitar um ponto de interrupção ativo, clique com o botão direito do mouse no ponto vermelho à esquerda do número de linha e selecione Desabilitar Ponto de Interrupção no menu de contexto.
Quando você desabilitar um ponto de interrupção, o ponto vermelho à esquerda do número de linha é alterado para um ponto cinza.
Observação
O menu de contexto exibido quando você clica com o botão direito do mouse em um ponto de interrupção também inclui as opções para Remover Ponto de Interrupção (Excluir) e Editar Ponto de Interrupção. A opção Editar Ponto de Interrupção é examinada na seção Pontos de interrupção condicionais e Logpoints mais adiante nesta unidade.
Além de gerenciar pontos de interrupção individuais no Editor, o menu Executar fornece opções para executar operações em massa que atuam em todos os pontos de interrupção:
- Habilitar Todos os Pontos de Interrupção: use esta opção para habilitar todos os pontos de interrupção desabilitados.
- Desabilitar Todos os Pontos de Interrupção: Use essa opção para desabilitar todos os pontos de interrupção.
- Remover Todos os Pontos de Interrupção: Use essa opção para remover todos os pontos de interrupção (os pontos de interrupção habilitados e desabilitados serão removidos).
Pontos de interrupção condicionais
Um ponto de interrupção condicional é um tipo especial de ponto de interrupção que só é disparado quando uma condição especificada é atendida. Por exemplo, você pode criar um ponto de interrupção condicional que pausa a execução quando uma variável nomeada numItems é maior que 5.
Você já viu que clicar com o botão direito do mouse em um ponto de interrupção abre um menu de contexto que inclui a opção Editar Ponto de Interrupção . Selecionar Editar Ponto de Interrupção permite alterar um ponto de interrupção padrão em um ponto de interrupção condicional.
Além de editar um ponto de interrupção existente, você também pode definir um ponto de interrupção condicional diretamente. Se você clicar com o botão direito do mouse (em vez de clicar com o botão esquerdo) para definir um novo ponto de interrupção, poderá optar por criar um ponto de interrupção condicional.
Ao criar um ponto de interrupção condicional, você precisa especificar uma expressão que represente a condição.
Sempre que o depurador encontra o ponto de interrupção condicional, ele avalia a expressão. Se a expressão for avaliada como true, o ponto de interrupção será disparado e a execução será pausada. Se a expressão for avaliada como false, a execução continuará como se não houvesse nenhum ponto de interrupção.
Por exemplo, suponha que você precise depurar algum código que esteja dentro do bloco de código de um for loop. Você notou que o problema que você está depurando só ocorre após o loop ter concluído várias iterações. Você decide que deseja que o ponto de interrupção seja disparado depois que a variável de controle de iteração do loop, i, for maior que três. Crie um ponto de interrupção condicional e especifique a expressão i > 3.
Quando você executa o código no depurador, ele ignora o ponto de interrupção até a iteração quando i > 3 é avaliado como true. Quando i = 4, a execução pausa no ponto de interrupção condicional.
Suporte para pontos de interrupção Hit Count e Logpoints
O depurador C# para Visual Studio Code também dá suporte a pontos de interrupção Hit Count e Logpoints.
Um ponto de interrupção "contagem de ocorrências" pode ser usado para especificar o número de vezes que um ponto de interrupção deve ser alcançado antes de "interromper" a execução. Você pode especificar um valor de contagem de ocorrências ao criar um novo ponto de interrupção (com a ação Adicionar Ponto de Interrupção Condicional) ou ao modificar um existente (com a ação Editar Condição). Em ambos os casos, uma caixa de texto embutida com um menu suspenso é aberta, na qual você pode inserir o valor da contagem de ocorrências.
Um “Logpoint” é uma variante de um ponto de interrupção que não "quebra" no depurador, mas registra uma mensagem no console. Os logpoints são especialmente úteis para injetar logs durante a depuração de ambientes de produção que não podem ser pausados ou interrompidos. Um Logpoint é representado por um ícone em forma de "diamante" em vez de um círculo preenchido. As mensagens de log são texto sem formatação, mas podem incluir expressões a serem avaliadas dentro de chaves ("{}").
Os logpoints podem incluir uma "expressão" condicional e/ou "contagem de ocorrências" para controlar ainda mais quando as mensagens de log são geradas. Por exemplo, você pode combinar uma mensagem do Logpoint de i = {i} com uma condição Hit Count de >4 para gerar mensagens de log como segue:
Recapitulação
Estes são alguns pontos importantes desta unidade que você deve se lembrar:
- O Visual Studio Code habilita a configuração de pontos de interrupção no editor de código ou no menu Executar . As linhas de código do ponto de interrupção são marcadas com um ponto vermelho à esquerda do número de linha.
- Os pontos de interrupção podem ser removidos ou desabilitados usando as mesmas opções usadas para defini-los. As operações em massa que afetam todos os pontos de interrupção estão disponíveis no menu Executar .
- Pontos de interrupção condicionais podem ser usados para pausar a execução quando uma condição especificada é atendida ou quando uma "contagem de ocorrências" é atingida.
- Os logpoints podem ser usados para registrar informações no terminal sem pausar a execução ou inserir código.