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.
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.
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.
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:
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?
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é!
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 .
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.
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: ##
ruby-debug19
est obsolète maintenant.Réponses:
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):
(avec peut-être le «sudo» nécessaire devant lui).
la source
ruby-debug19
n'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
: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.la source
group :development do ... end
ou autre), car il contient déjà un groupe.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:
Vous pouvez ensuite ajouter un point d'arrêt n'importe où dans votre code à l'aide du
debugger
mot - 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:
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:
Dans votre Gemfile et faire un
Fera de vous un débogueur heureux à nouveau.
la source
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
la source
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.
Oh, et merci M. Moseley pour tout votre travail acharné!
la source
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
En utilisant rvm, dans le répertoire de travail de mon projet, j'ai un .rvmrc indiquant:
J'espère que ça aide!
- Freddy
la source
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
la source
Netbeans est un bon IDE pour RoR. Bon débogueur aussi.
la source
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:
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 .
la source
Les dernières fonctionnalités sont disponibles dans le gem ruby-debug-ide19.
la source
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.
la source
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: ##
la source