有时我正在调试一些代码,跨过一条线思考:“嗯,我想进入那个”。或者我输入一些表达式然后进行评估(我总是打开'autoeval')并思考:“为什么它会给出这个结果?我想进入我刚刚输入的表达式,看看它到底在做什么”。
据我所知,1.8.7无法实现。 ruby-debug
以及1.9.3 debugger
。这是否有其他一些Ruby调试器支持这个?
答案 0 :(得分:2)
有一个名为trepanning的ruby-debug的重写,允许通过“debug”命令进行嵌套调试。请参阅https://github.com/rocky/rb-trepanning/wiki/Nested-debugging。
不幸的是,它需要修补MRI Ruby 1.9.3(或1.9.2),因为潜在的问题出现在MRI 1.9运行时系统中。有关如何安装,请参阅https://github.com/rocky/rb-trepanning/wiki/How-to-install-rb-trepanning。
答案 1 :(得分:0)
当然,你可以做你要求的所有事情 在调试会话中执行以下操作:
(rdb:1)s # steps into method
(rdb:1)l # list current line
(rdb:1)obj.method # eval expression
虽然我不知道如何进入刚刚进入的表达方式 - 据我所知 脏:
(rdb:1)def someobj.some_method_name
(rdb:2)* debugger
(rdb:3)* my.expression_i_want_to_step_in
(rdb:4)* end
(rdb:5)someobj.some_method_name
(rdb:1) # this should be the new session at my.expression_i_want_to_step_in - untested