Diferència entre revisions de la pàgina «Python: depuració»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
(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'']…».)
 
 
(Hi ha 3 revisions intermèdies del mateix usuari que no es mostren)
Línia 14: Línia 14:
 
  (Pdb) list
 
  (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".
 
...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 ==
 +
{| class="wikitable" style="text-align: left; color: green; border: solid 1px gray;" border=grey
 +
!bgcolor=gray|PDB
 +
!bgcolor=gray|Eclipse
 +
!bgcolor=gray|Acció
 +
|-
 +
|h(elp)
 +
|
 +
|ajuda (també es pot fer en concret per una comanda del debugger)
 +
|-
 +
|c , cont<br>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<sup>*</sup>
 +
|llista el codi que s'està executant ara (i marca l'actual posició)
 +
|-
 +
|w(here)
 +
|GUI<sup>*</sup>
 +
|imprimeix la ''stack trace''
 +
|}
 +
 +
<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:
Línia 22: 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(ere) : imprimeix la ''stack trace''
+
* 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:

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