Отладка Swig-расширений для Python - PullRequest
5 голосов
/ 06 мая 2009

Есть ли другой способ отладки расширений Swig, кроме выполнения

gdb python stuff.py

Я обернул устаревшую библиотеку libkdtree ++ и следовал всем точкам управления памятью, связанным с swig (заимствованный ref против собственного ref и т. Д.). Но, тем не менее, я не уверен, что моя привязка не пожирает память. Было бы полезно иметь возможность просто шаг за шагом отлаживать каждую опубликованную функцию: начиная с Python, затем переходя через связывание C-клея в пространство C и возвращаясь обратно.

Уже есть такая возможность?

Ответы [ 2 ]

2 голосов
/ 09 октября 2009

GDB 7.0 поддерживает сценарии Python. Это может помочь вам в этом конкретном случае.

1 голос
/ 06 мая 2009

Ну, для отладки вы используете отладчик; -).

При отладке может быть хорошей идеей настроить Python с помощью '--with-pydebug' и перекомпилировать. Затем он делает дополнительные проверки.

Если вы ищете утечки памяти, есть простой способ:

Выполните ваш код снова и снова в цикле, и посмотрите на потребление памяти Python.

...