Se utilizzo il debugger, la maggior parte delle volte voglio solo vedere cosa fa l'interprete nel mio codice. Voglio scavalcare tutto il codice del framework e delle librerie che uso.Python Debugger che supporta Black Boxing?
AFAIK questo si chiama Black Boxing.
Come posso farlo con Python ipdb o un altro debugger Python?
Immaginate questo:
Io uso un quadro ORM, che mi fido, e non vogliono eseguire il debug.
cut_hair_method(orm_object.user)
Il metodo cut_hair_method()
è mio, e voglio eseguire il debug.
Il orm_object
proviene dal framework che utilizzo. Il debugger entrerà nel codice orm e farà alcune cose speciali, che non mi interessano. Non ho modo di dire al debugger: non saltare nel codice orm!
Aggiornamento
Per il mio caso sarebbe molto facile decidere quale codice dovrebbe essere nella scatola nera, e che il codice non è: Codice in $VIRTUAL_ENV/src/
non è nella scatola nera, tutti gli altri il codice è. Tranne che io dico esplicitamente al debugger qualcos'altro.
Update2
ho il nome di "Black Boxing" da questo articolo: https://hacks.mozilla.org/2013/08/new-features-of-firefox-developer-tools-episode-25/
Qualsiasi buon debugger sarà caratterizzato da "step over" comandi. Black-Boxing è molto più di un semplice debug. Black-boxing è un'idea incentrata su come testare (e non eseguire il debug) le applicazioni. –
Ho aggiunto un esempio. AFAIK "step over" non è possibile ovunque. – guettli
Invece di usare step-over se questo non funziona per te - perché non impostare un punto di interruzione nel 'cut_hair_method, e poi eseguire .... Mi sembra di ricordare che l'IDE IDE aveva una lista nera di moduli da non passare , ma mi sembra anche di ricordare che non ha funzionato troppo bene (quando l'ho usato diversi anni fa - potrei sbagliarmi però). –