是否可以在Ruby中调试动态定义的方法?如果是这样,我该如何实现?
所以我打开了一个新的Pry会话,并首先尝试了如下操作:
require "byebug"
def hello(x)
byebug
x += 1
puts x
end
hello(5)
它对我大喊“ ***没有可用于(撬开)的源文件”。我仍然可以单步执行代码,但是看不到源代码。
然后我尝试这样做:
def hello(x)
binding.pry
x += 1
puts x
end
hello(5)
现在反过来:我可以看到源代码,但是我无法单步执行代码(当我输入“ step”时,它会用“ NameError:未定义的局部变量或方法`喊着我”步骤“用于main:Object”)。 看起来Pry实际上确实具有所需的源,但是不幸的是调试器无法工作:(
我设法使用IPython在Python repl中做到了(尽管在标准Python repl中不起作用):
def hello(x):
breakpoint()
x += 1
print(x)
hello(5)
我希望能够在Ruby中实现相同的目标