Compartilhar via


Métodos de controle de pontos de interrupção

Você pode especificar o local de um ponto de interrupção por endereço virtual, deslocamentos de módulo e rotina ou arquivo de origem e número de linha (quando estiver no modo de origem). Se você colocar um ponto de interrupção em uma rotina sem um deslocamento, o ponto de interrupção será ativado quando essa rotina for inserida.

Há vários tipos adicionais de pontos de interrupção:

  • Um ponto de interrupção pode ser associado a um determinado thread.

  • Um ponto de interrupção pode habilitar um número fixo de passagens por um endereço antes de ser disparado.

  • Um ponto de interrupção pode emitir automaticamente determinados comandos quando é disparado.

  • Um ponto de interrupção pode ser definido em memória não executável e watch para que esse local seja lido ou gravado.

Se você estiver depurando mais de um processo no modo de usuário, a coleção de pontos de interrupção dependerá do processo atual. Para exibir ou alterar os pontos de interrupção de um processo, você deve selecionar o processo como o processo atual. Para obter mais informações sobre o processo atual, consulte Controlando processos e threads.

Comandos do depurador para controlar e exibir pontos de interrupção

Para controlar ou exibir pontos de interrupção, você pode usar os seguintes métodos:

No WinDbg, há vários elementos de interface do usuário que facilitam o controle e a exibição de pontos de interrupção. Consulte Configurando pontos de interrupção no WinDbg (clássico).

Cada ponto de interrupção tem um número decimal chamado ID do ponto de interrupção associado a ele. Esse número identifica o ponto de interrupção em vários comandos.

Comandos de ponto de interrupção

Você pode incluir um comando em um ponto de interrupção que é executado automaticamente quando o ponto de interrupção é atingido. Por exemplo, o comando a seguir quebra em MyFunction+0x47, grava um arquivo de despejo e, em seguida, retoma a execução.

0:000> bu MyFunction+0x47 ".dump c:\mydump.dmp; g" 

Nota Se você estiver controlando o depurador do modo de usuário do depurador de kernel, não use g (Go) na cadeia de caracteres de comando do ponto de interrupção. A interface serial pode não conseguir acompanhar esse comando e você não poderá voltar ao CDB. Para obter mais informações sobre essa situação, consulte Controlando o User-Mode Depurador do Depurador do Kernel.

Número de pontos de interrupção

No modo kernel, você pode usar no máximo 32 pontos de interrupção de software. No modo de usuário, você pode usar qualquer número de pontos de interrupção de software.

O número de pontos de interrupção do processador com suporte depende da arquitetura do processador de destino.

Pontos de interrupção condicionais

Você pode definir um ponto de interrupção que é disparado somente em determinadas condições. Para obter mais informações sobre esses tipos de pontos de interrupção, consulte Configurando um ponto de interrupção condicional.

Pontos de interrupção ambíguos

Na versão 10.0.25310.1001 e posterior do mecanismo de depurador, agora há suporte para a resolução ambígua do ponto de interrupção. Pontos de interrupção ambíguos permitem que o depurador defina pontos de interrupção em determinados cenários em que uma expressão de ponto de interrupção é resolvida para vários locais. Para obter mais informações, consulte Resolução de ponto de interrupção ambíguo.

Confira também

Usando pontos de interrupção

Sintaxe de ponto de interrupção

bp, bu, bm (Definir ponto de interrupção)

Pontos de interrupção não resolvidos (bu Breakpoints)