我正处于学习 Ruby 的早期阶段,想学习如何调试 gem,但找不到相关的学习资源。一个简单的例子对我来说意义重大。
是debugger首选调试器?我在哪里需要它?如何使用它设置断点?
注意:我有根据地猜测,调试过程可能会因需要调试的 gem 而不同,因此作为引用,我对 debugging certain issues 特别感兴趣。与 Compass .
最佳答案
好的,这是我自己想出来的。这是我采取的步骤..
我正在运行 Ruby 1.9.3(通过运行 ruby -v
确定),所以经过测试 ruby-debug和 ruby-debug19 ,我确定这些调试器不再维护,或者至少在我安装的 ruby1.9.3-p125 中无法正常工作。这导致我 debugger .
有效的安装说明是:
$ gem 安装调试器 -- --with-ruby-include=PATH_TO_HEADERS
我机器上的 PATH_TO_HEADERS 只是 ruby 的源位置:
/Users/myusername/.rvm/src/ruby-1.9.3-p125/
由于我特别下定决心要调试Compass编译器,所以我做了以下工作:
- 克隆源代码:
$ git clone git://github.com/chriseppstein/compass.git
- 首先检查现有的 compass 版本
$ compass -v
是 13.0 - 编辑了 VERSION.yml 并增加了补丁编号(至 13.1),因此它不会与我现有的安装冲突。
- 编辑了我要调试的文件的 .rb,即
lib/compass/compiler.rb
并在顶部添加了这一行:require 'debugger';调试器
- 构建 gem:
gem build compass.gemspec
- 安装新编译的 gem:
sudo gem install compass-0.13.2.058ead2.gem
- 编译了我遇到问题的现有基于 compass 的项目,并开始调试。
- 当我完成调试后,我使用
sudo gem uninstall compass
卸载了调试版本,并选择了与 Compass 13.2 对应的数字。
关于第 7 步的注意事项:由于调试器具有与 ruby-debug/ruby-debug19 相同的调试命令,因此我能够按照有关调试步骤的现有教程进行操作。
- 例如这个 RailsCast: http://railscasts.com/episodes/54-debugging-with-ruby-debug
- 以及此博客(和链接的备忘单): http://pivotallabs.com/users/chad/blog/articles/366-ruby-debug-in-30-seconds-we-don-t-need-no-stinkin-gui-
如果您有其他调试器教程、指针、提示等,请发布。
关于ruby - 如何调试 Ruby gem? ( compass ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13078638/