Rastreamento de volta
O rastreio posterior está localizando um terminal em um evento associado ao recurso (veja abaixo). Uma vez lá, um ponto de interrupção é colocado no depurador. O recurso é acionado e quando o depurador para. A pilha de chamadas é revisada para rastrear novamente o caminho da chamada. Ao subir a pilha de chamadas, você pode fazer anotações sobre estados variáveis ou colocar novos pontos de interrupção para inspecionar o evento novamente.
O recurso é acionado novamente e o depurador para nos novos pontos de interrupção. Você pode repetir o rastreamento de volta ou executar o rastreamento de avanço até que a meta seja encontrada.
Prós e contras
- É sempre mais fácil subir na pilha de chamadas e ver como você chegou a algum lugar.
- Pode haver milhões de condições que precisam ser verdadeiras antes de atingir um ponto final. Se você já conhece o endpoint, economizou muito trabalho.
- Se o recurso estiver quebrado. Você pode nunca chegar ao ponto final e perder tempo tentando descobrir o porquê.
Descoberta do ponto de extremidade
Para depurar um recurso, você precisa saber onde, no código-fonte, o objetivo final é alcançado. Somente a partir deste ponto você pode voltar atrás para ver como o código chegou lá. Um exemplo; Para entender como desfazer é realizado. Você sabe onde no código as coisas são desfeitas, mas não sabe como as coisas chegam lá . Seria um candidato a retroceder para descobrir como o recurso funciona.
Rastreamento para a frente
O rastreio para frente está localizando um ponto inicial para um evento associado a um recurso (veja abaixo). Uma vez lá, as mensagens de log são inseridas no código-fonte ou os pontos de interrupção são definidos. Esse processo é repetido à medida que você avança mais longe do ponto de partida até descobrir a meta do recurso.
Prós e contras
- É o ponto de partida mais fácil para encontrar um recurso.
- A complexidade do código reduz a eficácia do rastreamento futuro. Quanto mais condições houver no código, maior a chance de você seguir na direção errada.
- O rastreamento avançado geralmente resulta na definição de pontos de interrupção que serão acionados por eventos não relacionados. Interrompendo o processo de depuração e interferindo na sua pesquisa.
Descoberta do ponto inicial
Você pode usar palavras-chave, identificadores de interface do usuário (IDs de botões, nomes de janelas) ou fácil de encontrar ouvintes de eventos associados ao recurso. Por exemplo, você pode começar com o botão usado para acionar um recurso de desfazer .
Processo de eliminação
Você pode pensar nisso como o ponto médio em comparação com as posições de ponto inicial e final . Você executa um processo de eliminação quando já sabe que um pedaço de código é usado em um recurso, mas não é o início nem o fim do recurso.
A direção que você toma do ponto médio depende do número de entradas e saídas. Se o pedaço de código for usado em muitos lugares, o rastreamento a partir dessa posição poderá consumir muito tempo, pois todos precisam ser inspecionados. Você então emprega um processo de eliminação para reduzir esta lista. Como alternativa, você pode executar um rastreamento a partir deste ponto, mas novamente se o pedaço de código se ramificar para muitos lugares, isso também pode ser um problema.
Você precisa reduzir as direções da posição, não seguindo caminhos que claramente não seriam executados para o recurso. Passando esse código e colocando apenas pontos de interrupção onde provavelmente está relacionado ao recurso.
A depuração do ponto médio geralmente requer mais recursos IDE avançados. A capacidade de ver hierarquia de código e dependências. Sem essas ferramentas, é difícil de fazer.
Prós e contras
- Os pontos intermediários costumam ser o primeiro pedaço de código que aparece na sua cabeça quando você pensa no recurso. Você diz para si mesmo "Ah, isso tem que usar XXXX para funcionar".
- Os pontos do meio podem revelar os pontos de partida da maneira mais fácil.
- Os pontos intermediários podem ser uma maneira fácil de selecionar a trilha para um recurso quando perdidos por alterações na sincronização ou na segmentação.
- Os pontos do meio podem levá-lo ao código com o qual você não está familiarizado. Custando-lhe tempo para aprender o que está acontecendo.