使用 pry-byebug 的断点不会在控制台中触发
Breakpoints with pry-byebug don't trigger in the console
我正在尝试使用 pry 和 pry-byebug 在 Rails 控制台中逐步执行某些代码。我用
启动了控制台
pry -r ./config/environment
然后我设置断点:
break Foo#bar
然后创建一个新的 Foo
并在其上调用 bar
:
Foo.new.bar
我预计进入 Foo#bar
,但该方法只是正常执行。
有什么方法可以让这个工作流程正常工作吗?
下面是我平时使用 pry-byebug 的方式
在方法的第一行添加对binding.pry
的调用Foo#bar
运行 rails console
致电Foo.new.bar
你现在应该看到撬 REPL
我找到了答案:调试器不可重入。所以你需要这样做:
[1] pry(main)> binding.pry
[1] pry(main)> break Foo#bar
Breakpoint 1: Foo#bar (Enabled) :
6: def bar
7: end
[2] pry(main)> c # continue and exit the debugger we started on the first line
=> nil
[3] pry(main)> Foo.new.bar
Breakpoint 1. First hit.
嗯,当我使用 pry-byebug 调试我的代码时,我使用以下方式:
首先在编码的开头要求pry-byebuggem
需要'pry-byebug'
def main # 做一些编码
放 "Hello"
binding.pry # 断点在这里
放 "World"
结束
主要
然后当 运行 连接它时,我的终端将 return 进入 irb 模式并且 return:
> 3: def main
> 4: puts "Hello"
> 5:
> 6: binding.pry
> => 7: puts "World!"
> 8: end
>
> [1] pry(main)>
所以代码指示我现在所在的位置,从那时起我可以检查断点之前读取的每个变量(第 6 行)。断点表示终端还没有读取第 6 行之后的内容,所以如果我在那里有变量,终端将无法识别它们。
然后我可以键入 next,因此 binding.pry 会跳转到下一个可用的 binding.pry 点或 运行 整个代码。或者我可以简单地输入继续。
非常重要要记住的是在提交代码之前删除要求'pry-byebug'和所有断点行,因为我们不希望代码卡在那些点上,对吗?用户可能不知道如何处理它:)
希望对您有所帮助!第一次尝试为这个很棒的社区做出贡献 :D
我正在尝试使用 pry 和 pry-byebug 在 Rails 控制台中逐步执行某些代码。我用
启动了控制台pry -r ./config/environment
然后我设置断点:
break Foo#bar
然后创建一个新的 Foo
并在其上调用 bar
:
Foo.new.bar
我预计进入 Foo#bar
,但该方法只是正常执行。
有什么方法可以让这个工作流程正常工作吗?
下面是我平时使用 pry-byebug 的方式
在方法的第一行添加对binding.pry
的调用Foo#bar
运行 rails console
致电Foo.new.bar
你现在应该看到撬 REPL
我找到了答案:调试器不可重入。所以你需要这样做:
[1] pry(main)> binding.pry
[1] pry(main)> break Foo#bar
Breakpoint 1: Foo#bar (Enabled) :
6: def bar
7: end
[2] pry(main)> c # continue and exit the debugger we started on the first line
=> nil
[3] pry(main)> Foo.new.bar
Breakpoint 1. First hit.
嗯,当我使用 pry-byebug 调试我的代码时,我使用以下方式:
首先在编码的开头要求pry-byebuggem
需要'pry-byebug'
def main # 做一些编码 放 "Hello" binding.pry # 断点在这里 放 "World" 结束
主要
然后当 运行 连接它时,我的终端将 return 进入 irb 模式并且 return:
> 3: def main
> 4: puts "Hello"
> 5:
> 6: binding.pry
> => 7: puts "World!"
> 8: end
>
> [1] pry(main)>
所以代码指示我现在所在的位置,从那时起我可以检查断点之前读取的每个变量(第 6 行)。断点表示终端还没有读取第 6 行之后的内容,所以如果我在那里有变量,终端将无法识别它们。
然后我可以键入 next,因此 binding.pry 会跳转到下一个可用的 binding.pry 点或 运行 整个代码。或者我可以简单地输入继续。
非常重要要记住的是在提交代码之前删除要求'pry-byebug'和所有断点行,因为我们不希望代码卡在那些点上,对吗?用户可能不知道如何处理它:)
希望对您有所帮助!第一次尝试为这个很棒的社区做出贡献 :D