当我写debugger
时,它无法启动:
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
如果我运行rake my:task --debugger
,它会立即将我返回到控制台。如何调试rake任务?
答案 0 :(得分:40)
我找到了解决方案。
$ gem install ruby-debug
$ ruby-debug rake my:task
或某些系统
$ rdebug rake my:task
答案 1 :(得分:26)
Andrey Kouznetsov的回答对我使用Ruby 1.9.3不起作用。 ruby-debug gem似乎不支持Ruby 1.9。我不得不使用调试器gem:https://github.com/cldwalker/debugger。
gem 'debugger'
添加到我的Gemfile开发组。bundle
。require 'debugger'
添加到我的佣金任务的顶部。debugger
的调用,我想要一个断点。rake my:task
。答案 2 :(得分:9)
答案 3 :(得分:6)
这种方法对我不起作用。我刚刚在我的代码中添加了这个:
require 'ruby-debug'
# ... code ...
debugger
答案 4 :(得分:1)
ByeBug是2.0 +的另一个
答案 5 :(得分:1)
Visual Studio Code内置了非常好的调试器。如果有人发现这种搜索方式让它与rake一起工作,那么这是一个有效的配置:
{
"name": "Debug a rake task",
"type": "Ruby",
"request": "launch",
"useBundler": true,
"cwd": "${workspaceRoot}",
"program": "/usr/local/bin/rake",
"args": ["all"]
}
这将运行rake任务all
。您可能必须更改rake的路径,我没有找到在PATH中运行该路径的方法。