irb在启动时失败以暂停我的代码

时间:2018-01-22 00:28:44

标签: ruby

scripts joe$ irb -rdebug arbo.rb
/Users/joe/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/x86_64-    darwin16/continuation.bundle: warning: callcc is obsolete; use Fiber instead
Debug.rb
Emacs support available.

/Users/joe/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/irb/init.rb:23:    unless @CONF[:PROMPT][@CONF[:PROMPT_MODE]]

   18      IRB.init_error
   19      IRB.parse_opts
   20      IRB.run_config
   21      IRB.load_modules
   22  
=> 23      unless @CONF[:PROMPT][@CONF[:PROMPT_MODE]]
   24        IRB.fail(UndefinedPromptMode, @CONF[:PROMPT_MODE])
   25      end
   26    end
   27  

(rdb:1)`

它不会在我的程序开始时暂停。它在内部停留在某个地方...

1 个答案:

答案 0 :(得分:1)

irb将在需要后停止执行,如history npm所述。

由于您-rdebug要求它(IRB.load_modules),因此它会在需要它的行后停止执行:irb

此外,您不应该使用pry(或ruby)来运行您的计划,但使用debugirb将最终与您pry战斗标准输入。

如果您正在使用binding.pry,请使用require "debug"代替ruby(仍然使用pry调用您的代码,而不是require "pry" def say(word) binding.pry puts word end say "Hello" ),像这样:

ruby file.rb

(并使用require "pry"运行;或者不使用ruby -rpry file.rb,请使用byebug进行调用。同样,您可以byebug使用binding.pry代替debug

您收到的文本的另一部分显示restart是使用continuation编写的(仅适用于一个功能,library(ggplot2) data <- data.frame(x = 0:10, y = 0:10, sz = c(200, rep(1, 10))) ggplot(data, aes(x = x, y = y, size = sz)) + geom_point() ),并且延续已标记为已过时。 Pry不使用continuation。