Noções básicas de depuração: Pontos de interrupção
Este tópico se aplica a:
Edição |
Visual Basic |
C# |
C++ |
Desenvolvedores Web |
---|---|---|---|---|
Express |
||||
Padrão |
||||
PRO e equipe |
Legenda de tabela:
Aplica-se |
|
Não é aplicada |
|
Comando ou comandos oculta por padrão. |
Um ponto de interrupção é um sinal que informa o depurador para temporariamente suspender a execução do seu programa em um determinado ponto.Quando a execução é suspensa em um ponto de interrupção, o programa é dito como estando no modo de interrupção.Inserindo o modo de interrupção não termina ou finaliza a execução de seu programa.A execução pode ser reiniciada a qualquer momento.
Você pode pensar em modo de interrupção como sendo como um tempo limite.Todos os elementos permanecem, funções, variáveis e objetos permanecem na memória, por exemplo, mas seus movimentos e atividades são suspensos.Durante o modo de interrupção, você pode examinar suas posições e estados para procurar por violações ou erros.Você pode fazer ajustes para o programa enquanto estiver no modo de interrupção.Você pode alterar o valor de uma variável, por exemplo.Mova o ponto de execução, que altera a instrução que será executada depois que voltar a execução.Mesmo em C++, C# e Visual Basic, você pode fazer alterações para o próprio código enquanto em modo de interrupção usando um recurso poderoso chamado Edição e Continuação.
Pontos de interrupção oferecem uma ferramenta poderosa que permite a você suspender a execução onde e quando você precisar.Em vez de examinar seu código linha por linha ou instrução por instrução, você pode permitir a seu programa executar até que ele atinja um ponto de interrupção, e iniciar a depuração.Isso acelera o processo de depuração enormemente.Sem essa capacidade, seria praticamente impossível depurar um programa grande.
Muitas linguagens de programação tem instruções ou construções que suspendem a execução e colocam o programa em modo de interrupção.Por exemplo, o Visual Basic, tem o Stop demonstrativo. Pontos de interrupção diferem dessas instruções já que pontos de interrupção é código fonte não real que tem de ser adicionado ao seu programa.Você não digita uma instrução ponto de interrupção em uma janela de origem.Você solicita um ponto de interrupção através da interface do depurador, e o depurador define-a para você.Para inserir um ponto de interrupção na linha, clique na Margem cinza ao lado da linha que deseja definir como o ponto de interrupção.Pontos de interrupção mais complexos podem ser tratados por uma janela Breakpoints cheia de recursos.
Pontos de interrupção têm muitas vantagens sobre construções de depuração, como a instrução Stop do Visual Basic.Pontos de interrupção podem ser excluídos ou alterados sem ter que alterar o código fonte do seu programa.Como pontos de interrupção não são instruções, eles nunca produzem qualquer código extra quando você cria um versão de lançamento do seu programa.Se você usar Stop instruções em seu programa, você precisará remover manualmente o Stop instruções antes de criar a versão de lançamento, ou usar condicionais, conforme mostrado aqui:
#If DEBUG Then
Stop
#End If
Se você desejar desabilitar um Stop demonstrativo temporariamente, você precisa localizar a demonstrativo no seu código-fonte e comentá-la:
' Stop
Isto não é problema se você tiver apenas um Stop demonstrativo. Se você estiver depurando um programa grande com muitos Stop instruções de, no entanto, procurando todas as instruções e comentando cada fora de um pode ser demorada. Com pontos de interrupção, você pode selecionar e desativar ou ativar qualquer ou todos os pontos a interrupção da janela Breakpoints.
Finalmente, pontos de interrupção tem uma grande vantagem sobre Stop instruções em sua flexibilidade. A Stop demonstrativo faz com que a execução quebrar na linha de fonte onde a demonstrativo está localizada. Você pode definir um ponto de interrupção em uma linha de origem que faz a mesma coisa.Como alternativa, você também pode conjunto um ponto de interrupção em uma função ou um endereço de memória, que não pode ser concluído com Stop instruções. Além desses pontos de interrupção locais, o depurador Visual Studio oferece pontos de interrupção de dados somente para nativo.Um ponto de interrupção de dados é definido em uma variável global ou local, em vez de um local no código.Definir um ponto de interrupção de dados faz com que a execução Interrompa quando o valor dessa variável for alterado.
Para fornecer ainda maior flexibilidade, o depurador do Visual Studio possibilita a você definir propriedades que modificam o comportamento de um ponto de interrupção:
Contagem de Ocorrências Permite que você determine quantas vezes o ponto de interrupção é atingido antes que o depurador interrompa a execução.Por padrão, o depurador quebras a execução sempre que o ponto de interrupção é pressionado.Você pode definir uma contagem de ocorrências para informar o depurador para quebrar a cada duas vezes que o ponto de interrupção é atingido, ou cada 10 vezes, ou cada 512 vezes, ou qualquer número que você escolher.Contagen de ocorrências pode ser útil porque alguns erros não aparecem na primeira vez o programa executa um loop, chama uma função, ou acessa uma variável.Às vezes, o erro pode não aparecer até a iteração de número 100 ou 1000.Para depurar um problema tal, você pode definir um ponto de interrupção com uma contagem de ocorrências de 100 ou 1000.
Condição é uma expressão que determina se o ponto de interrupção é atingido ou ignorado.Quando o depurador atingir o ponto de interrupção, ele irá avaliar a condição.O ponto de interrupção Será atingido somente se a condição for satisfeita.Você pode usar uma condição com um ponto de interrupção Local para parar em um local especificado somente quando determinada condição for verdadeira.Suponha que você está depurando um programa bancário, por exemplo, onde nunca será permitido que o saldo da conta para ir abaixo de zero.Você pode conjunto pontos de interrupção em determinados locais no código e anexar condição como balance < 0 cada uma delas. Quando você executa o programa, a execução interromperá nesses locais somente quando o saldo for menor que zero.Você pode examinar variáveis e estado de programa no primeiro local de ponto de interrupção, e continuar a execução para o segundo local de ponto de interrupção, e assim por diante.
AÇÃO especifica algo que deve ocorrer quando o ponto de interrupção é atingido.Por padrão, o depurador quebra a execução, mas você pode optar por imprimir uma mensagem ou executar uma macro do Visual Studio em vez disso.Se você optar por imprimir uma mensagem em vez de interromper, o ponto de interrupção tem um efeito muito semelhante a um Trace demonstrativo. Este método de usar pontos de interrupção é chamado tracepoints.
Filtro fornece uma maneira de especificar um processo ou segmento para o ponto de interrupção.
Observação: Uma técnica particularmente útil é configurar pontos de interrupção na Pilha de chamadas janela.Utilizando a janela Call Stack, você pode definir um ponto de interrupção em uma determinada chamada de função.Isso pode ser especialmente útil quando você está depurando uma função recursiva, uma função que chame ela própria.Se você quebrar a execução após um certo número de chamadas, você pode usar a janela Call Stack para definir um ponto de interrupção em uma chamada anterior que ainda não foi retornada.O depurador encontrará que aquele ponto de interrupção e quebrar a execução de um jeito fora das chamadas atuais.
Consulte também
Tarefas
Como: Usar a janela pontos de interrupção
Conceitos
Pontos de interrupção e Tracepoints
Pontos de interrupção e Tracepoints