Partilhar via


Durante a chamada de uma função centenas de vezes, como sei qual chamada falhou?

Descrição do problema

Meu programa falha em uma chamada para uma determinada função, CnvtV. O programa provavelmente chama essa função algumas centenas de vezes antes de falhar. Se eu definir um ponto de interrupção de local em CnvtV, o programa parará em cada chamada a essa função, e eu não quero isso. Eu não sei quais condições causam a falha na chamada, portanto, não consigo definir um ponto de interrupção condicional. O que posso fazer?

Solução

Você pode definir um ponto de interrupção na função com o campo Contagem de Ocorrências com um valor mais alto que nunca será atingido. Nesse caso, como você acredita que a função CnvtV é chamada algumas centenas de vezes, pode definir Contagem de Ocorrências como 1000 ou mais. Execute o programa e aguarde a chamada falhar. Quando falhar, abra a janela Pontos de Interrupção e verifique a lista de pontos de interrupção. O ponto de interrupção definido em CnvtV aparece, seguido pela contagem de ocorrências e o número de iterações restantes:

CnvtV(int) (no condition) when hit count is equal to 1000 (currently 101)

Agora você sabe que a função falha na 101a chamada. Se você redefinir o ponto de interrupção com uma contagem de ocorrências de 101 e executar o programa novamente, o programa de chamada parará na chamada para CnvtV que causou a falha.

Consulte também

Conceitos

Perguntas frequentes de depuração do código nativo

Outros recursos

Setting Breakpoints

Depurando código nativo