以下面的方法为例,然后调用方法:
def count(n)
x=3
y=5
n+=x
n-=y
puts n
end
count(3)
我想知道无论如何当我在我的终端中运行这个脚本时,当它到达实际调用该方法的count(3)行时,而不是简单地输出“n”,无论如何我可以逐行浏览方法,我可以看到我的局部变量(n,x和y),这样我就可以看到“n”的值随着方法的执行而变化,然后将最终值输出到我的终端。
你可以用byebug gem完成这个。
您可以通过简单地插入byebug
行在代码中的任何位置添加断点,也可以通过调用脚本在调试模式下运行整个脚本,如下所示:
byebug something-awesome.rb
进入调试模式后,可以使用step
命令一次一行地执行代码。
以下是此过程的示例:
[1, 10] in /Desktop/something-awesome.rb
=> 1: def count(n)
2: x = 3
3: y = 5
4:
5: n += x
6: n -= y
7:
8: puts n
9: end
10:
(byebug) step
[2, 11] in /Desktop/something-awesome.rb
2: x = 3
3: y = 5
4:
5: n += x
6: n -= y
7:
8: puts n
9: end
10:
=> 11: count(3)
(byebug) step
[1, 10] in /Desktop/something-awesome.rb
1: def count(n)
=> 2: x = 3
3: y = 5
4:
5: n += x
6: n -= y
7:
8: puts n
9: end
10:
(byebug) step
[1, 10] in /Desktop/something-awesome.rb
1: def count(n)
2: x = 3
=> 3: y = 5
4:
5: n += x
6: n -= y
7:
8: puts n
9: end
10:
(byebug) x
3
请注意,在我越过第2行(在控制台输出的底部)之后,我现在可以键入x
以查看x
在代码中此时的值。
有关所有可用命令的列表,请查看Byebug文档的commands section。
我非常喜欢pry宝石。
它是一个非常强大和强大的界面,允许您通过实例和类(即cd User.first
),列表方法(ls
)更改目录,甚至与shell(shell-mode; .pwd
)进行交互 - 所有这一切都可以通过从您想要的任何地方放入一个简单的binding.pry
来实现。
另外值得注意的是Ruby 2.5随附binding.irb
发货 - 我还没有看过它,但那将是原生的等价物,并希望消除对第三方宝石的需求。