Bir yakut geminin içinde bir çok Hayalet Metodu var olabileceğinden, bir ruby geminin iç mekanizmasını incelemek iyi bir fikir değil. Kaynak kodunu statik olarak okuma. Ayırma noktasını ayarlayabilmem ve işlerin dinamik olarak nasıl çalıştığını görebilmem için, hata ayıklama amacıyla üçüncü bir parçanın kaynak dosyasını hata ayıklamak için kullanmanın bir yolu var mı?
BTW, "require" ifadesinin "Go To-> Implementations" içerik menüsüne veya üçüncü taraf bir geminin diğer sembolüne tıklayarak RubyMine'de üçüncü taraf bir geminin kaynak dosyasına gitmeyi denedim Başarı olmadan, (require 'watir'
). Ruby gibi bir dinamik yazım dilinin bir IDE'sinin bir sembol navigasyonu başarısız olması normal midir?Ruby'de üçüncü şahısların hatalarını ayıklamanın en iyi yolu
cevap
Bunu yapmak için daha iyi bir yolu olup olmadığını bilmek isterdim, ama ne kadar genellikle yapın:
- sizin Gemfile için yakut-ayıklama mücevher ekleyin (ya da eğer yakut-debug19 Ruby 1.9.2)
bundle show gemname
yaparak Gemiyi bulun. Mac'tayım, bu yüzden bunu genelde pbcopy'a pipettim, böylece panoya kopyalanır.bundle show rails | pbcopy
- Favori dizininizde mücevher dizini açın.
mvim /path/to/gem/directory
- Kesme noktasını koymak istediğiniz dosyaya ve çizgiye gidin * ve söz konusu satırın üstüne
debugger
ekleyin. - sayfayı yenileyin, koşma testi veya ne yaparsak sen Gem dosya yürütme ayıklayıcıya durduğunda
- , siz (
p variable_name
) değişkenleri inceleyin olabilir yürütmek için almak istiyorsunuz ve hareket hattı ruby debugger commands ile çizgiyle.
*, ancak
, doğru 100% semboller, yöntem vb kökenlerini tahmin etmek zordur
Ben kaynak kodu analiz gerekiyor üçüncü şahıs taşlar bir sürü başa ve Bu görev için en iyi aracın Netbeas + 'ın Ruby ve Rails eklentileri olduğunu buldum.
- aslında bazı hatalar vardır
** ** (iz ve tüm) çalışmak (diğer alternatiflere aksine) bağımlı taşlar kaynak kodunda iyi navigasyon
ile uğraşmayı öğrendim. Genellikle yaptığım şey kesme noktalarını belirleyip kodu çalışma zamanında analiz etmektir.
Şu anda kabul edilen yanıt önerildiği üzere Gem dosyalarını düzenleme önleyeceğini lib/gemname.rb başlamalıdır. Bunun yerine, uygulama dosyalarınızdan birine debugger
komutunu koyun ve mücevherde bir kesme noktası belirlemek için break
komutunu kullanın. Ben işte bir gemset
ile rvm
kullanıyorum ben böyle yaparız:
break /Users/chris/.rvm/gems/[email protected]<gemset>/gems/<gem_name>-<gem-version>/<path_to_file>:<line_number>
Kabul edilen cevap, aynı Gem'i kullanıyorlarsa aynı makinedeki diğer uygulamalarla etkileşime girer mi? Eğer öyleyse, bu çözüm bu problemden kaçınacak gibi görünüyor. – flyingL123
Evet. Bütün nokta bu. Seçeneklerin dışında sürece, onları çatal istekli sürece Gem dosyaları tüm ücret ödemeden kaçınmak istiyorum –
- 1. Perl SOAP modülünde 'Yasa dışı alan adı' hatalarını ayıklamanın en iyi yolu nedir?
- 2. Ayakkabı uygulamalarında hata ayıklamanın en iyi yolu nedir?
- 3. Üretim sunucularında php hatalarını bastırmanın en iyi yolu
- 4. Jmeter'da en iyi yolu bulmanın en iyi yolu nedir?
- 5. en iyi yolu?
- 6. en iyi yolu
- 7. en iyi yolu
- 8. Google eş anlamlılarını ayıklamanın yolu
- 9. Visual Studio 2008'de bir Windows hizmeti programında hata ayıklamanın en iyi yolu nedir
- 10. Javascript'te bir int ayrıştırmanın en iyi yolu
- 11. Linq'e katılmanın en iyi yolu
- 12. Spree'yi özelleştirmenin en iyi yolu?
- 13. Selenyum webdriver üzerinde StaleElementReferenceException en iyi yolu
- 14. SQL güncellemesi sırasında döküm hatalarını atlamanın en iyi yolu nedir ve devam edilsin mi?
- 15. Ruby on Rails: Bir üçüncü tarafa yapılan bir başarısız çağrıyı sınamanın en iyi yolu API
- 16. Bir üçüncü taraf nesnesini ruby ile alaylamanın en iyi yolu nedir?
- 17. Kendi GPG/PGP parolanızı güçlendirmek için en iyi yolu kullanmanın en iyi yolu nedir?
- 18. Hata iletilerini işlemenin en iyi yolu
- 19. Node.js ile MongoDB'yi kullanmanın en iyi yolu?
- 20. ServiceManager'ı Model Sınıfında kullanmanın en iyi yolu?
- 21. Apache günlük dosyalarını döndürmenin en iyi yolu
- 22. Dikdörtgen nesneyi ayırmanın en iyi yolu
- 23. core.clj'yi kurmanın en iyi yolu nedir?
- 24. Git erişiminin en iyi yolu Git
- 25. Dosyayı sunucudan indirmenin en iyi yolu nedir
- 26. Görüntüyü sunucuya aktarmanın en iyi yolu?
- 27. Ember.js'de olayları işlemenin en iyi yolu nedir?
- 28. Bir "araç turu" sağlamanın en iyi yolu
- 29. Perl'de ekranı temizlemenin en iyi yolu nedir?
- 30. Bir animasyonu sürmenin en iyi yolu nedir?
teşekkürler. Bu harika çalışıyor. FWIW, bu talimatları [Pry] (https: // rubygems) ile kullandım.Ruby-debug yerine org/gems/pry) ve aynı zamanda çalıştı. –
Aynı Gemiyi kullanıyorlarsa, aynı makinedeki diğer uygulamaları kesintiye uğratır mı? – flyingL123
@ flyingL123, Uygulamanız olarak hata ayıklama modunda çalışırlarsa, diğerlerini kesintiye uğratacağını varsayalım. – parzival