Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何从正在运行的脚本拖放到IRB提示符?_Ruby_Irb - Fatal编程技术网

Ruby 如何从正在运行的脚本拖放到IRB提示符?

Ruby 如何从正在运行的脚本拖放到IRB提示符?,ruby,irb,Ruby,Irb,我可以从运行的Ruby脚本中跳转到IRB提示符吗 我想运行一个脚本,但让它在程序中的某个点上用程序的当前状态给我一个IRB提示符,而不仅仅是运行rdebug和设置断点。您可以使用ruby debug访问IRB require 'rubygems' require 'ruby-debug' x = 23 puts "welcome" debugger puts "end" 当程序到达调试器时,您将可以访问irb。显然,它需要一段代码才能放入irb 这里是链接(似乎工作得很好) (一个IRB替代

我可以从运行的Ruby脚本中跳转到IRB提示符吗


我想运行一个脚本,但让它在程序中的某个点上用程序的当前状态给我一个IRB提示符,而不仅仅是运行rdebug和设置断点。

您可以使用ruby debug访问IRB

require 'rubygems'
require 'ruby-debug'
x = 23
puts "welcome"
debugger
puts "end"

当程序到达调试器时,您将可以访问irb。

显然,它需要一段代码才能放入irb

这里是链接(似乎工作得很好)

(一个IRB替代方案)也允许您这样做,事实上它完全是为这个用例而设计的:)

只需将
绑定即可。在要启动会话的位置撬动

require 'pry'
x = 10
binding.pry
pry(main)> puts x
=> 10
在会议期间:

require 'pry'
x = 10
binding.pry
pry(main)> puts x
=> 10
请访问以下网站:

让我们来了解你:

  • 在代码中的任意点进入会话
  • 查看方法源代码
  • 查看方法文档(不使用RI,因此不必预先生成)
  • 跳进跳出不同的语境
  • 语法突出显示
  • 要点整合
  • 查看和重播历史记录
  • 打开编辑器,使用
    edit obj.my_method
    语法编辑方法

一吨更多的优秀和原创功能

只需将这一行添加到需要断点的位置:

需要“ruby调试”;调试器

但我建议使用pry而不是irb,这非常方便,插入以下行:


要求“撬动”;binding.pry

此功能可从Ruby 2.4获得。您可以使用
binding.irb

例如

如果您运行上述代码,您将获得irb控制台,以便您可以检查局部变量的值和范围内的任何其他内容

资料来源:


Ruby commit:

我玩游戏已经很晚了,但是如果您已经从irb/pry中加载了脚本,一个简单的
提升
也可以将您弹出到irb/pry提示符。在rails控制台中编写一次性脚本时,我经常使用它

这会考虑绑定上下文吗?我可以将绑定设置为其他内容吗?这需要
ruby debug
gem,它不适用于ruby 1.9。对于1.9,您可以使用ruby-debug19或调试器gem,谢谢!这正是我在调用IRB.start_会话(绑定)的上下文中访问类和实例变量所需要的。非常感谢,这应该是最重要的,我正在使用IRB的路上