Débogage dans ruby ​​1.9


90

Qu'est-ce que vous utilisez pour le débogage dans ruby ​​1.9? rdebug ne semble pas compatible ... y a-t-il quelque chose?


10
Ignorez la première réponse; ruby-debug19est obsolète maintenant.
Rob Howard

Réponses:


50

Remarque: cette réponse était correcte mais n'est plus à jour. Voir la bonne réponse ci-dessous. TL; DR: utilisez 'debugger' maintenant.

ruby-debug est maintenant disponible avec Ruby 1.9.x. Voir http://www.github.com/mark-moseley

Pour installer (en utilisant gem sur l'installation de 1.9 Ruby):

gem install ruby-debug19

(avec peut-être le «sudo» nécessaire devant lui).


J'ai fait une tentative superficielle et cela n'a pas fonctionné. Besoin d'un peu plus de temps pour regarder cela.
Mark Moseley

ruby-debug-ide fonctionne maintenant - vous pouvez obtenir le nouveau joyau sur cloud.github.com/downloads/mark-moseley/ruby-debug/…
Mark Moseley

C'est une super nouvelle! Je vous remercie!
andi

beau travail :) mais pourriez-vous faire un fatgem (contenant à la fois les versions 1.8 et 1.9 ruby-debug) pour que nous n'ayons pas à nous souvenir de faire rubydebbug19? :)
horseyguy

4
Il ne semble pas juste de voter contre cela simplement parce que le temps qui passe en a fait maintenant la mauvaise réponse. SO a besoin d'un moyen de gérer de tels cas d'utilisation, pour permettre à la nouvelle bonne réponse de devenir la première répertoriée, sans pénaliser les auteurs d'anciennes réponses qui ne sont plus utiles à personne.
iconoclaste

167

ruby-debug19n'est plus maintenu. Toutes les autres réponses sont dépassées.

Mais il y a une alternative:

debugger à la rescousse!

Mettez ceci dans votre Gemfile:

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

Cela fonctionne juste. - Et il est inclus dans les rails Gemfile depuis 3.2.quelque chose à remplacer ruby-debug19. Il a exactement les mêmes fonctionnalités et est activement maintenu.


1
Fonctionne bien. Bien mieux que d'installer ruby-debug à la main. Merci.
manu_v

5
Cela doit vraiment être déplacé en tant que première réponse.
Matt Zukowski

2
Oui, vraiment cette réponse doit être la meilleure réponse.
Nazar Hussain

Et que diriez-vous où cela va réellement dans le Gemfile.
Rig

N'a pas d'importance. Placez-le où vous voulez, mais pas dans un bloc de groupe (pas dans group :development do ... endou autre), car il contient déjà un groupe.
iblue

70

MISE À JOUR POUR RUBY 2.0+ et SUIVANT

byebug est le débogueur actuellement recommandé pour Ruby 2.0+

Ce problème a été documenté ici , et cldwalker, l'auteur du débogueur, note que le débogueur sera étendu à Ruby 1.9.2 et 1.9.3.

MISE À JOUR 2

Il est vrai que ruby-debug n'est pas activement maintenu même si je ne trouve aucun endroit qui ne soit plus maintenu.

Vous pouvez utiliser la nouvelle gemme de débogage si vous avez besoin d'aide pour commencer avec la nouvelle gemme, vous pouvez voir les rails de Ryan Bates coulés .

Dans votre Gemfile mettez:

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

Vous pouvez ensuite ajouter un point d'arrêt n'importe où dans votre code à l'aide du debuggermot - clé.

VOUS POUVEZ TOUJOURS UTILISER

linecache19 et ruby-debug-base19 avec:

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

ANCIENNES RÉPONSES

Juste un ajout à ce sujet avec rvm, ruby ​​1.9.1-p378. L'histoire vraie est que même si ruby-debug est prêt pour la version 1.9.x, linecache-0.43 ne l'est pas. La solution est d'installer:

gem install ruby-debug19

Cela résout le problème pour moi.

ANCIENNE MISE À JOUR

Si vous rencontrez des problèmes avec le débogage de ruby ​​1.9.2 et Rails 3, mettez:

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

Dans votre Gemfile et faire un

bundle install

Fera de vous un débogueur heureux à nouveau.


1
Merci, pour moi, c'était la réponse la plus appropriée. Mais c'est peut-être parce que vous avez répondu près d'un an plus tard et que les choses ont changé pour de bon à cet égard.
marque le

3

Certaines choses que vous pourriez essayer

1) lancez-le avec le débogueur normal de ruby ​​-rdebug [1] un peu lent

2) lancez-le avec un joyau dérouleur [genre de puant, très lent]

3) utiliser rapidement un grand nombre d'instructions d'impression, un peu moins d'introspection possible

4) passez à une invite irb et exécutez du code à partir de là.

vous pouvez lister le code en créant votre propre "drop to irb prompt" qui listait le code autour de lui [utilisez caller pour découvrir où vous êtes] puis passez à une invite irb normale.

5) peut-être que jruby en mode 1.9 compat a un débogueur?

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


3

Si vous rencontrez toujours un problème après l'installation de ruby-debug19, essayez de mettre à jour ruby-debug-base19. J'ai eu des erreurs et je n'ai pas pu exécuter WEBrick en mode débogage avant de l'avoir fait.

gem update ruby-debug-base19

Oh, et merci M. Moseley pour tout votre travail acharné!


2

Voir ma réponse ici: Ruby-debug ne fonctionne pas - Stack Overflow

Il s'agit de faire fonctionner le débogage Ruby avec la configuration suivante

  • Mac OS X Lion 10.7.2
  • Aptana Studio 3 (version 3.0.8.201201201658)
  • En utilisant rvm, dans le répertoire de travail de mon projet, j'ai un .rvmrc indiquant:

    rvm use ruby-1.9.3-p0@mygemset

J'espère que ça aide!

- Freddy


2

J'ai utilisé ce qui suit et cela fonctionne très bien pour moi:

gem 'debugger', groupe: [: développement,: test]

ruby 1.9.3p194 (20/04/2012 révision 35410) [x86_64-linux] rails 3.2.8


0

Netbeans est un bon IDE pour RoR. Bon débogueur aussi.


1
Corrigez-moi si je me trompe, mais je ne pense pas que le débogueur fonctionne encore pour Ruby 1.9.1 (implémentation C). Au moins, je n'ai pas réussi à le faire fonctionner.
JP Richardson

0

La version ruby ​​1.9.1-p243 est sortie et ruby-debug-ide compitable fonctionne également correctement. Installez ruby-debug-ide à l'aide de la commande suivante:

gem installer ruby-debug-ide

Cela installera les gemmes ruby-debug-base19 et ruby-debug-ide. Mais avant cela, assurez-vous d'installer correctement le mingw en suivant la documentation du kit de développement disponible sur RubyForge .


0

Les dernières fonctionnalités sont disponibles dans le gem ruby-debug-ide19.


0

Il y a beaucoup de choix, selon vos besoins.

J'utilise des mouvements de levier parce que je peux "regarder en arrière" ce qui s'est passé à l'intérieur de la commande précédente en les réexécutant en mode débogage directement de l'endroit.


-1

personne n'utilise: ruby ​​-rdebug script.rb

alors vous pouvez utiliser: b script.rb: ## (où ## est le numéro de ligne d'une commande ruby ​​valide) sinon vous allez peut-être être au milieu de rubygems ou de l'un de vos morceaux de code requis.

Ensuite, vous pouvez simplement définir le point d'arrêt suivant comme b: ##

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.