2013-04-22 2 views
6

Я использую Python с скомпилированными расширениями Cython и Fortran (завернутыми с использованием современного модуля Fortran iso_c_binding и Cython) для хруста числа.Отладка Python с скомпилированными расширениями

До сих пор у меня нет удобной стратегии отладки. Я использую pudb для части Python. Хотя я мог бы использовать gdb на сайтах Cython & Fortran, вместо этого я использую консольный текстовый вывод (print()!).

Я хотел бы знать, есть ли инструменты, которые делают различные уровни кода прозрачными для отладки, то есть я ищу решение «один инструмент-отладки-все-все», которое не заботится о том, он выполняет шаги Python, Cython или Fortran.

Я бы предпочел инструменты, которые позволяют дружественное взаимодействие, такое как вышеупомянутый пудб. Существует ли такой инструмент для отладки всех профессий? Является ли Python mode of GDB лучшим, что я могу получить?

+1

К сожалению у меня нет для вас решение, но я использую GDB ровно что вы описываете. Я тоже искал лучшего решения, не повезло. – thebigdog

ответ

5

Вы можете использовать Cython debugger, который расширяет gdb новыми командами, начинающимися cy. Они позволяют вам проходить через Cython-код, устанавливать контрольные точки, проверять местные и т. Д. И все еще работать так же, как команды py из режима Python в GDB, когда вы находитесь в кадре Python. К сожалению, нет поддержки Fortran.

+0

Это хороший совет для начала! Существуют ли графические интерфейсы, которые работают с 'cygdb'? Я не мог найти. Кроме того, мне кажется странным запускать 'cygdb' в каталоге сборки. – AlexE

+1

Вы можете попробовать 'ddd -pydb -debugger cygdb' или' ddd -gdb -debugger cygdb', чтобы получить 'ddd' для запуска' cygdb' и притвориться, что это либо 'gdb', либо' pydb'. Не знаете, сколько функций вы получите. – r3m0t

+0

Я не знаком с 'ddd', но, по крайней мере, очень основательно работает (до тех пор, пока я не вступаю в системные функции). Я получаю такую ​​же визуализацию, щелкая переменные, поэтому в командной строке добавлено значение. По-видимому, до тех пор, пока используемые подпрограммы Fortran скомпилированы с помощью отладочных символов, возможно также вмешательство в код Fortran! Так что теперь мне нужно только ознакомиться с 'ddd'. Спасибо! – AlexE

1

Вы можете попробовать бесплатную PTVS + пробную версию Intel Fortran + смешанный режим отладки

смотри также

http://pytools.codeplex.com/wikipage?title=Mixed-mode%20debugging http://pytools.codeplex.com/workitem/1974

+0

Спасибо за подсказку. К сожалению, у меня нет доступа к Visual Studio или ifort. – AlexE

+0

Вы можете получить Visual Studio Express + PVTS бесплатно – denfromufa

+0

Не для Linux, я думаю;) – AlexE