O documento apresenta o debugger Python (pdb), descrevendo seu funcionamento, comandos e exemplos de uso. O pdb permite depurar código Python de forma interativa, possibilitando paradas e execução passo-a-passo para inspeção. Outros debuggers e IDEs também são mencionados.
2. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Índice
1 Introdução
Sobre o Python Debugger
Objetivos da Palestra Relâmpago
2 O Módulo PDB
Como Funciona?
3 Comandos
Comandos
4 Exemplos
Vamos Brincar!
5 Outros Debuggers
Outros Debuggers
6 Conclusão
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 2 / 18
3. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Introdução
Introdução
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 3 / 18
4. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Sobre o Python Debugger
• Dê o seu "import pdb". É uma das baterias do Python
(módulo pdb).
• Funcionamento como um shell interativo que debuga o
código fonte.
• Permite que sejam realizados paradas ou mesmo a
execução passo-a-passo do código fonte para que este
seja inspecionado, entre outras funcionalidades.
• O debugger é extensível - Ele é definido na classe Pdb.
• Muito melhor do que o método "debug ’Lala’ mode"
Documentação do pdb
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 4 / 18
5. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Objetivos da Palestra Relâmpago
• Entender o funcionamento básico do Python Debugger.
• Aplicá-lo em alguns exemplos práticos.
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 5 / 18
6. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
O Módulo PDB
O Módulo PDB
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 6 / 18
7. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Como Funciona?
Example
» # exemplo do debug ’Lala’ mode
» print ’Lala Foi!’
» # código que vc quer funcionando
» print variavel
» print ’Lala Voltou!’
• Bastante útil em certas ocasiões, mas...
• Não permite que sejam feitas modificações em tempo de
execução.
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 7 / 18
8. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Como Funciona?
Pdb
Para utilizar o debugger, você deverá importar o módulo pdb, o
módulo a ser testado e chamar o método pdb.run() passando o
código a ser testado como parâmetro.
Example
» # exemplo usando o pdb
» import pdb
» import meumodulo
» pdb.run("meumodulo.main()")
(Pdb) continue # agora ele executará
» print ’Hello World!’
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 8 / 18
9. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Como Funciona?
Outras Formas de Usar o Pdb
Podemos executá-lo diretamente pela linha de comando:
$ python path_to_python_libs_pdb.py meumodulo.py
Example
» # ou ainda podemos executá-lo quando ocorrer um erro:
» import pdb, meumodulo
» Traceback( most recent call last): ...
» NameError: Global name ’hello’ is not defined
» pdb.pm()
> ./meumodulo.py(2)main()
-> print hello
(Pdb)_
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 9 / 18
10. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Como Funciona?
Outras Formas de Usar o Pdb
Podemos também executá-lo na chamado do código pela
função set_trace():
$ python meuarquivo.py
Example
# meuarquivo.py
import pdb, meumodulo
print ’iae bunitao’ pdb.set_trace() # onde você quer que o
debug comece.
# código...
executando...
iae bunitao
(Pdb)_
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 10 / 18
11. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Comandos
Comandos
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 11 / 18
12. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Tabela com os Comandos do PDB
Comando Forma Simplificada Descrição
break b Insere um breakpoint (sem parâmetro lista os breakpoints).
tbreak tbreak Insere um breakpoint temporário.
clear cl Remove um breakpoint.
enable enable Habilita um ou mais breakpoints.
disable disable Desabilita um ou mais breakpoints.
continue c Continua a execução do programa.
exit q Aborta a execução do programa.
help h Imprime uma lista de comandos ou ajuda.
list l Mostra o cursor do pdb no código fonte.
next n Executa linha mas não entra em funções ([s]tep).
return r Continua execução até a última função dar o retorno.
quit q Sai do debugger.
Tabela: Tabelas de Comandos do pdb
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 12 / 18
13. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Exemplos
Exemplos
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 13 / 18
14. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Vamos Brincar!
VAMOS BRINCAR!
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 14 / 18
15. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Outros Debuggers
Outros Debuggers
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 15 / 18
16. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Outros Debuggers
• Debuggers
WINPdb (GPL, remote debbuging, 20x + rápido que o pdb)
pydb
• IDEs com Debug
PyDev (Eclipse Plugin)
Komodo
PyCharm
++ Python Debuggers
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 16 / 18
17. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Conclusão
Conclusão
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 17 / 18
18. Introdução O Módulo PDB Comandos Exemplos Outros Debuggers Conclusão
Conclusão
?
Contato?
Arthur Alvim
arth.alvim@gmail.com
@arthuralvim
facebook.com/arthur.alvim
Obrigado pela Atenção!
Arthur F. M. Alvim - arth.alvim@gmail.com Python Debugger 18 / 18