如何将Interactive Ruby合并到我的开发过程中?

时间:2008-09-27 17:17:28

标签: ruby debugging irb

我正在努力寻找一种更好的方法来将IRB与我正常的ruby开发相结合。目前我很少在我的代码中使用IRB。我只用它来验证语法或尝试小的东西。

我知道我可以将自己的代码加载到ruby中作为

require 'mycode'

但这通常不符合我的编程风格。有时我想要检查的变量超出范围或在循环内部。是否有一种简单的方法来启动我的脚本并冻结在IRB内的某个点?我想我正在寻找一种更简单的方法来调试我的ruby代码,而不会破坏我的F5(编译)密钥。

也许更有经验的ruby开发人员可以与我分享更简化的开发方法。

5 个答案:

答案 0 :(得分:10)

安装ruby-debug gem。当然,在你的应用程序中需要它(仅在开发/测试模式下)。现在,您可以在需要停止执行的位置编写“调试器”。

一旦你的应用停在你的断点处,你可以输入'help'来了解所有命令。其中一个是'irb'。它启动一个IRB会话,您可以在其中访问当前上下文中的所有方法。

我个人主要使用p(打印),eval,v i(实例变量)和v l(本地变量)。当然,n代表next,c代表继续。

走出给定的块/方法的命令对我来说从来没有用过。我从未调查过为什么: - )

答案 1 :(得分:2)

我不倾向于直接使用irb,因为我倾向于在rails中,所以使用脚本/控制台一堆,但我喜欢使用ruby调试器(Ruby Debug gem)。它允许您基本设置断点,然后逐行逐步执行代码。

这是一个关于它的截屏视频,我还没有真正观看,但快速搜索将其拉出来,它可能很有用:

http://brian.maybeyoureinsane.net/blog/2007/05/07/ruby-debug-basics-screencast/

答案 2 :(得分:1)

对于Eclipse中的Ruby开发:现在可以使用RDT(ruby开发工具)的大大改进版本。要直接在Eclipse中安装它,请单击帮助>软件更新>查找并安装>搜索新功能单选按钮>下一个>新远程站点> Name = Ruby和URL = http://update.aptana.com/update/rdt/3.2/

另一个Ruby插件是闪亮的新Eclipse DLTK(动态语言工具包)。 DLTK stable release 1.0.M5几天前刚刚问世。 以下是一些useful installation tips

答案 3 :(得分:0)

我只是使用rdebug来调试我的任何ruby或RoR代码。

答案 4 :(得分:0)

如果您愿意使用IDE进行调试,我知道Eclipse(通过Ruby Development Tools)有一个相对简单的界面。如果你正在做rails,那么有一个特定的eclipse版本叫做RadRails,它也可以帮助(虽然我没有用它来调试)