Virtul
Дек. 29, 2014 14:42:27
Всем привет,
Есть python код, который использует модуль со SWIG объектами C++ библиотеки. Код не работает - метод swig объекта не возвращает что мне хочется, поэтому очень хочется посмотреть что в нём происходит.
На сколько я нагуглил, python tools for VS имеет такую фичу, но в лоб решить задачу не удалось (в дебагере объекты выглядят по прежнему). Подробного мануала (туториала) как это сделать я не нашёл, поэтому просто установил python символы и включил mixed debug mode. Я так понимаю, что этого всё таки недостаточно… Но дело в том, что опыта работы с pdb и swig у меня ноль, может есть какой-нибудь IDE с подробным туториалом как эту фичу в нём настроить? (линукс/виндовс - не принципиально)
Заранее благодарю за ответы!
doza_and
Дек. 29, 2014 14:47:29
Virtul
не возвращает что мне хочется
Лучше не дебажить, а посмотреть документацию по swig. Понять как будет выглядеть то что вам нужно и поправить файл описания swig интерфейса.
Virtul
Дек. 29, 2014 15:18:51
Извиняюсь, не понял, выглядеть то что мне нужно, где? Во время исполнения хочется точку останова указать и увидеть значение поля, я для этих целей дебагер использую (изредко принты), какие-то другие варианты есть?
doza_and
Дек. 29, 2014 15:38:53
Virtul
увидеть значение поля
Вот в это все и упирается. Поля в чем? Если в c++ любой отладчик вам его покажет. Если дебажите Python то там тоже полно IDE и отладчиков все они умеют показывать поля. линукс/виндовс - не принципиально, но естественно инструменты разные.
Ну например так:
windows: pyscripter + MSVC
linux : pycharm + codeblocks
А вообще вариантов отладки море на любой цвет и вкус.
Virtul
Дек. 29, 2014 20:10:08
Ок, использую pycharm community, создаю несколько swig разных объектов, в отладчике вижу только, что у всех у них тип что-то вроде SwygPyObject, и они не содержат никаких функций, переменных или чего-то ещё. Что-то не так описании swig интерфейса?
Ну и всё таки, кроме непосредственно объектов в идеале хочется ещё и попасть в исходный код c++ и пошагово проследить за его выполнением. Вот это возможно? Как?
doza_and
Янв. 18, 2015 18:45:23
Virtul
Вот это возможно? Как?
Да.
Как обычно. Или запустить python из под c++ отладчика, или прицепить отладчик после запуска python процесса.