Ruby 如何从正在运行的脚本拖放到IRB提示符?
我可以从运行的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替代
我想运行一个脚本,但让它在程序中的某个点上用程序的当前状态给我一个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的路上