depurador onisciente
DESCRIPTION
Plaestra de encerramento da PythonNordeste 2013 em Fortaleza-CETRANSCRIPT
![Page 1: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/1.jpg)
O Depurador Onisciente
Rodrigo Dias Arruda Senra PythonNordeste 2013 / Fortaleza-CE
![Page 2: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/2.jpg)
O Depurador Onisciente
Rodrigo Dias Arruda Senra PythonNordeste 2013 / Fortaleza-CE
![Page 3: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/3.jpg)
Apenas um rapaz latino americano...
• Especialista em Desenv. e Proj. de SWGlobo.com
• Engenheiro de Computação Grad-MSc-PhD IC-Unicamp
• Entusiasta de FLOSS(atuante na comunidade Python desde 2000)
![Page 4: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/4.jpg)
Roteiro do Blá
![Page 5: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/5.jpg)
![Page 6: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/6.jpg)
![Page 7: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/7.jpg)
![Page 8: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/8.jpg)
![Page 9: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/9.jpg)
O que é um bug ?
![Page 10: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/10.jpg)
Debugging is twice as hardas writing the code in the first
place. Therefore, if you write the code as cleverly
as possible...
Brian Kernighan
![Page 11: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/11.jpg)
you are, by definition, not smart enough to debug it.
Brian Kernighan
![Page 12: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/12.jpg)
“In a typical commercial development organization, the cost of providing this assurance via appropriate debugging, verification and testing activities can easily range from 50% to 75% of the total development cost.”
Brent Hailpern and Padmanabhan Santhanam.Software debugging, testing, and verification. IBM Systems Journal, 41(1):4–12, 2002
![Page 13: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/13.jpg)
Conceitos Básicos
def soma(x, y): z = x + y return z
Timelineic=15 ic=16
soma(2,3)soma
step
![Page 14: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/14.jpg)
Conceitos Básicos
>>> dis.disassemble(soma.func_code) 2 0 LOAD_FAST 0 (x) 3 LOAD_FAST 1 (y) 6 BINARY_ADD 7 STORE_FAST 2 (z)
3 10 LOAD_FAST 2 (z) 13 RETURN_VALUE
def soma(x, y): z = x + y return z
ic=15
ic=16
ic=15
ic=16
Timelineic=15 ic=16
soma(2,3)soma
ic=14
step
![Page 15: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/15.jpg)
Conceitos Básicos
>>> dis.disassemble(soma.func_code) 2 0 LOAD_FAST 0 (x) 3 LOAD_FAST 1 (y) 6 BINARY_ADD 7 STORE_FAST 2 (z)
3 10 LOAD_FAST 2 (z) 13 RETURN_VALUE
def soma(x, y): z = x + y return z
Timelineic=15
soma(2,3)
ic=14
next
![Page 16: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/16.jpg)
![Page 17: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/17.jpg)
Ferramentas de Depuração
![Page 18: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/18.jpg)
Ferramentas de Depuração
biblioteca-padrão• logging • traceback• inspect• dis• bdb• pdb• idle
![Page 19: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/19.jpg)
Ferramentas de Depuração
biblioteca-padrão• logging • traceback• inspect• dis• bdb• pdb• idle
Depuradores (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)
![Page 20: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/20.jpg)
![Page 21: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/21.jpg)
![Page 22: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/22.jpg)
Post-mortem ?
![Page 23: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/23.jpg)
![Page 24: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/24.jpg)
• 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
![Page 25: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/25.jpg)
Timeline 1
soma(2,3)next
O que é o Depurador Onisciente ?
![Page 26: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/26.jpg)
Timeline 1
soma(2,3)next
O que é o Depurador Onisciente ?
Timeline 2
rnext
![Page 27: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/27.jpg)
Timeline 1
soma(2,3)next
O que é o Depurador Onisciente ?
Timeline 2
rnext somastep
![Page 28: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/28.jpg)
Timeline 1
soma(2,3)next
O que é o Depurador Onisciente ?
Timeline 2
rnext somastep
Modo: redo ou replay ?
![Page 29: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/29.jpg)
Arquitetura (TOD)
http://pleiad.dcc.uchile.cl/tod/documentation/internals.html
![Page 30: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/30.jpg)
![Page 31: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/31.jpg)
http://www.lambdacs.com/debugger/http://www.youtube.com/watch?v=xpI8hIgOyko
ODB
![Page 32: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/32.jpg)
Implementing a Reversible Debugger for Python (epdb)Patrick Sabin - Informatik der Technischen Universität Wien - 2010
![Page 33: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/33.jpg)
http://github.com/rodsenra/pode
PODE
![Page 34: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/34.jpg)
![Page 35: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/35.jpg)
An now something completely different !
![Page 36: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/36.jpg)
![Page 37: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/37.jpg)
Rodrigo Dias Arruda Senrahttp://rodrigo.senra.nom.br
[email protected]@corp.globo.com
As 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 que não sejam feitas alterações no conteúdo reutilizado e que esta nota esteja presente na íntegra no material resultante.
Imagens e referências para outros trabalhos nesta apresentação permanecem propriedade daqueles que detêm seus direitos de copyright.
![Page 38: Depurador onisciente](https://reader033.vdocuments.com.br/reader033/viewer/2022052410/54972ffdac795982318b4786/html5/thumbnails/38.jpg)
Obrigado a todos pela atenção.Rodrigo Dias Arruda Senra
http://rodrigo.senra.nom.br
[email protected]@corp.globo.com
As 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 que não sejam feitas alterações no conteúdo reutilizado e que esta nota esteja presente na íntegra no material resultante.
Imagens e referências para outros trabalhos nesta apresentação permanecem propriedade daqueles que detêm seus direitos de copyright.