Rails 3.1和Ruby 1.9.3p125:ruby-debug19仍然崩溃,“未找到符号:_ruby_threadptr_data_type”

可能重复:
使用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问题的数百个post感到非常困惑。 我希望它已经解决了。 显然不是。 有什么建议? (如果有人建议修补程序,请提供有关如何应用它的分步说明。过去我一直在努力修补补丁。)

现在存在一个名为’debugger’的ruby-debug分支,其中包含了人们在ruby-debug19之上部署的许多修复程序,因此您应该只需将Gemfile更改为

 gem 'debugger' 

……然后你就走了。

长话短说:它没有解决,官方解决方案只会附带一个新版本的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。 这个要点似乎有更好的指示(它是较旧的一个较新的分支)一)。

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

https://github.com/pry/pry

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

(自从1.9.3-p125以来,SO上其他地方的大部分答案已经过时了。)

我在这里为ubuntu 11.10编写了新的说明,可以在我的机器上运行,但是试试darwin,看看它们是否有帮助?: https : //gist.github.com/2218661

我在使用Rails 3.2和Aptana中的Ruby 1.9.3p0调试时遇到了类似的问题。
对我来说,新的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