Debug
Qué hacer cuando el programa no hace lo que esperabas, y cómo convertir cada error en algo que ya sabrás reconocer.
Introducción
Todos los programas tienen errores.
No es algo que le pase solo a los que empiezan: pasa siempre, y encontrarlos es buena parte del trabajo de programar.
Un error es una diferencia entre lo que el programa hace y lo que tú esperabas que hiciera.
Fíjate que en esta frase hay dos cosas, no una.
Está lo que hace el programa, que puedes mirar, y está lo que tú esperabas, que solo existe dentro de tu cabeza hasta que lo escribes.
Por eso el primer trabajo no es tocar el código. Es escribir las dos.
Comprueba lo evidente
Antes de nada, la lista corta. Uno de cada tres errores está aquí:
- ¿Has guardado el archivo?
- ¿Estás ejecutando el archivo que te piensas?
- ¿Has escrito bien el nombre?
fowrardno esforward. - ¿Falta un
:al final delifo delwhile? - ¿El sangrado es el que quieres? Recuerda el
i += 1de Iteració. - ¿Has escrito una
Odonde querías un0, o unaldonde querías un1?
Si nada de esto es, entonces sí que vale la pena pensar.
Describe el problema
Dilo en voz alta, como si se lo explicaras a alguien.
Quería que dibujara tres escalones y ha dibujado uno solo.
Parece una tontería y es la técnica que más errores resuelve.
Mientras lo explicas tienes que decir qué esperabas, y muchas veces te das cuenta a mitad de la frase.
Haz que vuelva a pasar
Si no puedes repetir el error, no lo puedes arreglar.
Y si lo puedes repetir, ya tienes la mitad: sabes exactamente con qué datos pasa.
Reduce el programa hasta que quede el mínimo que todavía falla.
Cada línea que quitas y que no cambia nada es una línea que no era el problema.
Haz de máquina
Es lo que ya hiciste en Seqüència con la traza: coge papel y ejecuta el programa tú, línea por línea, apuntando qué vale cada variable.
Lo haces mal y lo haces lento, pero lo haces de verdad, y la máquina no tiene imaginación: hace lo que pone, no lo que querías decir.
Cuando tu traza y el programa dejen de coincidir, ya sabes en qué línea está.
Haz que el programa hable
Un print a media función es la herramienta de depuración más antigua que hay, y todavía es buena.
return + / 2
average called with 10 and 20
20.0Estàs llegint una vista prèvia.
Inicia la sessió amb Google per llegir la pàgina sencera.
Inicia la sessió amb GoogleNomés et demanarem que acceptis les condicions del servei.