Ern*_*nst 8 ruby debugging proxy-classes pry
pry非常适合调试BasicObject的子类!
https://github.com/pry/pry说pry有:"Exotic对象支持(BasicObject实例......"
但是怎么做呢?可以预料,BasicObject不理解绑定.
NameError:
undefined local variable or method `binding' for #<C30Course:0xbefbc0c>
Run Code Online (Sandbox Code Playgroud)
调用method_missing时,何处发送绑定?
hor*_*guy 10
你需要像这样直接调用binding方法Kernel:
[13] pry(main)> class O < BasicObject
| def hi
| x = 10
| ::Kernel.binding.pry
| end
| end
=> nil
[14] pry(main)> O.new.hi
From: (pry) @ line 19 O#hi:
17: def hi
18: x = 10
=> 19: ::Kernel.binding.pry
20: end
[1] pry(unknown)> x
=> 10
[2] pry(unknown)> self
=> #<O:0x3fd5310d04f8>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1274 次 |
| 最近记录: |