Quand j'écris debugger
, il ne commence 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 immédiatement à la console. Comment est-il possible de déboguer des tâches rake?
La réponse d'Andrey Kouznetsov n'a pas fonctionné pour moi avec Ruby 1.9.3. Le joyau de Ruby-debug ne semble pas supporter Ruby 1.9. Je devais utiliser la gem du débogueur: https://github.com/cldwalker/debugger .
gem 'debugger'
au groupe de développement de mon Gemfile.bundle
.require 'debugger'
en haut de ma tâche de rake.debugger
où je voulais un point d'arrêt dans ma tâche de rake.rake my:task
.J'ai trouvé la solution.
$ gem install Ruby-debug
$ Ruby-debug rake my:task
ou sur certains systèmes
$ rdebug rake my:task
Je recommande fortement pry pour cela
bundle install pry
require 'pry'
rake ...
Dans votre fichier rake task:
binding.pry
Cette approche n'a pas fonctionné pour moi. Je viens d'ajouter ceci dans mon code:
require 'Ruby-debug'
# ... code ...
debugger
Code Visual Studio a un très bon débogueur, intégré. Si quelqu'un trouve cela à la recherche d'un moyen de le faire fonctionner avec rake, voici une configuration qui fonctionne:
{
"name": "Debug a rake task",
"type": "Ruby",
"request": "launch",
"useBundler": true,
"cwd": "${workspaceRoot}",
"program": "/usr/local/bin/rake",
"args": ["all"]
}
Cela exécuterait la tâche de rake all
. Vous devrez peut-être changer le chemin pour ratisser, je n'ai pas trouvé le moyen de le lancer dans PATH.
ByeBug est un autre pour 2.0+