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.