Jeśli używam debuggera, większość czasu chcę tylko zobaczyć, co robi interpreter w moim kodzie. Chcę przejść przez cały kod frameworka i bibliotek, których używam.Python Debugger obsługujący Black Boxing?
AFAIK to się nazywa Black Boxing.
Jak mogę to zrobić z Pythonem ipdb lub innym debugerem Python?
Wyobraź sobie:
używam ramy ORM, które mogę zaufać, i nie chce do debugowania.
cut_hair_method(orm_object.user)
Sposób cut_hair_method()
jest mój, a ja chcę go debugowania.
Numer orm_object
pochodzi ze struktury, której używam. Debugger wkroczy do orm-code i zrobi coś specjalnego, o co mnie nie interesuje. Nie mam sposobu powiedzieć debuggera: nie wskakuj do kodu orm!
Aktualizacja
Na moim przypadku byłoby bardzo łatwo zdecydować, który kod powinien być w czarnej skrzynce i który nie kod: Kod w $VIRTUAL_ENV/src/
nie jest w czarnej skrzynce, wszystko inne jest kod. Z wyjątkiem wyraźnego poinformowania debuggera o czymś innym.
Update2
Mam nazwę "Black Boxing" z tego artykułu: https://hacks.mozilla.org/2013/08/new-features-of-firefox-developer-tools-episode-25/
Każdy dobry debuger będzie zawierał komendy "krok po kroku". Black-Boxing to znacznie więcej niż tylko debugowanie. Black-boxing to idea skupiająca się na testowaniu (a nie debugowaniu) aplikacji. –
Dodałem przykład. AFAIK "krok po kroku" nie jest możliwy wszędzie. – guettli
Zamiast używać polecenia "krok po kroku", jeśli to nie działa - po co ustawiać punkt przerwania w metodzie "cut_hair_method", a następnie uruchomić .... Wydaje mi się, że IDLE IDE miał czarną listę modułów, których nie można przekroczyć , ale wydaje mi się też, że to nie działa zbyt dobrze (kiedy użyłem go kilka lat temu - może się jednak mylę). –