how to debug ruby:

1. 第一种方法,直接使用ruby内建的debug在命令行调试,这个个gdb或者pdb的命令差不多。

ruby -r debug yourubyfile.rb

2. 在eclipse中debug ruby

2.1 使用内建的ruby debugger,在上图中选择"Ruby Build-In Debugger"

2.2 使用Fast Ruby Debugger(ruby-debug),但是一般的ruby都没有ruby-debug包,所有需要自己安装。

但是1.8,1.9和2.0的安装都不一样。

如果你使用的是1.8


gem install ruby-debug-base
gem install ruby-debug
gem install ruby-debug-ide


如果你使用的是1.9


gem install ruby-debug-base19
gem install ruby-debug19

gem install ruby-debug-ide19

2.3 使用ActiveState,我没有使用过。

NOTE:

1. 现在ruby-debug还不支持 ruby 2.0

2. 有时,远程安装不上或者很长时间没有反映,你可以自己将它们下载到本地,使用--local安装

例如: ruby 1.8

ruby-debug-base-0.10.4.gem

    linecache-0.46.gem #这里是依赖关系

        bx-require-relative-0.0.9.gem

ruby-debug-0.10.4.gem

    columnize-0.3.6.gem

ruby-debug-ide-0.4.18.gem

    rake-10.1.0.gem

        minitest-5.0.7.gem

        

从rubygems.org将上面的八个gem包下载下来,放到同一个目录,然后使用下面的命令安装


gem install --local ruby-debug-base-0.10.4.gem
gem install --local ruby-debug-0.10.4.gem
gem install --local ruby-debug-ide-0.4.18.gem


3. ruby 1.8里面没有保护gem,所有需要我们自己安装

download it from rubygems.org, extract it,

ruby setup.rb

4. 如果使用gem时,提示说找不到ruby.h文件,说明你安装的ruby没有安装对于的头文件,

你可以自己从 https://ftp.ruby-lang.org/pub/rub下载source包,自己编译和安装。

安装步骤为:

./configure
make
make check
make install

如果你想删除安装的文件,可以在ruby的source目录下:

cat .installed.list | xargs rm -rf

如何debug ruby的更多相关文章

  1. programming ruby

    ri #rdoc reader attr_reader attr_writer @@xx 类变量都是私有的 def 类名.xx end 类方法 [1,3,5,7].inject(0){|sum,e| ...

  2. Set up ruby debugging environment

    Today I finally got ruby debugging working in Eclipse. Below are the major setup steps involved, as ...

  3. Multi-Language IDE for Professional Developers (Komodo)

    Komodo is the professional IDE for major web languages, including Python, PHP, Ruby, Perl, HTML, CSS ...

  4. jmeter sampler maven项目排错记

    eclipse 创建的maven项目,引入jar包之后出现红色叹号,一直找不到原因,连main方法都无法运行,提示找不到类: 错误: 找不到或无法加载主类 soapsampler.SoapSample ...

  5. 6-9 😢 5小时的debug: 从rails 命令运行超慢开始->删除rails->删除ruby->删除rvm->安装上rvm->安装上ruby

    上午,莫名其妙的rails app不能用了,rails -v一查发现不存在.ruby -v发现是2.0的版本.很着急上火,因为很少使用过rvm这个ruby版本控制器.所以照官网文档.从新安装ruby, ...

  6. 2016年最新mac下vscode配置golang开发环境支持debug

    网上目前还找不到完整的mac下golang环境配置支持,本人配置成功,现在整理分享出来. mac最好装下xcode,好像有依赖关系安装Homebrew打开终端窗口, 粘贴脚本执行/usr/bin/ru ...

  7. SASS的安装及使用(前提:安装Ruby)

    本文仅适用于Windows系统. 一.安装Ruby Sass是用Ruby语言写的,但是两者的语法没有关系,所以学 Sass 不用学 Ruby,只是必须先安装Ruby,然后再安装Sass. Linux和 ...

  8. ruby注意点

    1.强类型,即不会自动进行类型转换,而C/C++为弱类型. # Ruby i = 1 puts "Value is " + i # TypeError: can't convert ...

  9. ruby Errors & Exceptions

    When you first started coding, errors were probably the last thing you wanted to see. After all, it’ ...

随机推荐

  1. MYSQL中delete删除多表数据与删除关联数据

    在mysql中删除数据方法有很多种,最常用的是使用delete来删除记录,下面我来介绍delete删除单条记 录与删除多表关联数据的一些简单实例. 1.delete from t1 where 条件 ...

  2. EF+jQueryUI前后端分离设计

    开源项目练习EF+jQueryUI前后端分离设计   最近大家流行把项目开源,我也来玩玩.只是开源公司项目不好,小弟只好从公司项目经验上另外弄出一套练习开源给大家. 这个项目可以做简单的团队任务系统( ...

  3. MinGW介绍与使用

    3.1:MinGW 是什么? MinGW 提供了一套简单方便的Windows下的基于GCC 程序开发环境.MinGW 收集了一系列免费的Windows 使用的头文件和库文件:同时整合了GNU ( ht ...

  4. container_of用法及实现

    container_of 有的情况下,只知道 struct结构中莫个成员的指针,而需要知道整个struct的指针 (如网卡驱动里面,list) struct DDD {         int a; ...

  5. Android如何监听蓝牙耳机的按键事件

    写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「Bluedio + 红米手机」. 1.蓝牙耳机的 ...

  6. Writing a ServiceMain Function(使用RegisterServiceCtrlHandler函数)

    The following global definitions are used in this sample. C++   #define SVCNAME TEXT("SvcName&q ...

  7. CIconListBox带图标的列表框类

    有时候,我们需要在列表框ListBox中插入带图标的文字项,这就需要自己派生一个类出来了,网上的一个CIconListBox类还不错,网站http://www.codeguru.com/Cpp/con ...

  8. Response.AppendCookie

    //写入 protected void Button2_Click(object sender, EventArgs e) { HttpCookie cookie=new HttpCookie(&qu ...

  9. Windows Azure入门教学系列 (九):Windows Azure 诊断功能

    本文是Windows Azure入门教学的第九篇文章. 本文将会介绍如何使用Windows Azure 诊断功能.跟部署在本地服务器上的程序不同,当我们的程序发布到云端之后,我们不能使用通常的调试方法 ...

  10. 14.10.4 Defragmenting a Table 整理表

    14.10.4 Defragmenting a Table 整理表: 随机插入或者删除从一个secondary index 可以导致index变的fragmented Fragmentation意味着 ...