9

可能重复:
使用 Ruby 1.9.3 进行 ruby​​-debug?

我听说 ruby​​ 1.9.3p125 有解决 ruby​​-debug19 问题的方法,所以按照 RVM 网站上的说明,我重新安装了 1.9.3:

$ rvm reinstall 1.9.3 --patch debug --force-autoconf
$ ruby -v
  ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.2.0]

然后:

gem install ruby-debug19

将此条目添加到我的 Gemfile 中:

gem 'ruby-debug19'

然后:

$ rails server -u         
=> Booting WEBrick
=> Rails 3.1.3 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug'
Exiting

为了克服这个错误,我将 Gemfile 条目更改为:

gem 'ruby-debug19', :require => 'ruby-debug'

现在来自服务器的新错误:

/Users/don/.rvm/gems/ruby-1.9.3-p125/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require': dlopen(/Users/don/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle, 9): Symbol not found: _ruby_threadptr_data_type (LoadError)
  Referenced from: /Users/don/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle
  Expected in: flat namespace
 in /Users/don/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle - /Users/don/.rvm/gems/ruby-1.9.3-p125/gems/ruby-debug-base19-0.11.25/lib/ruby_debug.bundle

我对如何处理这个 ruby​​-debug19 问题的数百篇帖子感到非常困惑。我希望它已经解决了。显然不是。有什么建议么?(如果有人建议打补丁,请提供有关如何应用它的分步说明。我过去一直在为打补丁而苦苦挣扎。)

4

5 回答 5

36

现在存在一个名为“调试器”的 ruby​​-debug 分支,其中包含人们在 ruby​​-debug19 之上部署的许多修复程序,因此您应该能够将 Gemfile 更改为

gem 'debugger'

......然后你就走了。

于 2012-04-05T08:05:45.250 回答
3

长话短说:它没有解决,官方解决方案只会附带新版本的 ruby​​-debug19 或 ruby​​-debug-base19。我知道,这很严重。

我也在这方面做了很多挖掘工作,并且自从 1.9.3 发布以来我一直在关注着事情(因为我们很乐意在生产中使用它)。然而,遗憾的是,1.9.3-p125 没有修复 ruby​​-debug。只有 ruby​​-debug19 将修复 ruby​​-debug19,因为 ruby​​-debug19 和 ruby​​-debug-base19 的作者一直在开发一个补丁,并在 Ruby 1.9.3 上更新了测试版本……但他们还没有向公众发布。ruby-debug-base19在 eons中还没有发布过;ruby-debug19 甚至更长(自 09 年以来)。

如果你在rvm head,你应该能够安装 1.9.3-p125 并在此处找到添加的“falcon 补丁” (并在此处注明RVM 。这个要点似乎有更好的说明(它是旧版本的新分支) .

于 2012-02-29T15:03:02.693 回答
3

最好的办法就是使用pry. 它是一个类似 irb 的替代品ruby-debug,它适用于所有版本的 Ruby,没有讨厌的补丁!

https://github.com/pry/pry

于 2012-02-29T15:11:01.300 回答
0

您必须传递 --with-ruby-include 并将其指向您的 src 目录才能使其正常工作。

(自 1.9.3-p125 以来,SO 其他地方的大多数答案都已过时。)

我在这里为在我的机器上工作的 ubuntu 11.10 编写了新的说明,但是让他们在 darwin 上尝试一下,看看他们是否有帮助?:https ://gist.github.com/2218661

于 2012-03-27T18:30:07.857 回答
0

我在 Aptana 中使用带有 Ruby 1.9.3p0 调试的 Rails 3.2 时遇到了类似的问题。
对我来说,新的 ruby​​-debug-base193 无法编译。但是工作正常的是已在其他地方发布的修复:

Gemfile:
gem 'ruby-debug-ide19'
gem 'ruby-debug-base19'

然后提供缺少的 is_binary_data?某处的方法。我把它放在我的 Rails application.rb 文件中,如下所示:

class String
  def is_binary_data?
    ( self.count( "^ -~", "^\r\n" ).fdiv(self.size) > 0.3 || self.index( "\x00" ) ) unless empty?
  end
end
于 2012-04-25T21:41:05.890 回答