Python: depuració

De Cacauet Wiki
La revisió el 12:27, 4 des 2012 per Enric (discussió | contribucions) (Es crea la pàgina amb «''Bug'' = "bitxo" en anglès. Depurar és el procés d'eliminar els errors del programes o ''bugs''. El [http://ca.wikipedia.org/wiki/Depurador depurador o ''debugger'']…».)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
Salta a la navegació Salta a la cerca

Bug = "bitxo" en anglès. Depurar és el procés d'eliminar els errors del programes o bugs.

El depurador o debugger és l'eina que utilitzem per córrer (run) el programa en un entorn controlat, permetent examinar el comportament del programa pas a pas i consultar les variables internes en qualsevol moment.

Per Python utilitzarem:

El principal procediment és inserir breakpoints en el nostre codi. El breakpoint aturarà l'execució del programa i ens farà entrar en mode interactiu per la consola. Podem consultar informació diversa del nostre programa com les variables, el stack trace o la línia de codi on estem.

El PDB solem utilitzar-ho inserint els breakpoints en el nostre codi en mode hardcoded:

import pdb; pdb.set_trace()

Per exemple amb:

(Pdb) list

...ens sortirà el codi i marcarà la línia on estem. La comanda "list" també es pot fer de forma curta amb "l".

Les comandes bàsiques de l'execució son:

  • h(elp) : ajuda (també es pot fer en concret per una comanda del debugger)
  • s(tep) : avancem una instrucció, entrant a les funcions que es cridin.
  • n(ext) : avancem una instrucció, sense entrar a les funcions.
  • c , cont o continue : avancem fins els següent breakpoint
  • r(eturn) : avancem fins que la funció acaba (return).
  • l(ist) : llista el codi que s'està executant ara (i marca l'actual posició)
  • w(ere) : imprimeix la stack trace