Rails 3.1 y Ruby 1.9.3p125: ruby-debug19 aún se bloquea con “Símbolo no encontrado: _ruby_threadptr_data_type”

Posible duplicado:
ruby-debug con Ruby 1.9.3?

Había escuchado rumores de que ruby ​​1.9.3p125 tiene una solución para el problema ruby-debug19, así que por instrucciones en el sitio RVM, reinstalé 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] 

Entonces:

 gem install ruby-debug19 

Agregué esta entrada a mi Gemfile:

 gem 'ruby-debug19' 

Entonces:

 $ 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 

Para superar este error cambié mi entrada Gemfile a:

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

Ahora un nuevo error del servidor:

 /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 

Estoy muy confundido por los cientos de publicaciones que hay sobre cómo manejar este problema ruby-debug19. Esperaba que se hubiera resuelto. Aparentemente no. ¿Alguna sugerencia? (Si alguien sugiere un parche, proporcione instrucciones paso a paso sobre cómo aplicarlo. He tenido problemas con los parches en el pasado).

Ahora existe una bifurcación de Ruby-debug llamada ‘depurador’ que incorpora muchas de las correcciones que las personas habían estado implementando sobre ruby-debug19, por lo que debería poder cambiar su Gemfile a

 gem 'debugger' 

… y listo.

Para resumir: no se resuelve, y la resolución oficial solo vendrá con una nueva versión de ruby-debug19 o ruby-debug-base19. Es bastante irritante, lo sé.

También he investigado mucho sobre esto y he estado atento a las cosas desde que salió el 1.9.3 (porque nos encantaría, me encantaría usarlo en producción). Sin embargo, lamentablemente, 1.9.3-p125 no tiene una solución para ruby-debug. Solo ruby-debug19 tendrá la solución para ruby-debug19, ya que los autores de ruby-debug19 y ruby-debug-base19 han estado trabajando en un parche y tienen una versión de prueba actualizada que funciona en Ruby 1.9.3 … pero no tienen lo lanzó al público en general . ruby-debug-base19 no ha visto un lanzamiento en eones; ruby-debug19 aún más (desde ’09).

Si está en la rvm head , debería poder instalar 1.9.3-p125 con el “parche de halcón” que se encuentra aquí (y anotar aquí sobre RVM. Esta idea parece tener mejores instrucciones (es una bifurcación más nueva de la anterior). uno).

Lo mejor que puedes hacer es usar la pry . Es un reemplazo irb para ruby-debug y funciona con todas las versiones de Ruby sin parches desagradables.

https://github.com/pry/pry

Debe pasar el –with-ruby-include y señalarlo en su directorio src para que esto funcione.

(la mayoría de estas respuestas en otros lugares en SO se han estancado desde 1.9.3-p125).

He escrito nuevas instrucciones aquí para ubuntu 11.10 que funcionan en mi máquina, pero pruébalas en darwin y ve si ayudan ?: https://gist.github.com/2218661

He tenido problemas similares al usar Rails 3.2 con la depuración de Ruby 1.9.3p0 en Aptana.
Para mí, el nuevo ruby-debug-base193 no comstack. Pero lo que funciona bien es una solución que se ha publicado en otra parte:

Gemfile:
gem ‘ruby-debug-ide19’
gem ‘ruby-debug-base19’

Y luego proporcionar la falta is_binary_data? método en alguna parte. Lo puse en mi archivo Rails application.rb como ese:

 class String def is_binary_data? ( self.count( "^ -~", "^\r\n" ).fdiv(self.size) > 0.3 || self.index( "\x00" ) ) unless empty? end end