Diferència entre revisions de la pàgina «Python: depuració»
Línia 42: | Línia 42: | ||
|- | |- | ||
|l(ist) | |l(ist) | ||
− | |GUI* | + | |GUI<sup>*</sup> |
|llista el codi que s'està executant ara (i marca l'actual posició) | |llista el codi que s'està executant ara (i marca l'actual posició) | ||
|- | |- | ||
|w(ere) | |w(ere) | ||
− | |GUI* | + | |GUI<sup>*</sup> |
|imprimeix la ''stack trace'' | |imprimeix la ''stack trace'' | ||
|} | |} | ||
− | * = funcions integrades en el GUI, visibles en tot moment (Eclipse). | + | <sup>*</sup> = funcions integrades en el GUI, visibles en tot moment (Eclipse). |
Les comandes bàsiques de l'execució son: | Les comandes bàsiques de l'execució son: |
Revisió del 16:57, 14 des 2012
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
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(ere) | 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(ere) : imprimeix la stack trace