Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 29, 2014 14:42:27

Virtul
От:
Зарегистрирован: 2012-01-27
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Дебаггер SWIG объектов

Всем привет,
Есть python код, который использует модуль со SWIG объектами C++ библиотеки. Код не работает - метод swig объекта не возвращает что мне хочется, поэтому очень хочется посмотреть что в нём происходит.
На сколько я нагуглил, python tools for VS имеет такую фичу, но в лоб решить задачу не удалось (в дебагере объекты выглядят по прежнему). Подробного мануала (туториала) как это сделать я не нашёл, поэтому просто установил python символы и включил mixed debug mode. Я так понимаю, что этого всё таки недостаточно… Но дело в том, что опыта работы с pdb и swig у меня ноль, может есть какой-нибудь IDE с подробным туториалом как эту фичу в нём настроить? (линукс/виндовс - не принципиально)

Заранее благодарю за ответы!



Офлайн

#2 Дек. 29, 2014 14:47:29

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Дебаггер SWIG объектов

Virtul
не возвращает что мне хочется
Лучше не дебажить, а посмотреть документацию по swig. Понять как будет выглядеть то что вам нужно и поправить файл описания swig интерфейса.



Офлайн

#3 Дек. 29, 2014 15:18:51

Virtul
От:
Зарегистрирован: 2012-01-27
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Дебаггер SWIG объектов

Извиняюсь, не понял, выглядеть то что мне нужно, где? Во время исполнения хочется точку останова указать и увидеть значение поля, я для этих целей дебагер использую (изредко принты), какие-то другие варианты есть?



Офлайн

#4 Дек. 29, 2014 15:38:53

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Дебаггер SWIG объектов

Virtul
увидеть значение поля
Вот в это все и упирается. Поля в чем? Если в c++ любой отладчик вам его покажет. Если дебажите Python то там тоже полно IDE и отладчиков все они умеют показывать поля. линукс/виндовс - не принципиально, но естественно инструменты разные.

Ну например так:
windows: pyscripter + MSVC
linux : pycharm + codeblocks

А вообще вариантов отладки море на любой цвет и вкус.



Офлайн

#5 Дек. 29, 2014 20:10:08

Virtul
От:
Зарегистрирован: 2012-01-27
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Дебаггер SWIG объектов

Ок, использую pycharm community, создаю несколько swig разных объектов, в отладчике вижу только, что у всех у них тип что-то вроде SwygPyObject, и они не содержат никаких функций, переменных или чего-то ещё. Что-то не так описании swig интерфейса?

Ну и всё таки, кроме непосредственно объектов в идеале хочется ещё и попасть в исходный код c++ и пошагово проследить за его выполнением. Вот это возможно? Как?



Офлайн

#6 Янв. 18, 2015 18:45:23

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Дебаггер SWIG объектов

Virtul
Вот это возможно? Как?
Да.
Как обычно. Или запустить python из под c++ отладчика, или прицепить отладчик после запуска python процесса.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version