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

Заранее благодарю за ответы!
doza_and
Virtul
не возвращает что мне хочется
Лучше не дебажить, а посмотреть документацию по swig. Понять как будет выглядеть то что вам нужно и поправить файл описания swig интерфейса.
Virtul
Извиняюсь, не понял, выглядеть то что мне нужно, где? Во время исполнения хочется точку останова указать и увидеть значение поля, я для этих целей дебагер использую (изредко принты), какие-то другие варианты есть?
doza_and
Virtul
увидеть значение поля
Вот в это все и упирается. Поля в чем? Если в c++ любой отладчик вам его покажет. Если дебажите Python то там тоже полно IDE и отладчиков все они умеют показывать поля. линукс/виндовс - не принципиально, но естественно инструменты разные.

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

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

Ну и всё таки, кроме непосредственно объектов в идеале хочется ещё и попасть в исходный код c++ и пошагово проследить за его выполнением. Вот это возможно? Как?
doza_and
Virtul
Вот это возможно? Как?
Да.
Как обычно. Или запустить python из под c++ отладчика, или прицепить отладчик после запуска python процесса.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB