Xcode Debugging com Breakpoints (para Iniciantes)
Como um aprendiz ao longo da vida, entende-se que cometer erros faz parte do processo de aprendizagem. Na programação, estas coisas irritantes são conhecidas como 🐞’s (bugs). Ser um depurador completo e eficiente fará de mim um programador melhor e eventualmente me permitirá escrever código excelente a longo prazo.
Pensei que seria uma boa idéia fazer alguma pesquisa sobre depuração de nível iniciante dentro do Xcode e como me familiarizar com a ferramenta de depuração Breakpoint e algumas de suas capacidades.
Então, o que é um breakpoint?
Um breakpoint é uma ferramenta de depuração que lhe permite pausar a execução do seu programa até um determinado momento.
Por que devo usar um breakpoint?
Criar pontos de “pausa” no seu código pode ajudá-lo a investigar o seu código para ver onde ocorrem bugs.
Como posso criar pontos de interrupção?
Fácil. Decida onde quer parar a execução do seu código e clique na sarjeta da esquerda para criar um breakpoint azul.
Vejamos a fabulosidade a que chamamos de “Área de Depuração”.”
O que se passa na imagem acima?
Criei uma função findSumOfEvens() que soma dois números inteiros se AMBOS forem iguais. Eu defini um ponto de parada na linha 25, depois de chamar a função findSumOfEvens(n1: 2, n2: 4) na linha 24. A função foi pausada na linha 25, o que significa que a segunda chamada do findSumOfEvens(n1: 1, n2: 6) não foi chamada YET.
I também anotou alguns botões / áreas úteis de depuração de código X. Nota:
- Continuar / Pausa = (o atalho do teclado é ⌃ + ⌘ + Y)
E estes botões de controle de execução:
- Step Over = (o atalho do teclado é F6)
- Step Into = (o atalho do teclado é F7)
- Step Out = (o atalho do teclado é F8)
Fiz o projecto, e a consola imprimiu “A soma dos seus números pares é 6.”
Próximo, cliquei no botão “Passo Acima” para executar a próxima linha de código (linha 25) – que é onde eu coloquei o ponto de parada.
Acima, você pode me ver “pisando” a próxima linha de código realmente EXECUTADO e agora o meu console imprimi “Ambos os seus números precisam ser pares. Tente novamente”
Como me livro de um ponto de parada?
Ponto de parada para apagar:
Espere, sobre o que é essa mensagem (lldb) no seu console?
LLDB significa “depurador de baixo nível” que fornece o ambiente de depuração subjacente para o desenvolvimento de aplicações iOS. Ele pode ser usado para encontrar e eliminar problemas no seu código Swift e Objective-C.
Como os pontos de interrupção e o LLDB estão relacionados?
Você pode digitar comandos de atalho no LLDB para ajudá-lo a definir pontos de interrupção em certas linhas de código, definir pontos de interrupção em muitos pontos do seu código, listar todos os seus pontos de interrupção e desabilitar pontos de interrupção.
>
Acima, você pode ver que você pode definir múltiplos breakpoints digitando um “selector” (nome do método) no LLDB. Isto é especialmente útil se você tem MUITOS arquivos e não quer clicar em todos eles para definir breakpoints.
Acima, você também pode “listar” todos os seus breakpoints no seu projeto.
>
Acima, você vê a informação detalhada da lista impressa para o console, que inclui uma “contagem de acertos”, que indica quantas vezes atingimos um determinado breakpoint.
Acima, eu uso “disable” para desabilitar todos os meus breakpoints. Se eu quisesse desactivar apenas o meu 2º breakpoint, teria inserido “breakpoint disable 2″”
Acima, eu defino um ponto de parada em um local específico no meu código: meu arquivo ViewController.swift na linha 16.
Para recapitular, os comandos de ponto de quebra LLDB que usei foram:
- set point breakpoint
- breakpoint list
- breakpoint disable
Se o meu projeto falhar, não deveria apenas clicar em stop e terminar a execução do aplicativo?
Do que pesquisei, STOPPING (◾) ️the app se livra de informações valiosas de depuração que o Xcode está tentando nos dar (o desenvolvedor) para nos ajudar a corrigir o problema. Vou começar a usar os breakpoints e os botões de controle de execução para melhor passar pelo meu código para ver onde os erros estão ocorrendo.
Embrace os bugs como uma oportunidade para você aprender.
Pode os bugs estarem sempre a seu favor.