Ruby 1.9'da hata ayıklama


90

Ruby 1.9'da hata ayıklamak için ne kullanıyorsunuz? rdebug uyumlu görünmüyor .. orada bir şey var mı?


10
İlk cevabı görmezden gelin; ruby-debug19artık güncel değil.
— Rob Howard

Yanıtlar:


50

Not: Bu cevap doğruydu, ancak artık güncel değil. Aşağıdaki doğru cevaba bakın. TL; DR: 'hata ayıklayıcıyı' şimdi kullanın.

ruby-debug artık Ruby 1.9.x ile kullanılabilir. Bkz http://www.github.com/mark-moseley

Kurmak için (1.9 Ruby kurulumunda gem kullanarak):

gem install ruby-debug19

(belki de önünde gerekli 'sudo' ile).


Üstün bir girişimde bulundum ve işe yaramadı. Buna bakmak için biraz daha zamana ihtiyacım var.
— Mark Moseley


Bu harika bir haber! Teşekkür ederim!
— andi

iyi iş :) ama bir fatgem yapabilir misiniz (hem 1.8 hem de 1.9 ruby-debug sürümlerini içerir) böylece rubydebbug19 yapmayı hatırlamak zorunda kalmayız? :)
— horseyguy

4
Sırf zamanın geçişi onu şimdi yanlış cevap yaptı diye buna olumsuz oy vermek adil değil. SO'nun, artık kimseye yararlı olmayan eski yanıtların yazarlarını cezalandırmadan , yeni doğru yanıtın listelenen ilk yanıt olmasına izin vermek için bu tür kullanım durumlarını ele almanın bir yoluna ihtiyacı vardır.
— iconoclast

167

ruby-debug19artık korunmuyor. Diğer tüm cevaplar güncel değildir.

Ancak bir alternatif var:

debugger kurtarmak için!

Bunu şuraya koy Gemfile:

gem 'debugger', group: [:development, :test]

Sadece çalışıyor. - Ve 3.2'den beri Gemfile raylarında yer almaktadır ruby-debug19. Tamamen aynı işlevselliğe sahiptir ve aktif olarak korunur.


1
Güzel çalışıyor. Ruby-debug'ı elle kurmaktan çok daha iyi. Teşekkürler.
— manu_v

5
Bunun gerçekten en iyi cevap olarak yükseltilmesi gerekiyor.
— Matt Zukowski

2
Evet, gerçekten bu cevap en iyi cevap olmalı.
— Nazar Hüseyin

Ve bunun Gemfile'da gerçekte nereye gittiğine ne dersiniz?
— Rig

Önemli değil. Onu istediğiniz yere koyun, sadece bir grup bloğunun içine değil (içinde group :development do ... endveya benzeri), çünkü zaten bir grup içeriyor.
— iblue

70

RUBY 2.0+ İÇİN GÜNCELLEME ve TAKİP ET

byebug , Ruby 2.0+ için şu anda önerilen hata ayıklayıcıdır

Bu sorun burada belgelenmiştir ve hata ayıklayıcının yazarı cldwalker, hata ayıklayıcının Ruby 1.9.2 ve 1.9.3 kapsamına alınacağını belirtmektedir.

GÜNCELLEME 2

Artık korunmayan bir yer bulamasam bile ruby-debug'ın aktif olarak sürdürülmediği doğrudur.

Yeni mücevher ile başlamak için yardıma ihtiyacınız olursa , yeni hata ayıklayıcı mücevherini kullanabilirsiniz, Ryan Bates raylarının dökümünü görebilirsiniz .

Gemfile dosyanıza şunu koyun:

gem 'debugger', group: [:development, :test]

Daha sonra debuggeranahtar kelimeyi kullanarak kodunuzun herhangi bir yerine bir kesme noktası ekleyebilirsiniz .

HALA KULLANABİLİRSİNİZ

linecache19 ve ruby-debug-base19 ile:

