Italian subtitles

← 01ps-01 Costruire my-spyder

Get Embed Code
4 Languages

Showing Revision 3 created 06/24/2014 by Fran Ontanaya.

  1. L'idea e' quella di usare questa funzione trace-it per costruire il nostro debugger interatttivo.
  2. Lo chiameremo "my-spyder" che sta per MY Simple PYthon DEbuggeR
  3. con l'idea di un ragno (spider) che cattura tutti gli insetti (bugs).
  4. My-spider e' un debugger super-semplice, come dice il nome.
  5. My-spyder e' un debugger a riga di comando, che ti chiedera' di inserire un comando
  6. e il comando puo' essere una cosa tipo: interrompi a riga 70,
  7. lancia il programma e quando raggiunge riga 70 si interrompe e quando si interrompe
  8. possiamo visualizzare singole variabili, per esempio una x con x che ha valore 42.
  9. Come lo possiamo fare? Ci servono delle variabili che regolino il funzionamento del debugger.
  10. Prima, una variabile di nome "stepping" che ci dica se stiamo
  11. percorrendo riga dopo riga il programma, o se lo stiamo semplicemente eseguendo.
  12. Abbiamo anche un elenco di breakpoint, in effetti e' il mapping
  13. di singoli numeri di riga per valori qualsiasi, ma se in questa voce c'e', diciamo, il numero 7,
  14. significa che quando il debugger arriva a riga 7, l'esecuzione dovrebbe stopparsi.
  15. Per quello che ci serve, lo faremo molto semplice: abbiamo un certo numero di breakpoints predefiniti.
  16. Abbiamo per esempio un breakpoint a riga 9 e magari uno a riga 14.
  17. La nostra funzione trace-in viene chiamata per ogni singola riga e ovviamente vogliamo che si stoppi
  18. quando sia raggiunto un breakpoint o quando passiamo da una riga alla successiva.
  19. Vogliamo accedere a queste variabili globali quindi le dichiareremo di conseguenza.
  20. Nell'eventualita' in cui passiamo ad una nuova riga, controlliamo se siamo in stepping
  21. o se il nostro dizionario dei breakpoint ha il valore di riga attuale
  22. e, se e' effettivamente il caso, stampiamo a video opportune infomazioni diagnostiche
  23. che possono essere utili al debugging: cosa e' successo, dove siamo attualmente,
  24. le funzioni che sono in esecuzione cosi' come le variabili locali.