Debuggen in Ruby 1.9


90

Was benutzt ihr zum Debuggen in Ruby 1.9? rdebug scheint nicht kompatibel zu sein .. gibt es da draußen etwas?


10
Ignoriere die erste Antwort; ruby-debug19ist jetzt veraltet.
Rob Howard

Antworten:


50

Hinweis: Diese Antwort war korrekt, ist aber jetzt veraltet. Siehe die unten stehende richtige Antwort. TL; DR: Verwenden Sie jetzt 'Debugger'.

Ruby-Debug ist jetzt mit Ruby 1.9.x verfügbar. Siehe http://www.github.com/mark-moseley

So installieren Sie (mit gem bei der Installation von 1.9 Ruby):

gem install ruby-debug19

(mit vielleicht dem notwendigen 'sudo' davor).


Ich habe einen flüchtigen Versuch gemacht und es hat nicht funktioniert. Brauchen Sie noch etwas Zeit, um sich das anzusehen.
Mark Moseley

ruby-debug-ide funktioniert jetzt - Sie können das neue Juwel unter cloud.github.com/downloads/mark-moseley/ruby-debug/…
Mark Moseley

Das sind gute Nachrichten! Danke dir!
andi

Gute Arbeit :) Aber könnten Sie ein Fatgem machen (das sowohl 1.8 als auch 1.9 Ruby-Debug-Versionen enthält), damit wir nicht daran denken müssen, rubydebbug19 zu machen? :)
horseyguy

4
Es scheint nicht fair, dies abzulehnen, nur weil der Lauf der Zeit es jetzt zur falschen Antwort gemacht hat. SO benötigt eine Möglichkeit, solche Anwendungsfälle zu behandeln, damit die neue richtige Antwort als erste aufgeführt wird, ohne die Autoren älterer Antworten zu bestrafen, die für niemanden mehr nützlich sind.
Bilderstürmer

167

ruby-debug19wird nicht mehr gepflegt. Alle anderen Antworten sind veraltet.

Aber es gibt eine Alternative:

debugger zur Rettung!

Tragen Sie dies in Ihre Gemfile:

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

Es funktioniert einfach. - Und es ist in den Schienen Gemfile seit 3.2 enthalten ruby-debug19. Etwas zu ersetzen . Es hat genau die gleiche Funktionalität und wird aktiv gewartet.


1
Funktioniert gut. Viel besser als Ruby-Debug von Hand zu installieren. Vielen Dank.
manu_v

5
Dies muss wirklich als oberste Antwort nach oben verschoben werden.
Matt Zukowski

2
Ja, diese Antwort muss wirklich die beste sein.
Nazar Hussain

Und wie wäre es, wo dies tatsächlich in der Gemfile hingeht?
Rig

Ist egal. Platzieren Sie es, wo immer Sie möchten, nur nicht in einem Gruppenblock (nicht in group :development do ... endoder ähnlichem), da es bereits eine Gruppe enthält.
iblue

70

UPDATE FÜR RUBY 2.0+ und FOLGENDES

byebug ist der derzeit empfohlene Debugger für Ruby 2.0+

Dieses Problem wurde hier dokumentiert , und cldwalker, der Autor des Debuggers, stellt fest, dass der Debugger auf Ruby 1.9.2 und 1.9.3 beschränkt sein wird.

UPDATE 2

Es ist wahr, dass Ruby-Debug nicht aktiv gepflegt wird, auch wenn ich nirgendwo etwas finde, das nicht mehr gepflegt wird.

Du kannst den ... benutzen neuen Debugger-Edelstein verwenden, wenn Sie Hilfe benötigen, um mit dem neuen Edelstein zu beginnen. Sie können sehen, wie Ryan Bates-Schienen gegossen werden .

In dein Gemfile setzen:

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

Sie können dann mit dem debuggerSchlüsselwort an einer beliebigen Stelle in Ihrem Code einen Haltepunkt hinzufügen .

SIE KÖNNEN NOCH VERWENDEN

linecache19 und ruby-debug-base19 mit:

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

ALTE ANTWORTEN

