Ruby-Debug mit Ruby 1.9.3?


70

Ich habe gerade auf Ruby 1.9.3p0 und Rails 3.1.1 aktualisiert. Wenn ich jetzt versuche, den Server zu starten, beschwert er sich, dass ich ihn installieren sollte ruby-debug, obwohl er bereits installiert ist.

% rails server --environment=development --debug
=> Booting WEBrick
=> Rails 3.1.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug'
Exiting

In meinem Gemfile habe ich

# see: http://stackoverflow.com/questions/1083451/debugging-in-ruby-1-9
gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"

Ist es möglich, Debug mit der neuesten Version von Ruby auszuführen?


Antworten:


102

Update (28. April 2012)

Probieren Sie das neue Debugger- Juwel als Ersatz für Ruby-Debug.

( Gutschrift an @ryanb )


Update (2. März 2012)

Die Installation von linecache19 und ruby-debug-base19 kann einfach durchgeführt werden mit:

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

( Dank an @fredostarr )


Ursprüngliche Antwort

Haben Sie sich Ruby-Debug19 auf Ruby-1.9.3-Preview1 angesehen ?

Hier ist eine vorübergehende Lösung: http://blog.wyeworks.com/2011/11/1/ruby-1-9-3-and-ruby-debug

Auszug aus der Website:

Laden Sie zuerst linecache19-0.5.13.gem und ruby-debug-base19-0.11.26.gem von http://rubyforge.org/frs/?group_id=8883 herunter , dann…

$ gem install linecache19-0.5.13.gem 
Building native extensions.  This could take a while...
Successfully installed linecache19-0.5.13
1 gem installed
$ gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=/Users/santiago/.rbenv/source/ruby-1.9.3-p0  
Building native extensions.  This could take a while...
Successfully installed ruby-debug-base19-0.11.26
1 gem installed
$ irb
irb(main):001:0> require 'ruby-debug'
=> true

3
Das Problem bei diesem Ansatz besteht darin, dass diese Schritte das umgehen Gemfileund vor dem Ausführen einen manuellen Schritt hinzufügen bundle install. Ich habe eine Lösung geschrieben, mit der Sie Bundler
chuckg

11
Probieren Sie das neue Juwel "Debugger" aus: gem 'debugger' github.com/cldwalker/debugger
ryanb

Update: Ich habe diese Edelsteine ​​verpackt und auf Gemfury gelegt. Wenn Sie Bundler verwenden, ist es schön, wenn Sie sich an das --with-ruby-include erinnern.

1
Der Debugger ist großartig. Das funktioniert. Meine Antwort ist auf ein eigenes Schwert gesprungen.

So konnte ich es auf meiner lokalen Box für rvm Ruby 1.9.3 installieren: - gist.github.com/4132084 . Hth ..
Boddhisattva

33

Die Installation von linecache19 und ruby-debug-base19 kann einfach durchgeführt werden mit:

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

Danke @fredostarr! Sehr schön.
Don Leatham

1
Um in Schienen zu funktionieren, musste ich außerdem mein Gemfile gem 'linecache19', '>= 0.5.13' gem 'ruby-debug-base19', '>= 0.11.26' gem 'ruby-debug19'
Jacob am

7
Probieren Sie das neue Juwel "Debugger" aus: gem 'debugger' github.com/cldwalker/debugger
ryanb

@ryanb Vielen Dank, mein Herr! Ich hatte Angst, rdebug mit 1.9.3 zum Laufen zu bringen (und delay_job verursachte Chaos mit 1.9.2-p290)
vfilby

5

Jemand anderes hat in einem Kommentar geschrieben, um Pry auszuprobieren, was ich auch getan habe. Folgendes ist für Rails erforderlich:

# Gemfile
gem 'pry-rails'


# In your Rails Project where you want a 'debugger'

puts 'i want to insert some code between this'

binding.pry

puts 'and this'

Unmittelbar nach der Installation stelle ich fest, dass mein .irbrcGerät nicht geladen wird, sodass ich keine hübsche Konsolenausgabe erhalte. Ich habe dies auch zu meinem '~ / .pryrc' hinzugefügt.

