Ruby on Rails: le débogage des tâches rake
Quand j'écris debugger
il ne démarre pas:
NoMethodError: undefined method `run_init_script' for Debugger:Module
from /usr/local/lib/ruby/gems/1.8/gems/ruby-debug-base-0.10.3/lib/ruby-debug-base.rb:239:in `debugger'
from (irb):4
Si je lance rake my:task --debugger
,il me renvoie à la console immédiatement. Comment est-il possible de déboguer râteau tâches?
- Cochez cette case si vous souhaitez déboguer de Rubymine. stackoverflow.com/questions/4401602/rubymine-debugger-with-rake
Vous devez vous connecter pour publier un commentaire.
Andrey Kouznetsov la réponse n'a pas fonctionné pour moi à l'aide de Ruby 1.9.3. Le rubis-debug gem ne semble pas à l'appui de Ruby 1.9. J'ai dû utiliser le débogueur gem: https://github.com/cldwalker/debugger.
gem 'debugger'
à mon Gemfile de développement du groupe.bundle
.require 'debugger'
vers le haut de ma tâche rake.debugger
où je voulais un point d'arrêt dans ma tâche rake.rake my:task
.require 'debugger'
au sommet est de mettre inlinerequire 'debugger'; debugger
. De cette façon, lorsque vous supprimez ledebugger
états, ne pas oublier de supprimer lerequire
.J'ai trouvé la solution.
ou sur certains systèmes
rdebug
au lieu deruby-debug
Debugger.settings[:autoeval] = true
qui sera la cause de la typique du comportement de rails où tout ce que vous tapez s'exécute dans l'étendue duself
où vous avez mis ledebugger
appel.Je recommande fortement levier pour cette
Dans votre tâche rake fichier:
Cette approche n'a pas fonctionné pour moi. J'ai juste ajouté ceci dans mon code:
ByeBug en est une autre pour la 2.0+
https://github.com/deivid-rodriguez/byebug
Le Code De Visual Studio a assez bon débogueur intégré. Si quelqu'un trouve cette recherche d'une voie pour qu'il fonctionne avec le râteau, voici une configuration de travail:
Cela irait à la tâche rake
all
. Vous pourriez avoir à changer le chemin d'accès à un râteau, je n'ai pas trouver de moyen d'exécuter l'un en CHEMIN.all
ne fonctionne pas pour moi. J'ai utilisérvm
srake
et j'ai misargs
le nom de ma tâche avec un point d'arrêt sur la première ligne, et il a travaillé pour moi.