Nur ein Add-On dazu mit rvm, Ruby 1.9.1-p378. Die wahre Geschichte ist, dass Linecache-0.43 dies nicht ist, selbst wenn Ruby-Debug 1.9.x bereit ist. Die Lösung besteht darin, Folgendes zu installieren:

gem install ruby-debug19

Dies löst das Problem für mich.

ALTES UPDATE

Wenn Sie Probleme mit Ruby 1.9.2 und Rails 3 Debugging Putting haben:

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

In deiner Gemfile und mache a

bundle install

Wir machen Sie wieder zu einem glücklichen Debugger.


1
Danke, für mich war das die passendere Antwort. Aber vielleicht liegt das daran, dass Sie fast ein Jahr später geantwortet haben und sich die Dinge in dieser Hinsicht endgültig geändert haben.
Markieren Sie den

3

Einige Dinge, die Sie versuchen könnten

1) Führen Sie es mit Rubys normalem Debugger -rdebug [1] aus

2) starte es mit Unroller Gem [Art von Gestank, viel langsam]

3) Verwenden Sie viele Druckanweisungen schnell, eine Art weniger Selbstbeobachtung ist möglich

4) Gehen Sie zu einer irb-Eingabeaufforderung und führen Sie von dort aus Code aus.

Sie können den Code auflisten, indem Sie eine eigene "Drop to IRB-Eingabeaufforderung" erstellen, in der der Code um sich herum aufgelistet ist [verwenden Sie den Anrufer, um herauszufinden, wo Sie sich befinden], und dann zu einer normalen IRB-Eingabeaufforderung wechseln.

5) Vielleicht hat jruby im 1.9-Kompatibilitätsmodus einen Debugger?

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


3

Wenn Sie nach der Installation von ruby-debug19 immer noch ein Problem haben, aktualisieren Sie ruby-debug-base19. Ich hatte Fehler und konnte WEBrick erst dann im Debug-Modus ausführen, wenn ich das getan habe.

gem update ruby-debug-base19

Oh, und danke Herrn Moseley für all Ihre harte Arbeit!


2

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

Ich hoffe das hilft!

- Freddy


2

Ich habe folgendes verwendet und es funktioniert großartig für mich:

Edelstein 'Debugger', Gruppe: [: Entwicklung ,: Test]

ruby 1.9.3p194 (2012-04-20 Revision 35410) [x86_64-linux] Schienen 3.2.8


0

Netbeans ist eine gute IDE für RoR. Guter Debugger auch.


1
Korrigieren Sie mich, wenn ich falsch liege, aber ich glaube nicht, dass der Debugger für Ruby 1.9.1 (C-Implementierung) noch funktioniert. Zumindest ist es mir nicht gelungen, es zum Laufen zu bringen.
JP Richardson

0

Die Ruby 1.9.1-p243-Version ist erschienen und die kompatible Ruby-Debug-Idee funktioniert ebenfalls einwandfrei. Installieren Sie ruby-debug-ide mit dem folgenden Befehl:

gem install ruby-debug-ide

Dadurch werden die Edelsteine ​​ruby-debug-base19 und ruby-debug-ide installiert. Stellen Sie jedoch zuvor sicher, dass Sie das mingw erfolgreich installieren, indem Sie die von RubyForge erhältlichen Development Kit-Dokumente befolgen .


0

Die neuesten Funktionen sind in ruby-debug-ide19 gem verfügbar.


0

Abhängig von Ihren Bedürfnissen gibt es viele Möglichkeiten.

Ich benutze Pry-Moves, weil ich "zurückblicken" kann, was innerhalb des vorherigen Befehls passiert ist, indem ich sie direkt von Ort aus im Debug-Modus erneut ausführe.


-1

benutzt niemand: ruby ​​-rdebug script.rb

Dann können Sie Folgendes verwenden: b script.rb: ## (wobei ## die Zeilennummer eines gültigen Ruby-Befehls ist), andernfalls befinden Sie sich möglicherweise mitten in Rubygems oder einem Ihrer erforderlichen Codestücke.

Dann können Sie einfach den nächsten Haltepunkt als b: ## setzen

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.