Diferència entre revisions de la pàgina «Python: depuració»
Línia 59: | Línia 59: | ||
* r(eturn) : avancem fins que la funció acaba (return). | * r(eturn) : avancem fins que la funció acaba (return). | ||
* l(ist) : llista el codi que s'està executant ara (i marca l'actual posició) | * l(ist) : llista el codi que s'està executant ara (i marca l'actual posició) | ||
− | * w( | + | * w(here) : imprimeix la ''stack trace'' |
Revisió de 16:23, 12 des 2013
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:
- PDB: Python debugger, funciona directament per la consola.
- Debugger en PyDev: amb interfície gràfica, facilita certes funcions.
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".
Comandes bàsiques del debugger[modifica]
PDB | Eclipse | Acció |
---|---|---|
h(elp) | ajuda (també es pot fer en concret per una comanda del debugger) | |
c , cont o continue |
resume | avancem fins els següent breakpoint |
s(tep) | step into | avancem una instrucció, entrant a les funcions que es cridin. |
n(ext) | step over | avancem una instrucció, sense entrar a les funcions. |
r(eturn) | step return | avancem fins que la funció acaba (return). |
l(ist) | GUI* | llista el codi que s'està executant ara (i marca l'actual posició) |
w(here) | GUI* | imprimeix la stack trace |
* = funcions integrades en el GUI, visibles en tot moment (Eclipse).
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(here) : imprimeix la stack trace