bash <<(curl -L https://raw.github.com/gist/1333785 )

ESKİ CEVAPLAR

Rvm, Ruby 1.9.1-p378 ile buna bir ekleme. Gerçek hikaye, ruby-debug 1.9.x'e hazır olsa bile linecache-0.43'ün hazır olmadığıdır. Çözüm, kurmaktır:

gem install ruby-debug19

Bu benim için sorunu çözüyor.

ESKİ GÜNCELLEME

Ruby 1.9.2 ve Rails 3 hata ayıklamayla ilgili sorun yaşıyorsanız:

gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"

Gemfile'ınızda ve

bundle install

Seni yine mutlu bir hata ayıklayıcı yapacak.


1
Teşekkürler, benim için daha uygun cevap buydu. Ama belki de bunun nedeni, neredeyse bir yıl sonra cevap vermiş olmanız ve bu konuda her şeyin iyi yönde değişmesidir.
— işaretleyin

3

Deneyebileceğin bazı şeyler

1) Ruby'nin normal hata ayıklayıcısıyla çalıştırın -rdebug [1] tür yavaş

2) unroller gem ile çalıştırın [kokuyor, çok yavaş]

3) çok sayıda baskı ifadesini hızlı kullanın, daha az iç gözlem mümkün

4) bir irb istemine bırakın ve oradan bir kod çalıştırın.

kodu kendi etrafında listeleyen kendi "irb'ye bırak isteminizi" oluşturarak [nerede olduğunuzu keşfetmek için arayanı kullanın] ardından normal bir irb istemine bırakarak kodu listeleyebilirsiniz.

5) belki 1.9 uyumlu modda jruby bir hata ayıklayıcıya sahiptir?

[1] http://beaver.net/rdebug/index-0.html


3

Ruby-debug19'u yükledikten sonra hala sorun yaşıyorsanız ruby-debug-base19'u güncellemeyi deneyin. Hatalarım vardı ve bunu yapana kadar WEBrick'i hata ayıklama modunda çalıştıramadım.

gem update ruby-debug-base19

Oh, ve tüm sıkı çalışmanız için teşekkürler Bay Moseley!


2

Cevabımı burada görün: Ruby-debug çalışmıyor - Stack Overflow

Ruby hata ayıklamasının aşağıdaki kurulumla çalışmasını sağlamakla ilgilidir

  • Mac OS X Lion 10.7.2
  • Aptana Studio 3 (Derleme 3.0.8.201201201658)
  • Rvm kullanarak, proje çalışma dizinimde şunu belirten bir .rvmrc var:

    rvm use ruby-1.9.3-p0@mygemset
    

Umarım bu yardımcı olur!

- Freddy


2

Aşağıdakileri kullandım ve benim için harika çalışıyor:

gem 'hata ayıklayıcı', grup: [: geliştirme,: test]

ruby 1.9.3p194 (2012-04-20 revizyon 35410) [x86_64-linux] rayları 3.2.8


0

Netbeans, RoR için iyi bir IDE'dir. Ayrıca iyi bir hata ayıklayıcı.


1
Yanılıyorsam düzeltin, ancak hata ayıklayıcının Ruby 1.9.1 (C uygulaması) için çalıştığına henüz inanmıyorum. En azından onu çalıştırmakta başarılı olamadım.
— JP Richardson

0

Ruby 1.9.1-p243 sürümü çıktı ve uyumlu ruby-debug-ide de düzgün çalışıyor. Aşağıdaki komutu kullanarak ruby-debug-ide'yi kurun:

gem install ruby-debug-ide

Bu, ruby-debug-base19 ve ruby-debug-ide mücevherlerini kuracaktır. Ancak bundan önce RubyForge'da bulunan Geliştirme kiti belgelerini takip ederek mingw'yi başarıyla kurduğunuzdan emin olun .


0

Ruby-debug-ide19 gem'de en son özellikler mevcuttur.


0

İhtiyaçlarınıza bağlı olarak pek çok seçenek var.

Kullandığım gözetlemek-hamle Ben yerden ayıklama modu sağ bunları tarafından içeride önceki komuta olanları içine "bak geri"-re yürütme çünkü.


-1

kimse kullanmaz: ruby ​​-rdebug script.rb

o zaman şunu kullanabilirsiniz: b script.rb: ## (burada ## geçerli bir ruby ​​komutunun satır numarasıdır) aksi takdirde rubygems'in veya gerekli kod parçalarınızdan birinin ortasında olabilirsiniz.

Ardından bir sonraki kesme noktasını b: ## olarak ayarlayabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.