Successfully reported this slideshow.
Your SlideShare is downloading. ×

Python Debugger - PUG-PE

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 18 Ad
Advertisement

More Related Content

Advertisement
Advertisement

Python Debugger - PUG-PE

  1. 1. Python Debugger Arthur F. M. Alvim http://cin.ufpe.br/∼afma/ XVII Encontro do PUG-PE
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×