python отладка
От: nen777w  
Дата: 28.03.12 16:08
Оценка:
Пишу вспомогательные экспорты в pyd-ы нашего тест-фреймворка (написанного на С++), при помощи boost::python.
Фреймворк предназначен для написание тестов которые тестируют некоторое железо.
Раньше все тесты писались в виде dll откуда дёргались функции из фреймворка.
Сейчас я прикрутил к нему возможность запуска python-овских тестов.

Проблема в том что фремворк довольно тяжёлый в том плане что что бы он начал работать т.е. что бы из него можно было начать выполнять какие то вызовы, должен пройти некоторый этап инициализации.
Сейчас запуск python-овских скриптов выглядит так:
— поднимается фреймворк (в консольном приложении) и для этого из специального GUI-шного приложения чрез сеть ему передаются некоторые настройки.
— фреймворк загружает специальную dll-обёртку которая запускает python-овский движок попутно настраивая пути для поиска pyd (в sys.path)
и передает ему скрипт на выполнение.
— скрипт делает загрузку моих pyd-ов через экспорт-ы которых вызывает функции из фреймворка.

Проблема в том что таким образом нельзя выполнить отладку самого скрипта, как это например можно сделать в каком то python-овском дебагере (например PyCharm), просто установив брекпоинт в тексте скрипта.
Мне интересно как устроены эти дебагеры. Т.е. используют ли они уже готовый python-овский движок или реализуют свой собсвенный.

Т.к. решений этой проблемы у меня пока 3:
1) Если python-овские дебагеры используют установленный в систему python-овский движок
, то можно ли таким дебагером как то подключиться к моему запущенному движку который крутиться в моем фреймворке.
Если так, посоветуйте куда вообще смотреть, и какие дебагеры щупать. Было бы просто классно если бы прямо из фреймворка управление
выполнения скрипта можно было прямо передать такому дебагеру.
2) Если эти дебагеры реализуют собственный движок, то опять (существуют ли такие) можно ли как то используя их API опять таки "подсадить" мой фреймворк на их python-овский движок.
3) Ну и самый тупой вариант это использовать python-овский дебагер и написать специальные pyd-ы которые будут содержать функции для поднятия
фреймворка прямо из скрипта питона. Но это неудобно тем то что придется тогда разделять отличать debug версию скрипта (с этими специальными pyd-ами) и release (без них). Да и к тому же как я уже написал фреймворк инициализируется не тривиально.

Во общем если сократить вопрос то получается так:
Куда копать (что смотреть, возможно даже в самом api из python) что бы предоставить возможность отладки python-овских скриптов заточенных под специальный фреймворк, которые сами по себе запускаться не могут из за требований которые на них накладывает этот фреймворк и наличия специальных pyd-ов (по сути обёртки на api фреймворка).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.