Depurador onisciente

1,059 views
1,030 views

Published on

Plaestra de encerramento da PythonNordeste 2013 em Fortaleza-CE

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,059
On SlideShare
0
From Embeds
0
Number of Embeds
575
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Depurador onisciente

  1. 1. O Depurador OniscienteRodrigo Dias Arruda SenraPythonNordeste 2013 / Fortaleza-CE
  2. 2. O Depurador OniscienteRodrigo Dias Arruda SenraPythonNordeste 2013 / Fortaleza-CE
  3. 3. Apenas um rapaz latino americano...•Especialista em Desenv. e Proj. de SWGlobo.com•Engenheiro de ComputaçãoGrad-MSc-PhD IC-Unicamp•Entusiasta de FLOSS(atuante na comunidade Python desde 2000)
  4. 4. Roteiro do Blá
  5. 5. O que é um bug ?
  6. 6. Debugging is twice as hardas writing the code in the firstplace. Therefore,if you write the code as cleverlyas possible...Brian Kernighan
  7. 7. you are, by definition,not smart enough to debug it.Brian Kernighan
  8. 8. “In a typical commercial developmentorganization, the cost of providing this assurancevia appropriate debugging, verification and testingactivities can easily range from 50% to 75% of thetotal development cost.”Brent Hailpern and Padmanabhan Santhanam.Software debugging, testing, and verification.IBM Systems Journal, 41(1):4–12, 2002
  9. 9. Conceitos Básicosdef soma(x, y):z = x + yreturn zTimelineic=15 ic=16soma(2,3)somastep
  10. 10. Conceitos Básicos>>> dis.disassemble(soma.func_code)2 0 LOAD_FAST 0 (x)3 LOAD_FAST 1 (y)6 BINARY_ADD7 STORE_FAST 2 (z)3 10 LOAD_FAST 2 (z)13 RETURN_VALUEdef soma(x, y):z = x + yreturn zic=15ic=16ic=15ic=16Timelineic=15 ic=16soma(2,3)somaic=14step
  11. 11. Conceitos Básicos>>> dis.disassemble(soma.func_code)2 0 LOAD_FAST 0 (x)3 LOAD_FAST 1 (y)6 BINARY_ADD7 STORE_FAST 2 (z)3 10 LOAD_FAST 2 (z)13 RETURN_VALUEdef soma(x, y):z = x + yreturn zTimelineic=15soma(2,3)ic=14next
  12. 12. Ferramentas deDepuração
  13. 13. Ferramentas deDepuraçãobiblioteca-padrão• logging• traceback• inspect• dis• bdb• pdb• idle
  14. 14. Ferramentas deDepuraçãobiblioteca-padrão• logging• traceback• inspect• dis• bdb• pdb• idleDepuradores (linha de comando)• pydb - Rock Bernstein (2006)• pydbgr/trepan - Rock Bernstein (2009)• ipdb - Godefoide Chapelle (2010)• epdb/gepdb - Patrick Sabin (2010)• pudb - Andreas Kloeckner (2013)
  15. 15. Post-mortem ?
  16. 16. • EXDAMS (1969) - Bob Balzer [PL/I,Algol, Fortran]• ? (1993) - A.Tolmach & A.Appel [Standard ML]• ZStep95 (1997) - H. Lieberman [Lisp]• Coca (1999) - M. Ducassé [C]• Hercule (2000) - K. Renaud [Java]• Dejavu (2000) - Alpern & Ngo & Choi & Sridaharan[Java]• ODB (2005) - Bill Lewis [Java]•TOD (2007) - Guillaume Pothier, Éric Tanter and José Piquer [Java]• epdb (2010) - Patrick Sabin [Python]História do Depurador Onisciente
  17. 17. Timeline 1soma(2,3)nextO que é o Depurador Onisciente ?
  18. 18. Timeline 1soma(2,3)nextO que é o Depurador Onisciente ?Timeline 2rnext
  19. 19. Timeline 1soma(2,3)nextO que é o Depurador Onisciente ?Timeline 2rnext somastep
  20. 20. Timeline 1soma(2,3)nextO que é o Depurador Onisciente ?Timeline 2rnext somastepModo: redo ou replay ?
  21. 21. Arquitetura (TOD)http://pleiad.dcc.uchile.cl/tod/documentation/internals.html
  22. 22. http://www.lambdacs.com/debugger/http://www.youtube.com/watch?v=xpI8hIgOykoODB
  23. 23. Implementing a Reversible Debugger for Python (epdb)Patrick Sabin - Informatik der Technischen Universität Wien - 2010
  24. 24. http://github.com/rodsenra/podePODE
  25. 25. An nowsomethingcompletelydifferent !
  26. 26. Rodrigo Dias Arruda Senrahttp://rodrigo.senra.nom.brrsenra@acm.orgrodrigo.senra@corp.globo.comAs opiniões e conclusões expressas nesta apresentação são de exclusiva responsabilidade de Rodrigo Senra.Não é necessário requisitar permissão do autor para o uso de partes ou do todo desta apresentação, desde quenão sejam feitas alterações no conteúdo reutilizado e que esta nota esteja presente na íntegra no materialresultante.Imagens e referências para outros trabalhos nesta apresentação permanecem propriedade daqueles que detêmseus direitos de copyright.
  27. 27. Obrigado a todos pela atenção.Rodrigo Dias Arruda Senrahttp://rodrigo.senra.nom.brrsenra@acm.orgrodrigo.senra@corp.globo.comAs opiniões e conclusões expressas nesta apresentação são de exclusiva responsabilidade de Rodrigo Senra.Não é necessário requisitar permissão do autor para o uso de partes ou do todo desta apresentação, desde quenão sejam feitas alterações no conteúdo reutilizado e que esta nota esteja presente na íntegra no materialresultante.Imagens e referências para outros trabalhos nesta apresentação permanecem propriedade daqueles que detêmseus direitos de copyright.

×