在 RubyMine 下实现 Rails 远程调试

鉴客 发布于 2010/07/22 17:56
阅读 3K+
收藏 2

     RubyMine发布了1.0.5的版本,添加了一个Remote Debug的特性,不难理解,和Java一样,是下Ruby程序的远程调试,如 你的Rails应用跑在一台Linux服务器上,现在出现问题,你想在开发机上进行远程调试,这个特性就是Remote Debug。
要实现远程调试,首先我们需要安装一个ruby-debug-ide的gem,使用以下命令: gem install ruby-debug-ide
接下来我们要以debug模式下启动Rails应用,首先进入到rails应用目录下,然后执行以下命令:
       >rdebug-ide --debug --port 1234 -- script/server
   这里需要说一下,port表示调试启动的端口号,这个将来要和IDE进行通讯的,script/server,就是要执行的脚本(脚本名称前面的两个减号和空格不能少),当然也可以是普通的ruby脚本,如xxx.rb。debug监听启动后,屏幕上会打出以下信息:
     Fast Debugger (ruby-debug-ide 0.4.5) listens on localhost:1234
   这个时候表示debug程序已经就绪啦,等待IDE端来进行连接触发ruby脚本的运行。这里说明一下,rdebug-ide启动后,并不会马上运行脚 本,这个和Java的Remote Debug不一样。只有IDE端连接到调试端口才会触发脚本运行,这个很好理解,如你的一个脚本,打印一些信息,如果rdebug-ide启动后就允许脚 本,那么就马上退出啦,谈不上调试,所以等待IDE连接后才执行脚本是正确的。所以rdebug-ide运行后,你此刻还不能通过浏览器访问该应用。
    回到RubyMine,我们点击“Run”菜单下的“Edit Configurations”选项,来创建一个运行Remote Debug的配置项,如下图:
ruby_remote_debug.png
     图中的remote Root folder和local Root Folder,设置为项目的目录即可。
     当你点击Debug后,你会发现服务器端的Rails程序开始运行,在控制台打出了运行的信息,这表明Rails应用已经启动。接下来就是你在程序中设置 断点,然后进行测试。最后在RubyMine中点击关闭调试,服务器端的rdebug-ide也会退出,这样我们就完成了一个调试周期。
    总结:通过RubyMine的remote debug特性,我们可以远程调试Rails应用或者ruby脚本,非常简单。

加载中
返回顶部
顶部