Мне часто приходится сталкиваться с отладкой.
Иногда я ставлю точку останова, но понимаю что уже слишком поздно, и надо начинать все сначала.
Более того, перед началом отладки, я подготавливаю данные, очищаю базу данных от лишних записей. Все для того, чтобы забыть зайти в, на первый взгляд, безобидный метод, и начать весь процес заново.
Усложняется все тем, что приходится работать с унаследованным кодом, который иногда сложно понять.
Возможно ли лучше понимать запутанный код? А что, если мы сможем понимать такой код, быстрее чем тот, кто его написал?
Встречайте,
PyTrace — это трейсер с возможностями Time-Travel Debugging-а
Основные отличия от традиционного отладчика:
Также, с помощью встроенного Flame Chart-а, можно быстро «нырять» в интересующий метод и смотреть что же там реально происходило:
[Command] + Click для того чтоб призумить на интересующей функции
[Shift]+Click на методе, переносит на момент, когда функция вот-вот вернется.
Туториал по горячим клавишам:
(в текстовом виде)
Что записывается во время выполнения:
Также, в replay-файл записывается контент исходных файлов, на момент запуска отладчика.
1. Установить pip-пакет:
2. Добавить декоратор trace на интересующий метод:
3. Запустить код!
Реплей будет записан в рабочую директорию. Его можно посмотреть с помощью веб-приложения: app.pytrace.com
(данные никуда не отправляются, вся работа с записью происходит локально в браузере)
Я обычно добавляю
Рекомендую пройти интерактивное демо, для ознакомления со всеми возможностями.
Гитхаб:
Pip-пакет
Веб-приложение для просмотра записанных сессий
Сайт:
https://pytrace.com/
Видео основного функционала:
Иногда я ставлю точку останова, но понимаю что уже слишком поздно, и надо начинать все сначала.
Более того, перед началом отладки, я подготавливаю данные, очищаю базу данных от лишних записей. Все для того, чтобы забыть зайти в, на первый взгляд, безобидный метод, и начать весь процес заново.
Усложняется все тем, что приходится работать с унаследованным кодом, который иногда сложно понять.
Возможно ли лучше понимать запутанный код? А что, если мы сможем понимать такой код, быстрее чем тот, кто его написал?
Встречайте,
PyTrace — это трейсер с возможностями Time-Travel Debugging-а
Основные отличия от традиционного отладчика:
- Сессия записывается одиножды, а воспроизвести ее можно бесконечное количество раз.
- Теперь можно не бояться забыть нажать Step Into, всегда можно вернуться назад, и зайти в интересующию функцию.
- Нет больше смысла использовать `print`. Все переменные видны в инспекторе на каждый момент времени.
Также, с помощью встроенного Flame Chart-а, можно быстро «нырять» в интересующий метод и смотреть что же там реально происходило:
[Command] + Click для того чтоб призумить на интересующей функции
[Shift]+Click на методе, переносит на момент, когда функция вот-вот вернется.
Туториал по горячим клавишам:
(в текстовом виде)
Что записывается во время выполнения:
- Локальные переменные
- Входящие и возвращаемые значения
- Время, с момента начала записи
- Стек вызовов
Также, в replay-файл записывается контент исходных файлов, на момент запуска отладчика.
Для того что попробовать на своем проекте:
1. Установить pip-пакет:
pip install pycrunch-trace
2. Добавить декоратор trace на интересующий метод:
from pycrunch_trace.client.api import trace
@trace
def run():
some_code()
3. Запустить код!
Реплей будет записан в рабочую директорию. Его можно посмотреть с помощью веб-приложения: app.pytrace.com
(данные никуда не отправляются, вся работа с записью происходит локально в браузере)
Я обычно добавляю
@trace
аттрибут на методы Django View.Интерактивное демо
Рекомендую пройти интерактивное демо, для ознакомления со всеми возможностями.
Ссылки
Гитхаб:
Pip-пакет
Веб-приложение для просмотра записанных сессий
Сайт:
https://pytrace.com/
Видео основного функционала: