2013-04-22 27 views
6

Sayıda çilelendirme için derlenmiş Cython ve Fortran uzantıları (modern Fortran'ın iso_c_binding modülü ve Cython kullanılarak sarılmış) ile Python kullanıyorum.Python'u derlenmiş uzantılar ile hata ayıklama

Şimdiye kadar uygun bir hata ayıklama stratejim yok. Python bölümü için pudb kullanıyorum. Projenin Cython & Fortran parçalarında gdb kullanabilsem de, bunun yerine konsol metin çıktısını (print()!) kullanıyordum.

Farklı düzeylerde kodları hata ayıklamak için şeffaf hale getiren araçlar olup olmadığını bilmek isterim, yani "tek-araç-hata ayıklama-her şeyi" çözümünü arıyorum. Python, Cython veya Fortran kodunu adım atar.

Yukarıda adı geçen pudb gibi kullanıcı dostu etkileşime izin veren araçları tercih ederim. Tüm esnaf hata ayıklama aracı gibi bir jack var mı? Python mode of GDB alabildiğim en iyisi mi?

+1

Üzgünüm sizin için bir çözüm yok ayrıca bkz ama tam için GDB kullanmak serbest PTVS + deneme deneyebilirsiniz ne anlatıyorsun Şanssız da olsa daha iyi bir çözüm için baktım. – thebigdog

cevap

5

gdb'u cy'u başlatan yeni komutlarla genişleten Cython debugger'u kullanabilirsiniz. Bunlar, Cython koduna girmenizi, kesme noktalarını ayarlamanızı, yerlileri denetlemenizi vb. Sağlar ve yine de bir Python çerçevesinde olduğunuzda GDB'nin Python modundaki py komutları gibi çalışır. Maalesef Fortran desteği yok.

+0

Başlamak için iyi bir tavsiye! Cygdb ile çalışan grafiksel önekler var mı? Ben bulamadım. Ayrıca, yapı dizini 'cygdb' çalıştırmak için garip buluyorum. – AlexE

+1

"ddd --pydb --debugger cygdb" veya "ddd --gdb --debugger cygdb" yi "cygdb" yi çalıştırmak için "ddd" yi ve "gdb" veya "pydb" gibi davranmayı deneyebilirsiniz. Ne kadar işlevsellik alacağınızdan emin değilsiniz. – r3m0t

+0

'ddd' ile aşina değilim, ama en azından temel özellikler görünüşte çalışır (sistem işlevlerine girmediğim sürece). Değişkenleri tıklayarak aynı görselleştirmeyi elde ediyorum, bu yüzden komut satırına ek bir değer var. Görünüşe göre, kullanılan Fortran rutinleri hata ayıklama sembolleri ile derlendiği sürece, Fortran koduna girmek de mümkündür! Şimdi sadece ddd'ye aşina olmam gerekiyor. Teşekkür ederim! – AlexE