Внешняя отладка PyDev с определением новых типов Python?

0

У меня есть система, в которой встроен Python (система C++), и встроенный питон расширяется с помощью приложения C++.

Мои проблемы возникли, когда я решил включить новое определение типа в расширение Python. Я могу определить новый тип, используя → https://docs.python.org/2/extending/newtypes.html. Но тогда сбой приложения (как в C++, так и в Python [Fatal Python error: недопустимый объект UNREF]).

Если я деактивирую строки, которые соединяют интерпретатор python с внешним отладчиком PyDev, все работает отлично, но если я активирую те, которые появляются сбой.

Есть ли у вас какие-либо идеи по этой проблеме?

Теги:

1 ответ

2
Лучший ответ

По-видимому, это проблема в коде C/C++. Я считаю, что отладчик просто раскрывает существующую ошибку в вашем коде (т.е. Отладчик будет проверять ваши объекты, выполняющие на них dir(), и, возможно, вызывая функцию repr() или str() - и, вероятно, во время этого процесса ваш объект что-то плохое).

Мое предложение заключается в компиляции вашего кода в режиме отладки (и генерации библиотеки _d), а затем выполняется с помощью python в режиме отладки (native) с помощью python_d.

Т.е.: сконфигурируйте python_d внутри Eclipse/PyDev, запустив ваш код с помощью python_d и присоедините отладчик C/C++ к запущенному процессу.

Обратите внимание: если слишком сложно иметь python_d и все зависимости, которые вам нужны в режиме отладки, могут возникнуть некоторые обходные пути для создания библиотеки релизов с отладочной информацией (но идеал на самом деле имеет python и все dll в режиме отладки).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню