2012-10-25 100 views
3

我正处于学习Ruby的早期阶段,想要学习如何调试宝石,但是无法在此找到学习资源。一个简单的例子对我来说很有帮助。如何调试Ruby gem? (指南针)

debugger首选的调试器?我在哪里需要它?我如何设置断点?

注:我想提出一个受过教育的猜测,根据需要调试,所以参考我在debugging certain issuesCompass特别感兴趣的宝石调试过程可能会有所不同。

+0

RubyGems(包管理器)和Ruby gem(单个包)之间有区别。你想调试哪个? –

+0

具体来说,我链接到的称为Compass的红宝石宝石。 – krisbulman

回答

4

好的,我自己想通了。这里是我采取的步骤..

我正在运行的Ruby 1.9.3(运行ruby -v确定的),所以测试ruby-debugruby-debug19后,我确定这些被调试器不再维持,或至少没有正常工作用我的ruby1.9.3-p125安装。这导致我debugger

奏效的安装说明是:

$ gem install debugger -- --with-ruby-include=PATH_TO_HEADERS

我的机器上的PATH_TO_HEADERS,只是红宝石的源位置:

/Users/myusername/.rvm/src/ruby-1.9.3-p125/

因为我特别决心调试指南针编译器,我做了以下内容:

  1. 克隆的源:$ git clone git://github.com/chriseppstein/compass.git
  2. 经过现有的指南针版本第一$ compass -v这是13.0
  3. 编辑VERSION.yml和增加补丁号(13.1),所以也没跟我现有的安装冲突。
  4. 编辑我想调试的文件,这是lib/compass/compiler.rb并在顶部加入这一行的.RB:require 'debugger'; debugger
  5. 内置宝石:gem build compass.gemspec
  6. 安装了新编译的宝石:sudo gem install compass-0.13.2.058ead2.gem
  7. 编译的现有的指南针为基础的项目,我遇到了问题,并开始调试。
  8. 当我完成调试时,我卸载了调试版本sudo gem uninstall compass并选择了与Compass 13.2对应的编号。

备注第7步:由于调试器具有相同的调试命令红宝石调试/红宝石debug19,我能够跟随左右的调试步骤现有的教程..

如果您有其他调试教程,三分球,技巧等,请把它们。