17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

292<br />

La bibliothèque standard<br />

TROISIÈME PARTIE<br />

Exécution de code dans le prompt Pdb<br />

tziade@Tarek:~/Desktop$ python scripts/debugging.py python<br />

> /home/tziade/Desktop/scripts/debugging.py(9)main_function()<br />

-> for i in range(2):<br />

(Pdb) n<br />

> /home/tziade/Desktop/scripts/debugging.py(10)main_function()<br />

-> sub_function(str(i))<br />

(Pdb) i<br />

0<br />

(Pdb) import time<br />

(Pdb) time.asctime()<br />

'Wed Oct 5 13:23:22 2005'<br />

(Pdb) (next) = 12<br />

(Pdb) print next<br />

12<br />

(Pdb) next<br />

0<br />

0<br />

0<br />

> /home/tziade/Desktop/scripts/debugging.py(9)main_function()<br />

-> for i in range(2):<br />

(Pdb) c<br />

1<br />

1<br />

1<br />

La seule précaution dans l’exécution de code est de garnir de parenthèses les variables<br />

portant le même nom qu’une commande pdb ou un alias, afin d’éviter une collision<br />

de noms au moment de l’interprétation, comme dans le cas de next ci-dessus.<br />

Alias et fichier .pdbrc<br />

Au premier chargement de pdb, si un fichier nommé .pdbrc se trouve dans votre<br />

répertoire personnel (variable HOME dans les variables d’environnement de votre système)<br />

ou dans le répertoire courant, il est interprété par le débogueur et peut contenir<br />

des commandes pdb.<br />

Ce fichier permet de créer des macros de commandes, associées à des alias, pour ne<br />

pas avoir à les retaper à chaque session de débogage.<br />

Exemple de fichier .pdbrc<br />

# fichier d'alias pour pdb<br />

print("alias charges")<br />

# affiche la liste des variables de l'instance objet<br />

alias obvars pp %1.__dict__

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!