Gem 请教:pry-remote 这个 gem,如何让它执行到下一处断点而不退出当前环境啊……

hexawing · 2017年05月09日 · 最后由 springwq 回复于 2017年05月09日 · 1620 次阅读

之前用的 pry,种种原因换成了 pry-remote。但有一个问题就是:

比如,我在一段代码里写了两处binding.remote_pry,在第一处断点的时候,我在外部运行一个pry-remote,进入到断点,我调试调试,然后exit

如果是之前的 pry,它就会到下一处断点然后停住,但 remote_pry 它会“运行到下一处断点停住,并且退出当前的 pry-remote 服务”。它这一退出,我就不知道现在程序是进行到哪一步、有没有被断住了,就还得再运行一遍pry-remote:如果执行起来了,说明还有断点;如果报错,说明没有断点了。很是不方便。

就不知道有没有类似continue的办法让它不退出服务继续执行呢?

相关的文档没找到,在 pry 里敲 help 好像也没有类似的说法。

你是通过什么 gem 实现 continue next 命令的?如果 pry-byebug, 看看这个 https://github.com/deivid-rodriguez/pry-byebug/pull/64

这个主要是 pry-remote 的问题,这个 gem 好久没更新了。https://github.com/Mon-Ouie/pry-remote

springwq 回复

是,我也发现它好久没更新了。

我光用 pry-remote 的时候是不能continue的,后来装了个pry-byebug,倒是可以continue了,但并没有继续执行我的代码,而是指向了一个teardown,有点像这帖:http://stackoverflow.com/questions/32883285/pry-remote-byebug-next-goes-into-teardown,但这帖也没有解决问题。

我都不知道我现在的整个工作方式是不对的:

之前我是用自带的 Webrick 服务器,所以 binding 了之后当场就能看到。后来因为要上传文件啥的,就搞了个 nginx+passenger。然而这时候我就不会启动服务了。

感觉上是 nginx 接管了端口然后转给 passenger 处理,但如何把 passenger 启动成之前 Webrick 那种可以看到日志可以断点的效果呢……到处找了一圈也不知道,所以只能换成 pry-remote 临时顶替一下……

我也是有这个问题, continue 后 指向 teadown 也没解决。😓

需要 登录 后方可回复, 如果你还没有账号请 注册新账号