Ruby 从byebug调用的IRB将丢失上下文
当我从byebug断点调用IRB时,我似乎不在预期的上下文中。这是一只虫子还是我在做一些非常愚蠢的事情Ruby 从byebug调用的IRB将丢失上下文,ruby,irb,byebug,Ruby,Irb,Byebug,当我从byebug断点调用IRB时,我似乎不在预期的上下文中。这是一只虫子还是我在做一些非常愚蠢的事情 $ ruby -v ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14] $ ruby test.rb test [3, 12] in test.rb 3: 4: def initialize 5: @a = "test" 6: puts @a 7: b
$ ruby -v
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]
$ ruby test.rb
test
[3, 12] in test.rb
3:
4: def initialize
5: @a = "test"
6: puts @a
7: byebug
=> 8: puts @a
9: end
10: end
11:
12: Test.new
(byebug) irb
2.2.0 :001 > @a
=> nil
我希望@a是“test”,但它是未定义的/nil。不要调用irb,你可以像使用irb一样使用byebug提示符。这是一个bug,如果你想修复或至少研究它,你应该在byebug的问题跟踪器中打开一个问题。它不是完全等效的(它不能处理多行代码)但它确实解决了80%的情况。我同意,多行代码是一个非常重要的特性,byebug似乎缺少它。当我无法粘贴新方法或多行条件语句时,我会感到卡住。你找到解决办法了吗?@ndbroadbent:试试撬:``需要撬';binding.pry;/然后运行它并使用$显示源代码。@MattW。谢谢,是的,我刚改用了
binding.pry
,这样好多了。尤其是my~/.pryrc
中的c
、n
、s
、f
快捷方式。