# setting up pry to have irb helpers like reload!
if defined?(Rails) && Rails.env
  extend Rails::ConsoleMethods
end

Pry hat einige nette Funktionen, die ich ausprobieren wollte, und ich werde möglicherweise noch zu Ruby-Debug zurückkehren, sobald es eine einfache Möglichkeit gibt, es in ein Rails-Projekt für Ruby 1.9.3 zu integrieren. Ich kann den Curl-Befehl anhand der anderen Antworten ausführen, aber darauf muss ich meine Teamkollegen für unser Rails-Projekt hinweisen, damit es IMO nicht gut skaliert.


4

Vielleicht nicht die endgültige Antwort auf diese Frage, aber ich wurde hier von einer Kette geschlossener Duplikate geführt.

Für mich war das Problem, dass ich ein Projekt sowohl in Ruby 1.8 als auch in Ruby 1.9 ausführte und mein Gemfile diese Änderung benötigte:

gem 'debugger', :require => 'ruby-debug', :platforms => :mri_19
gem 'ruby-debug', :platforms => :mri_18

Jetzt funktioniert es für beide Rubine.

Weitere Informationen finden Sie hier: http://gembundler.com/man/gemfile.5.html#PLATFORMS-platforms-


2

Für Windows-Benutzer:

Erster Download: linecache19-0.5.13.gem und ruby-debug-base19-0.11.26.gem Von: http://rubyforge.org/frs/?group_id=8883&release_id=46303

Annahme: Ruby befindet sich in c: \ Ruby1.93

Legen Sie die heruntergeladenen Gem-Dateien in c: \ temp ab (linecache19-0.5.13.gem und ruby-debug-base19-0.11.26.gem).

Führen Sie dann über die Befehlszeile aus:

gem install c: \ temp \ linecache19-0.5.13.gem

gem install c: \ temp \ ruby-debug-base19-0.11.26.gem - --with-ruby-include = C: \ Ruby1.93 \ include \ ruby-1.9.1 \ ruby-1.9.3-p0


Der Standardpfad für Ruby Installer lautet C: \ Ruby193. Dies erfordert auch das DevKit.

1

Übrigens, wenn Sie den neuesten Patch für ruby1.9.3 (falcon, https://gist.github.com/1688857 ) verwenden, verwenden Sie die folgenden Befehle

wget http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem
wget http://rubyforge.org/frs/download.php/75415/ruby-debug-base19-0.11.26.gem

gem install linecache19-0.5.13.gem
## with rvm: 
gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$HOME/.rvm/src/ruby-1.9.3-p0-falcon
## with rbenv (this is a guess): 
gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$HOME/.rbenv/source/ruby-1.9.3-p0-falcon

Ist bekannt, dass jemand dies in der Produktion ausführt?

1
Gut. Ich würde es nicht vertrauen, eine große Site zu betreiben ... hatte zu viele leichte Randfälle und dies ist nur zu blutig. Warten Sie ein paar Monate, die meisten Insekten sollten bis dahin ausgebügelt sein. Prost!
Mindreframer

Checked around: Falcon Patch und Freunde sind ziemlich großartig, um zumindest lokale Entwickler zu beschleunigen.

1

Siehe meine Antwort hier: Ruby-Debug funktioniert nicht - Stack Overflow

Es geht darum, das Ruby-Debugging mit dem folgenden Setup zum Laufen zu bringen

  • Mac OS X Lion 10.7.2
  • Aptana Studio 3 (Build 3.0.8.201201201658)
  • Mit rvm habe ich in meinem Projektarbeitsverzeichnis eine .rvmrc-Angabe:

    rvm use ruby-1.9.3-p0@mygemset
    

Grundsätzlich musste ich verwenden:

linecache19 (0.5.13)
ruby-debug-base19x (0.11.30.pre10)
ruby-debug-ide (0.4.16)

Beachten Sie, dass ich nicht ruby-debug-base19 verwende, sondern ruby-debug-base19x

Ich hoffe das hilft!

- Freddy



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.