Depuração de Programas – Conceitos e Ferramentas

Questões sobre o assunto

1. Qual das opções abaixo descreve corretamente a diferença entre um erro crítico e um erro lógico?
1.50 pontos Média

Resposta correta: C) Erro crítico impede a continuação da execução (ex.: divisão por zero); erro lógico permite a execução, mas produz resultado incorreto.

Erros críticos lançam exceções que interrompem o programa, enquanto erros lógicos resultam em saídas inesperadas sem interromper a execução.

2. Considere o seguinte trecho de código Python:
def h(n):
    return 10 / (n - 2)

def g(n):
    return h(n - 1)

def f(n):
    return g(n - 1)

f(4)

Qual será a primeira linha onde o depurador deve parar (breakpoint) para identificar a origem da ZeroDivisionError?

2.50 pontos Difícil

Resposta correta: A) Na linha return 10 / (n - 2) dentro de h.

O erro ocorre quando n vale 2 dentro de h. Colocando o breakpoint nessa linha permite observar o valor de n antes da divisão.

3. Ao usar o depurador da IDE, qual sequência de comandos permite observar o valor de n antes da exceção, sem entrar nas chamadas de função internas?
2.50 pontos Difícil

def h(n):
    print("start H")
    print(1 / n)          # pode gerar divisão por zero
    print(n)

def g(n):
    print("start G")
    h(n-1)
    print(n)

def f(n):
    print("start F")
    g(n-1)
    print(n)

f(2)
        

Resposta correta: C) Breakpoint em h, Step Over até a linha da divisão, observar n

Colocando o breakpoint exatamente na função que gera a exceção e usando Step Over permite avançar até a instrução problemática mantendo o valor de n visível.

4. Considere que você está depurando o código da aula e deseja automatizar a verificação de que n nunca será zero antes da divisão. Qual das alternativas abaixo descreve a melhor estratégia usando recursos do depurador?
3.50 pontos Extrema

Resposta correta: A) Inserir um breakpoint condicional em h com a condição n == 0 e, ao disparar, alterar n para 1.

Um breakpoint condicional permite interromper a execução somente quando a condição problemática ocorre, possibilitando a correção imediata do valor sem precisar modificar o código fonte.

Pontuação Total
0.00