如何调试Ruby gem?(Compass)

3
我正在学习Ruby的初级阶段,想学习如何调试gem,但是在这方面很难找到相关的学习资源。一个简单的示例将会对我有所帮助。 debugger是否是首选的调试器?我应该在哪里引用它?如何设置断点? 注意:我猜测不同需要调试的gem可能具有不同的调试流程,因此我特别关注Compass某些问题的调试

RubyGems(软件包管理器)和Ruby gem(单个软件包)之间有区别。您想要调试哪一个? - Andrew Marshall
具体来说,我指的是我链接的名为Compass的Ruby宝石。 - krisbulman
1个回答

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 就是 ruby 的源代码位置:

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

由于我特别想调试 Compass 编译器,所以我采取了以下步骤:

  1. 克隆源代码:$ git clone git://github.com/chriseppstein/compass.git
  2. 首先检查现有的 compass 版本 $ compass -v,版本是 13.0
  3. 编辑 VERSION.yml 并增加修补程序号(到 13.1),以避免与我的现有安装冲突。
  4. 编辑我想要调试的文件的 .rb 文件,即 lib/compass/compiler.rb,并在顶部添加此行:require 'debugger'; debugger
  5. 构建 gem:gem build compass.gemspec
  6. 安装新编译的 gem:sudo gem install compass-0.13.2.058ead2.gem
  7. 编译我正在遇到问题的现有基于 compass 的项目,并开始调试。
  8. 完成调试后,使用 sudo gem uninstall compass 卸载调试版本,选择对应 Compass 13.2 的编号。

关于步骤 7 的说明:由于 debugger 具有与 ruby-debug/ruby-debug19 相同的调试命令,因此我可以按照现有的调试步骤进行操作。

如果您有其他调试器教程、指针、技巧等,请发布它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接