2013-04-22 2 views
6

파이썬을 컴파일 한 Cython 및 Fortran 확장 (현대 Fortran의 iso_c_binding 모듈 및 Cython으로 래핑 됨)을 사용하여 번호를 처리합니다.컴파일 된 확장자로 파이썬 디버깅

지금까지 편리한 디버깅 전략이 없습니다. 나는 파이썬 부분에 pudb을 사용한다. 프로젝트의 Cython & Fortran 파트에서 gdb를 사용할 수는 있지만 콘솔 텍스트 출력 (print()!)을 대신 사용하고 있습니다.

다른 수준의 코드를 디버깅을 위해 투명하게 만드는 도구가 있는지 알고 싶습니다. 예를 들어, "한 가지 도구 - 디버그 - 모두 -"해결책을 찾고 있습니다. 그것은 파이썬, Cython 또는 포트란 코드를 단계별로 설명합니다.

앞서 언급 한 pudb와 같이 사용자 친화적 인 상호 작용을 허용하는 도구를 선호합니다. 모든 디버깅 도구의 잭이 존재합니까? Python mode of GDB 내가 얻을 수있는 최선인가요?

+1

죄송합니다 나는 당신을위한 해결책이없는도 볼 수 있지만, 내가 정확히 위해 GDB를 사용하여 무료 PTVS + 시험을 시도 할 수 있습니다 당신이 묘사하는 것. 나는 행운이없는 더 나은 해결책을 찾아 보았습니다. – thebigdog

답변

5

gdb으로 확장되는 Cython debugger을 사용하여 cy으로 시작하는 새 명령을 사용할 수 있습니다. 이것들은 파이썬 프레임에있을 때 GDB의 파이썬 모드에서 나온 py 명령과 같이 Cython 코드를 단계별로 실행하고, 중단 점을 설정하고, 지역 주민을 검사 할 수있게 해줍니다. 불행히도 Fortran 지원은 없습니다.

+0

시작하기에 좋은 조언입니다! 'cygdb '와 함께 작동하는 그래픽 프론트 엔드가 있습니까? 나는 아무것도 찾을 수 없었다. 또한 build 디렉토리에서'cygdb'를 실행하는 것이 이상하다고 생각합니다. – AlexE

+1

'ddd --pydb --debugger cygdb' 또는'ddd --gdb --debugger cygdb'를 사용하면'cygdb'를 실행하고'gdb' 또는'pydb'를 가장하는'ddd'를 얻을 수 있습니다. 얼마나 많은 기능을 사용할 지 확신하지 못합니다. – r3m0t

+0

''ddd '에 익숙하지는 않지만 적어도 기본적인 기능은 분명히 작동합니다 (시스템 기능을 사용하지 않는 한). 변수를 클릭하여 동일한 시각화를 얻으므로 명령 행에 값이 추가됩니다. 사용 된 포트란 루틴이 디버깅 기호로 컴파일되는 한, 포트란 코드로 스테핑 할 수도 있습니다. 이제는 'ddd'에 익숙해 지기만하면됩니다. 고맙습니다! – AlexE